概要
- クラスター分析の目的
- 大きなデータセット「類似性」を有するデータポイントまたはサンプルを分割するカテゴリの特徴であります
- 一般的なシナリオ
- 背景を行う前に経験のない状態で行って探索的分析
- 大きなサンプルサイズの場合には前処理データ
- いくつかのカテゴリに特徴量クラス
- クラスター分析の問題は、解決することができます
- データセットは、いくつかのカテゴリに分けることができます
- 各カテゴリに持っているどのくらいのサンプルサイズ
- どのように異なるカテゴリーの変数間の関係の強さ
- 異なるカテゴリーの典型的な特徴は何ですか
- k平均クラスタリングアルゴリズム関数kmeans
- 注意事項
- 外れ値に対処するために、
- 機能をモデル化した場合、無次元のギャップは、正規化/標準化を行うために、比較的大きな、必要があります
- 関数kmeansオブジェクトのモデリングを作成します
- クラスタのn_cluster数
- 最初のポイントから比較的遠いポイントを見つけるために、時点を選択INIT =「k平均++」
- random_state乱数シード
- 二乗誤差クラスタkmeans.inertia_
- プロファイル係数metrics.silhouette_score()
- kmeans_model.cluster_centers_クラスタ中心
- kmeans_model.labels_後のクラスタのラベル
二つの例
1データ準備
インポートPANDAS AS PD DF = pd.read_csv(' data.csv ' ) #をグループ化するための基礎として最後の二つを使用 X = df.ilocを[:3: ]値
2関数kmeansモデルを作成し、コアコードクラスタリング[]
#リーダーパケット から sklearn.cluster インポート関数kmeansの #の作成モデル kmeans_model =関数kmeans(n_clusters = 5、INIT = ' K-手段++ '、random_state = 11 ) #1 クラスタリング処理 y_kmeans = kmeans_model.fit_predict(X)を
データは、5つのカテゴリーに分割されているこの時点で、タグデータが付加され
3視覚化クラスタリング結果
# 导入可视化工具包 import matplotlib.pyplot as plt %matplotlib inline # 颜色和标签列表 colors_list = ['red', 'blue', 'green','yellow','pink'] labels_list = ['Traditional','Normal','TA','Standard','Youth'] # 需要将DataFrame转成ndarray,才能进行 x[y_kmeans==i,0] x = x.values for i in range(5): plt.scatter(x[y_kmeans==i,0], x[y_kmeans== i,1], s=100,c=colors_list[i],label=labels_list[i]) # 聚类中心点 plt.scatter(kmeans_model.cluster_centers_[:,0],kmeans_model.cluster_centers_[:,1], s=300,c='black',label='Centroids') plt.legend() plt.xlabel('Annual Income (k$)') plt.ylabel('Spending Score (1-100)') plt.show()
4 评估聚类个数
# 用于盛放簇内误差平方和的列表 distortion = [] for i in range(1,11): kmeans = KMeans(n_clusters=i,init='k-means++', random_state=11) kmeans.fit(x) distortion.append(kmeans.inertia_) plt.plot(range(1,11), distortion) plt.title('The Elbow Method') plt.xlabel('Number of cluster') plt.ylabel('Distortion') plt.show()
完成辣!
附几个变量说明,便于复习
========================
========================
本文仅用于学习