sklearn是机器学习领域中最知名的python模块之一。sklearn的官网链接http://scikit-learn.org/stable/index.html#
kmeans算法概述:
MATLAB kmeans算法:
下面利用python中sklearn模块进行数据的聚类
数据集自制数据集
维度为3。
需要用到的python库:
- xlrd:读取Excel中的数据
- pandas:数据处理
- numpy:数组
- sklearn:聚类
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import xlrd import pandas as pd import numpy as np from sklearn.cluster import KMeans # 从Excel中读取数据存入数组 rawData = xlrd.open_workbook('kmeansdata.xlsx') table = rawData.sheets()[0] data = [] for i in range(table.nrows): if i == 0: continue else: data.append(table.row_values(i)[1:]) featureList = ['Age', 'Gender', 'Degree'] mdl = pd.DataFrame.from_records(data, columns=featureList) # 聚类 mdl_new = np.array(mdl[['Age', 'Gender', 'Degree']]) # 转化为数组 seed = 9 # 设置随机数 clf = KMeans(n_clusters=3, random_state=seed) # 聚类 clf.fit(mdl_new) # 拟合模型 #print(clf.cluster_centers_) # 查看KMeans聚类后的5个质心点的值。 mdl['label'] = clf.labels_ # 对原数据表进行类别标记 c = mdl['label'].value_counts() print(mdl.values) |
结果:
[[ 5. 1. 0. 0.]
[ 48. 1. 3. 2.]
[ 20. 0. 3. 0.]
[ 69. 1. 4. 1.]
[ 88. 1. 2. 1.]
[ 14. 0. 2. 0.]
[ 32. 0. 4. 2.]
[ 39. 0. 4. 2.]
[ 50. 1. 1. 2.]
[ 9. 0. 0. 0.]]
一共聚类成3类,最后一列是类别数(0,1,2)
[…] http://www.omegaxyz.com/2018/08/28/python%e5%88%a9%e7%94%a8sklearn%e8%bf%9b%e8%a1%8ckmeans%e8%81%9a%… 更多内容访问omegaxyz.com 网站所有代码采用Apache 2.0授权 网站文章采用知识共享许可协议BY-NC-SA4.0授权 © 2018 • OmegaXYZ-版权所有 转载请注明出处 […]