前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python利用sklearn进行kmeans聚类

Python利用sklearn进行kmeans聚类

作者头像
里克贝斯
发布2021-05-21 15:25:27
1.8K0
发布2021-05-21 15:25:27
举报
文章被收录于专栏:图灵技术域图灵技术域

sklearn是机器学习领域中最知名的python模块之一。sklearn的官网链接http://scikit-learn.org/stable/index.html#

kmeans算法概述:

k-means算法概述

MATLAB kmeans算法:

MATLAB工具箱k-means算法

下面利用python中sklearn模块进行数据的聚类

数据集自制数据集

维度为3。

需要用到的python库:

  • xlrd:读取Excel中的数据
  • pandas:数据处理
  • numpy:数组
  • sklearn:聚类

代码

代码语言:javascript
复制
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)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下面利用python中sklearn模块进行数据的聚类
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档