【问题标题】:Using kmeans with sklearn将 kmeans 与 sklearn 一起使用
【发布时间】:2019-05-02 03:53:54
【问题描述】:

我有一个 CSV,我已将其拉入 Pandas 数据框,我正在尝试通过 SciKit-Learn 运行基本的 KMeans 集群。这是我第一次这样做,我遇到了一个我不明白的错误。

import pandas as pd
import sklearn
import numpy as np 
import seaborn as sns; sns.set()

from sklearn.cluster import KMeans 


input_csv = '/Users/reallymemorable/Documents/Data.Repository/Analysis/Purchasers.Strats.Appends.csv'

# Read the CSV into a dataframe
df = pd.read_csv(input_csv)

# Select out only the relevant columns
df_shortlist = df[['Contact_ID', 'Sales_Stage_Sub', 'Sale_Type', 'Offered_Amount', 'Down_Payment']]

# Create binary dummy columns for Sales_Stage_Sub
df_shortlist_dummy_sales_stage_sub = pd.concat([df_shortlist, pd.get_dummies(df['Sales_Stage_Sub'])], axis=1)

# Create binary dummy columns for Sale_Type
df_shortlist_dummy_sales_stage_sub_and_sale_type = pd.concat([df_shortlist_dummy_sales_stage_sub, pd.get_dummies(df['Sale_Type'])], axis=1)

kmeans = KMeans(n_clusters=4)
kmeans.fit(df_shortlist_dummy_sales_stage_sub_and_sale_type)
y_means = kmeans.predict(df_shortlist_dummy_sales_stage_sub_and_sale_type)

plt.scatter(X[:, 0], X[:, 1], c=y_means, s=50, cmap='viridis')

centers = kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);

这是我得到的错误:

Traceback (most recent call last):
  File "ml.spatial.clustering.py", line 4, in <module>
    import seaborn as sns; sns.set()
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/seaborn/__init__.py", line 6, in <module>
    from .rcmod import *
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/seaborn/rcmod.py", line 5, in <module>
    from . import palettes, _orig_rc_params
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/seaborn/palettes.py", line 12, in <module>
    from .utils import desaturate, set_hls_values, get_color_cycle
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/seaborn/utils.py", line 11, in <module>
    import matplotlib.pyplot as plt
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/matplotlib/pyplot.py", line 2374, in <module>
    switch_backend(rcParams["backend"])
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/matplotlib/pyplot.py", line 207, in switch_backend
    backend_mod = importlib.import_module(backend_name)
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/reallymemorable/.pyenv/versions/3.6.7/lib/python3.6/site-packages/matplotlib/backends/backend_macosx.py", line 14, in <module>
    from matplotlib.backends import _macosx
ImportError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a framework. See the Python documentation for more information on installing Python as a framework on Mac OS X. Please either reinstall Python as a framework, or try one of the other backends. If you are using (Ana)Conda please install python.app and replace the use of 'python' with 'pythonw'. See 'Working with Matplotlib on OSX' in the Matplotlib FAQ for more information.

【问题讨论】:

    标签: python scikit-learn k-means


    【解决方案1】:

    这不是 SK-Learn 错误,也不是真正的 python 安装错误。这是因为你的matplotlib 没有后端可以绘制。

    您可以尝试在您的 matplotlib 配置文件中设置后端,

    backend : WXAgg 
    

    并确保已安装wxPython

    你可以通过这个问题You need to set your backend和这个matplotlib文档来了解更多关于what is a backend的信息

    【讨论】:

      【解决方案2】:

      您的问题似乎与 scikit-learn 无关,但与您的 python 安装有关。 Here 你可以找到一个可能的解决方案。 祝你好运!

      【讨论】:

        猜你喜欢
        • 2015-03-17
        • 2016-09-09
        • 2013-12-11
        • 2013-02-17
        • 2014-09-24
        • 2016-06-23
        • 2021-12-26
        • 2020-07-14
        • 2022-08-08
        相关资源
        最近更新 更多