k-meansクラスタリングアルゴリズム
問題:あなたはどのように分類するためにそれらを分類するためにあなたにこのような観点を与えるためには、付加的な情報を与えていませんか?
そこで、我々は、命ずることができる帽子や髪をその分類の特徴として、羽の群れが一緒のグループの人々を
クラスタリングの原則:
1.ランダムに三つのカテゴリー(K1、K2、K3)の中心点として、データ内の三つのサンプルの中から選択。## ##マーキングソリッドカラーの図
残りの点は3の中心点を計算するために2でした距離、その結果、各点(サンプル)3つの距離(A、B、C)のマークが三つのグループを形成するように、最も近い自分の中心からの選択がある。
3.計算三つのグループの平均値を。3×3古い中心点の平均と比較された値、
- 同じ場合クラスタリングの終わり:
- 異なる場合:新しい中心としてこの平均値と第2のステップでは、第3段クラスタリングが終了するまで繰り返されます。
ステップK-手段:
初期クラスタ中心として特徴空間内のk個の点のランダムセット 2。計算他の点の各々に対するkの中心までの距離、クラスタの中心に最も近い点を選択未知のランドマークのカテゴリとして 3。次に、クラスタ中心を標識した後、新たな中心点が各クラスター(平均値)に対して計算される 4元の中心点として算出された新たな中心点場合は、端をクラスタリング、そうでなければ第2工程を繰り返します
K-手段→API:
sklearn.cluster.KMeansは、(= n_clusters 8、INIT = '++ K-手段'。 ) K - クラスタリング手段 n_clustersは:クラスタ中心の数が開始 INIT:初期化方法、デフォルト' K-手段++ ' labels_:マークのデフォルト・タイプ、そして、あなたが実際の値を比較することができます(ない値比較)
クラスタリングの役割は何ですか?
クラスタリングは、一般的に前に分類アルゴリズムで使用され、その後、予測します。
クラスタリングプロセス:
- 次元の後にデータをドロップ
- k-meansクラスタリング
- 示したクラスタ分析
ケースプレゼンテーション:
ケース#インポートデータ
のインポートPANDAS AS PD から sklearn.decomposition インポートPCA #は4つのテーブルデータを読み込む 前= pd.read_csv(R&LT ' C:\ Users \ユーザーluowe \デスクトップ\ week9 \ week9 \ Instacart \ order_products__prior.csv ' ) 製品 = pd.read_csv(R ' C:\ Users \ユーザーluowe \デスクトップ\ week9 \ week9 \ instacart \ products.csv ' ) 受注 = pd.read_csv(R ' C:\ Users \ユーザーluowe \デスクトップ\ week9 \ week9 \ instacart \ orders.csv ' ) 通路 = pd.read_csv(R&LT ' C:\ユーザー\ luowe \デスクトップ\ week9 \ week9 \ Instacart \ aisles.csv ' ) #のマージテーブルに4つのテーブル(ユーザ-アイテムタイプ) データ= pd.merge(以前は、製品、ON = ' product_idの' ) データ = pd.merge(=上のデータ、受注、' ORDER_ID ' ) データ = pd.merge(データ、通路、ON = 「aisle_id 」) #は、ユーザラインを確立し、製品は、表#ユーザおよび製品すなわちクロスに記載されている テーブルpd.crosstab =(データ[ 「USER_ID 」 ]、データ【' アイル' ]) #のデータ構造(206209、134)は、ショットは、組成分析、次元削減に必要 PCA =(n_components = 0.9)PCA #は保持されたデータの90% RES = pca.fit_transform(表) #前データ学習のドロップデータ寸法
#大量のデータ、データ保存 X = RES [500 ] #ユーザの合計4つのカテゴリに分類されていると仮定 から sklearn.cluster インポート関数kmeans キロ =関数kmeans(n_clusters = 4 ) km.fit(X) #クラスタリング、分類がマーク 予測= km.predict(x)が少ないです
出力:
500件の結果、これらの四つのカテゴリーを引き出します:
輸入PLTとしてmatplotlib.pyplot plt.figure(figsize =(10,10 )) #作成した4色 = [色の「グリーン」、「赤」、「イエロー」、「ブルー」] 色 = [I] [着色のために私に予測] plt.scatter(X [: 1]、X [:11]、色=カラー) #1 スキャッタグラム、x列1、Y列11 plt.xlabel(' 1 ' ) plt.ylabel(' 2 ' ) plt.show() #2つだけ次元を取ったので、それが見えます...
評価基準をクラスタリング:
クラスタリング効果の品質
インテリア最小限に距離#を最大化するために#外部のクラスタリング
## 輪郭係数、クラスタリング結果の品質を計算 ##
極端なケースを考えてみます。
完全クラスタ biは>>愛:SCI = 1 最悪のクラスタリング BI <<愛:SCI = -1輪郭係数は[-1,1] 0.1より一般的なプロファイル係数も大きいが、非常に良好な効果を
評価のAPIをクラスタリング:
sklearn.metrics.silhouette_score(X、ラベル)が
算出される全てのサンプルについて平均プロファイル因子
X固有値:
ラベルクラスタ化される標識された標的。
##裁判官効果プロファイル係数をクラスタリング から sklearn.metrics インポートsilhouette_score silhouette_score(X、予測) #常にチューニングすることで、グリッドサーチ、クロスバリデーションは、最良の効果をクラスタリングします
出力:
K-手段は、要約します:
機能
、反復直感的、かつ実用的な
欠点は、
局所最適ソリューション(複数のクラスタ)に収束することは簡単です..... 持って#クラスローカルクラスタ#の
注:クラスタ化は、一般的な分類の前に行われます