import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
def show_res(data, center, y_predict):
"""
实现结果展示
:param data: 数据
:param center: 类别聚类
:param y_predict: 聚类数据
:return: None
"""
# 创建画布
plt.figure()
index_num = data.shape[0]
color = ['r', 'g', 'b']
colors = []
for i in range(index_num):
colors.append(color[y_predict[i]])
for i in range(index_num):
plt.scatter(data.iloc[i, 0], data.iloc[i, 1],c=colors[i])
# 进行绘制聚类中心
plt.plot(center[:, 0],center[:, 1],'bx', markersize=12)
plt.show()
def desc_sca(data):
"""
小数定标标准化
:param data: 传入数据
:return: 标准化之后的数据
"""
data = data/(10**np.ceil(np.log10(data.abs().max())))
return data
# 加载数据
com = pd.read_csv('company.csv', encoding='gbk')
data = com[['平均每次消费金额', '平均消费周期(天)']]
# 标准化之后的data
data = desc_sca(data)
# 进行k-means算法聚类
# 确定聚类类别数目
k = 3
# 定义一个km对象
# n_clusters --》聚类类别数目
km = KMeans(n_clusters=k)
km.fit(data) # 训练数据
y_predict = km.predict(data) # 进行预测
# 聚类中心
center = km.cluster_centers_
# 结果展示
show_res(data, center, y_predict)
k-means算法模块实现
最新推荐文章于 2023-06-16 13:55:12 发布
本文详细介绍了一种基于Python的数据预处理和K-means聚类分析方法。通过使用pandas和numpy库进行数据读取与预处理,matplotlib库用于数据可视化,以及sklearn库中的KMeans算法实现聚类分析。文章提供了完整的代码示例,展示了如何进行数据标准化、选择聚类数目、执行聚类并可视化聚类结果。
2596

被折叠的 条评论
为什么被折叠?



