データ処理と可視化関数kmeansためのアルゴリズムをクラスタリング概要、k平均|クラスター分析

概要

  • クラスター分析の目的
    • 大きなデータセット「類似性」を有するデータポイントまたはサンプルを分割するカテゴリの特徴であります
  • 一般的なシナリオ
    • 背景を行う前に経験のない状態で行って探索的分析
    • 大きなサンプルサイズの場合には前処理データ
    • いくつかのカテゴリに特徴量クラス
  • クラスター分析の問題は、解決することができます
    • データセットは、いくつかのカテゴリに分けることができます
    • 各カテゴリに持っているどのくらいのサンプルサイズ
    • どのように異なるカテゴリーの変数間の関係の強さ
    • 異なるカテゴリーの典型的な特徴は何ですか
  • 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()

 

完成辣!

附几个变量说明,便于复习

 

========================

 

 

========================

 

 本文仅用于学习

おすすめ

転載: www.cnblogs.com/ykit/p/12383257.html