質問編集履歴

1

御回答で解決した内容を、後から同じ悩みをかかえてこのページを見た方がわかりやすいよう追記しました。

2020/09/24 12:49

投稿

S.K12
S.K12

スコア16

test CHANGED
File without changes
test CHANGED
@@ -147,3 +147,95 @@
147
147
  windows 64bit
148
148
 
149
149
  Anaconda
150
+
151
+
152
+
153
+ ### 解決した際のソースコード
154
+
155
+ ```
156
+
157
+ import pandas as pd
158
+
159
+ import numpy as np
160
+
161
+ import matplotlib.pyplot as plt
162
+
163
+ from sklearn.cluster import KMeans
164
+
165
+ from sklearn.datasets import make_blobs
166
+
167
+
168
+
169
+ X,y = make_blobs(n_samples=1000,centers=2,cluster_std=2.3, random_state=3)
170
+
171
+ plt.scatter(data[cluster==0,0],data[cluster==0,1],s=50,c='red',marker='.',label='1')
172
+
173
+ plt.scatter(data[cluster==1,0],data[cluster==1,1],s=50,c='black',marker='.',label='2')
174
+
175
+ plt.legend()
176
+
177
+ plt.grid()
178
+
179
+ plt.show()
180
+
181
+
182
+
183
+
184
+
185
+ def t(n):
186
+
187
+ km = KMeans(n_clusters=2,init='random',n_init=1,max_iter=n,random_state=1)
188
+
189
+ cluster = km.fit_predict(X)
190
+
191
+ plt.scatter(data[cluster==0,0],data[cluster==0,1],c='red',marker='.',label='1')
192
+
193
+ plt.scatter(data[cluster==1,0],data[cluster==1,1],c='black',marker='.',label='2')
194
+
195
+ plt.scatter(km.cluster_centers_[:,0],km.cluster_centers_[:,1],marker='X',c='blue',label='centroids')
196
+
197
+ plt.legend()
198
+
199
+ plt.grid()
200
+
201
+ plt.show()
202
+
203
+
204
+
205
+ t(1)
206
+
207
+ t(2)
208
+
209
+ t(3)
210
+
211
+ t(4)
212
+
213
+ t(5)
214
+
215
+ t(10)
216
+
217
+ ```
218
+
219
+
220
+
221
+ ### 問題だった点
222
+
223
+ 元のソースコードではそもそもクラスタ分けしたい散布図を定義出来ていませんでした。
224
+
225
+ 参考にしたサイトを再度見直しながら
226
+
227
+ ```
228
+
229
+ cluster = km.fit_predict(X) #各サンプルに対するクラスタ番号を求める関数
230
+
231
+ ```
232
+
233
+ におけるサンプルが何であるかを
234
+
235
+ ```
236
+
237
+ X,y = make_blobs(n_samples=1000,centers=2,cluster_std=2.3, random_state=3)
238
+
239
+ ```
240
+
241
+ と追記すると、問題なくクラスタ分けしてくれました。