質問編集履歴
1
御回答で解決した内容を、後から同じ悩みをかかえてこのページを見た方がわかりやすいよう追記しました。
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
|
+
と追記すると、問題なくクラスタ分けしてくれました。
|