1)。トランプの手動演奏のK平均クラスタリングプロセス:> 30枚のカード、3種類
ここでは、40枚のカードを選択し、ランダムに3枚のカードを選択し、それぞれのポイントをクラスセンターとして使用しました。最初は2 6 9でした。
各分類の基本は、ポイントが中心に近く、分類の下で分類されることです。初めて分類した後、各クラスの中心値を計算し(このクラスのすべての数値を平均)、3つのクラスの中心を再描画すると、2番目のクラスは次のようになります
クラスの中心が変化しなくなるまで、上記の計算手順を繰り返します。具体的な結果を次の表に示します。
2)。* K平均アルゴリズムは独立して記述され、クラスタリングはアイリス花弁の長さのデータに対して実行され、散布図で表示されます。(プラスポイント)
numpyをnpとしてインポートします。 sklearn.datasetsからimport load_iris matplotlib.pyplotをpltとしてインポートする アイリス= load_iris() pl = iris.data [:、2] n = len(pl)#サンプル数 k = 3#センターの数 dist = np.zeros([n、k + 1])#行列を初期化する center = np.zeros([k]) centerNew =例:ゼロ([k]) 範囲(k)のfor i:#最初に同じ中心を避ける range(n)のjの場合: pl [j]が中央にある場合: 継続する そうしないと: center [i] = pl [j] ブレーク while(真): range(n)のiの場合: range(k)のjの場合: dist [i、j] = np.sqrt((pl [i] -center [j])** 2)#距離を計算 dist [i、k] =例:マージン(dist [i ,: k]) #新しい中心を計算する 範囲(k)のiの場合: インデックス= dist [:, k] == i centerNew [i] = np.mean(pl [index]) #2つの中心が以前に同じであった場合は飛び出し、そうでない場合は続行します if np.all((center == centerNew)): ブレーク そうしないと: 範囲(k)のiの場合: center [i] = centerNew [i] plt.scatter(pl、pl、c = dist [:、k]、s = 60、cmap = 'rainbow') plt.show()
結果が出た後、それは非常に満足のいくものではありませんでした。
3)。クラスタリングにsklearn.cluster.KMeansとアイリス花弁の長さデータを使用し、散布図で表示します。
matplotlib.pyplotをpltとしてインポートする sklearn.clusterからインポートKMeans sklearn.datasetsからimport load_iris アイリス= load_iris() pl = iris.data [:、2] x = pl.reshape(-1,1) est = KMeans(n_clusters = 3) 推定適合(x) y_kmeans = est.predict(x) plt.scatter(x [:、0]、x [:、0]、c = y_kmeans、s = 50、cmap = 'rainbow'); plt.show()
4)。アイリスの花の完全なデータがクラスター化され、散布図で表示されます。
irisData = iris.data KMeans_model = KMeans(n_clusters = 3) KMeans_model.fit(irisData) pre = KMeans_model.predict(irisData) plt.scatter(irisData [:、2]、irisData [:、3]、c = pre、s = 50、cmap = 'rainbow') plt.show()
5)。k-meansアルゴリズムで何が使用されているかを考えますか?
k-meansアルゴリズムは、教師なし分類アルゴリズムです。主に、多数の特徴データを使用してカテゴリを区別します。上記の質問と同様に、KMeansアルゴリズムは、虹彩の種類を区別するために使用できます。実際には、人を区別するためにも使用できます。体重や身長などのデータは、身長、身長、体脂肪、痩身など体調の異なる人を分けるのに使用でき、短編作品と長編作品は文学作品の長さで分類することもできます。