###前提・実現したいこと
クラスタリングの勉強をしています.
scikit-learnでクラスタリングしようと思っています.
下記の2つの記事を参考にさせていただいています.
こちらの記事では,棒グラフですが,散布図に変更しようとしています.
上手く図は出たのですが,色が一色だけしか表示できず,
クラスタ毎に色を変更したいと思います.
よろしくお願い致します.
###発生している問題・エラーメッセージ
散布図は表示されるのですが,青一色だけでクラスタ毎に色を変えたいと思います.
###該当のソースコード
python
1#!/usr/bin/env python 2# -*- coding: utf8 -*- 3 4import pandas as pd 5import numpy as np 6from sklearn.cluster import KMeans 7import matplotlib.pyplot as plt 8 9#クラスタ数 10N_CLUSTERS = 5 11# データセットを読み込み 12cust_df = pd.read_csv("Wholesale_customers_data.csv") 13 14# 不要なカラムを削除 15del(cust_df['Channel']) 16del(cust_df['Region']) 17 18#print(cust_df) 19 20# Pandas のデータフレームから Numpy の行列 (Array) に変換 21cust_array = np.array([cust_df['Fresh'].tolist(), 22 cust_df['Milk'].tolist(), 23 cust_df['Grocery'].tolist(), 24 cust_df['Frozen'].tolist(), 25 cust_df['Milk'].tolist(), 26 cust_df['Detergents_Paper'].tolist(), 27 cust_df['Delicassen'].tolist() 28 ], np.int32) 29 30# 行列を転置 31#cust_array = cust_array.T 32features = cust_array.T 33 34# クラスタ分析を実行 (クラスタ数=4) 35#pred = KMeans(n_clusters=4).fit_predict(cust_array) 36cls = KMeans(n_clusters=N_CLUSTERS) 37pred = cls.fit_predict(features) 38#クラスタ後,ラベル表示 39print(pred) 40 41# Pandas のデータフレームにクラスタ番号を追加 42#cust_df['cluster_id']=pred 43 44 45# 可視化(散布図) 46for i in range(N_CLUSTERS): 47 labels = features[pred == i] 48 plt.scatter(labels[:, 0], labels[:, 1]) 49 50# クラスタのセントロイド (重心) を描く 51centers = cls.cluster_centers_ 52plt.scatter(centers[:, 0], centers[:, 1], s=100, 53 facecolors='none', edgecolors='black') 54 55plt.show() 56
###試したこと
参考記事
http://blog.amedama.jp/entry/2017/03/19/160121
http://pythondatascience.plavox.info/scikit-learn/%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E5%88%86%E6%9E%90-k-means
###補足情報(言語/FW/ツール等のバージョンなど)
OS X
python2系

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/15 09:49