K-MEANS(K均值聚类算法-C均值算法)ppt课件
- 格式:ppt
- 大小:1.23 MB
- 文档页数:20
聚类分析概述、k均值聚类算法KMeans处理数据及可视化⼀概述聚类分析⽬的将⼤量数据集中具有“相似”特征的数据点或样本划分为⼀个类别常见应⽤场景在没有做先验经验的背景下做的探索性分析样本量较⼤情况下的数据预处理⼯作将数值类的特征分成⼏个类别聚类分析能解决的问题包括数据集可以分为⼏类每个类别有多少样本量不同类别中各个变量的强弱关系如何不同类别的典型特征是什么k均值聚类算法 KMeans注意事项需要处理异常值如果建模的特征中,量纲差距⽐较⼤,需要做归⼀化/标准化创建KMeans对象建模n_cluster 聚类个数init='k-means++' 在选点的时候,找距离初始点⽐较远的点random_state 随机种⼦数kmeans.inertia_ 簇内误差平⽅和轮廓系数 metrics.silhouette_score()kmeans_model.cluster_centers_ 聚类中⼼点kmeans_bels_ 聚类之后的标签⼆案例1 数据准备import pandas as pddf = pd.read_csv('data.csv')# 使⽤最后两列作为分群依据x = df.iloc[:,3:].values2 创建 KMeans 模型,进⾏聚类【核⼼代码】# 导包from sklearn.cluster import KMeans# 模型创建kmeans_model = KMeans(n_clusters=5, init='k-means++', random_state= 11)# 进⾏聚类处理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.valuesfor 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()完成辣!附⼏个变量说明,便于复习================================================本⽂仅⽤于学习。