クラスタリング②

こんにちは!EMです^^
 
今回は前回の続きとして、クラスタリングについて学んでいこうと思います。
 
 
この前は、一目でわかる比較的簡単なデータを使ったので
今日は少し複雑なデータを使っていこうと思います。
 
 
 
#いくつかのデータを作っていきます
mean = [3,3]
cov = [[1,0],[0,1]]
x_one = np.random.multivariate_normal(mean, cov, (points_per_class))
y_one = np.full*1
y_two = np.full*2
y_three = np.full*3
y_four = np.full((points_per_class),0)

X = np.concatenate((x_one,x_two,x_three,x_four),axis=0)
Y = np.concatenate((y_one,y_two,y_three,y_four),axis=0)

#Plot
plt.scatter(X[:, 0], X[:, 1], c=Y, s=20, edgecolor='k')
plt.show()
 

f:id:tennisfashionista:20210228232848p:plain

 
この表はどうやって分ける事ができるでしょうか?
前回の表に比べて、はっきりと線引きするのは難しそうですね。
 
 
 
#例1
y_one = np.full((points_per_class),1)
y_two = np.full((points_per_class),2)
y_three = np.full((points_per_class),3)
y_four = np.full((points_per_class),4)
Y = np.concatenate((y_one,y_two,y_three,y_four),axis=0)

plt.scatter(X[:, 0], X[:, 1], c=Y, s=20, edgecolor='k')
plt.show()

#例2.
y_one = np.full((points_per_class),1)
y_two = np.full((points_per_class),1)
y_three = np.full((points_per_class),2)
y_four = np.full((points_per_class),2)
Y = np.concatenate((y_one,y_two,y_three,y_four),axis=0)

plt.scatter(X[:, 0], X[:, 1], c=Y, s=20, edgecolor='k')
plt.show()

#例3
y_one = np.full((points_per_class),1)
y_two = np.full((points_per_class),3)
y_three = np.full((points_per_class),2)
y_four = np.full((points_per_class),2)
Y = np.concatenate((y_one,y_two,y_three,y_four),axis=0)

plt.scatter(X[:, 0], X[:, 1], c=Y, s=20, edgecolor='k')
plt.show()
 
 
 

f:id:tennisfashionista:20210228233519p:plain

 
上記のそれぞれの色分けは、クラスの数とクラスターの場所に対するありえそうな答えです。
ただ、どれが1番正しいかどうやってわかるのでしょうか?
 
このような表は、現実世界で多く見られるかと思います。
 
ビジネスでも、クラスターはよく使われるので、ぜひ使ってみてくださいね。
 
 
 
 
また今後もクラスターについて解説していこうと思いますが
もしもっと深く勉強したい!という方は、ぜひプロの講師にも力を借りてみてください。
 
 
 
これは、実践のビジネスの場でデータを使えるように指導してくれる
社会人の為のおすすめ講座です! 
ぜひサイトや無料説明会等で情報を見てみてくださいね^^
 
また個人的な意見ですが、簡単にメリットデメリット等もまとめているので
よかったらそちらも参考にしてください^^
 
 
最後まで読んで頂きありがとうございました。
 

*1:points_per_class),0)


mean = [1,1]
cov = [[1,0],[0,1]]
x_two = np.random.multivariate_normal(mean, cov, (points_per_class

*2:points_per_class),0)


mean = [-3,-3]
cov = [[1,0],[0,1]]
x_three = np.random.multivariate_normal(mean, cov, (points_per_class

*3:points_per_class),0)


mean = [-1,-1]
cov = [[1,0],[0,1]]
x_four = np.random.multivariate_normal(mean, cov, (points_per_class