簡體   English   中英

將kmeans與sklearn一起使用

[英]Using kmeans with sklearn

我有一個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.

您的問題似乎與scikit-learn不相關,但與您的python安裝有關。 在這里您可以找到可能的解決方案。 祝好運!

這既不是SK-Learn錯誤,也不是真正的python安裝錯誤。 這是因為您的matplotlib沒有要繪制的后端。

您可以嘗試在matplotlib ocnfiguration文件中設置后端,

backend : WXAgg 

並確保已安裝wxPython

您可以解決這個問題。 您需要設置后端和此matplotlib文檔,以了解有關什么是后端的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM