import pandas as pd
features = pd.read_excel(r'D:/第5章找决策树/data/air_features.xlsx', index_col='ID') # 导入数据,并以ID作为索引
features_scaler = 1.0 * (features - features.mean()) / features.std() # 数据标准化
# 开始聚类
from sklearn.cluster import KMeans
model = KMeans(n_clusters=5, random_state=3) # 输入指定聚类中心数和随机种子
model.fit(features_scaler) # 模型训练
# 简单打印结果
r1 = pd.Series(model.labels_).value_counts() # 统计各个类别的数目
r2 = pd.DataFrame(model.cluster_centers_) # 找出聚类中心
r = pd.concat([r2, r1], axis=1) # 横向连接(0是纵向),得到聚类中心对应的类别下的数目
r.columns = list(features.columns) + ['类别数目'] # 重命名表头
print(r)
# 详细输出原始数据及对应的类别
r = pd.concat([features, pd.Series(model.labels_, index=features.index)], axis=1)
r.columns = list(features.columns) + ['聚类类别'] # 重命名表头
r.to_excel(r'D:/第5章找决策树/data/features_type.xlsx') # 保存结果
from radar_map import plot # 导入自定义绘制乘客分群结果的雷达图函数
# 调用函数,对模型结果进行可视化绘图
plot(kmeans_model=model, columns=features.columns)
运行会出现这个
ValueError: The number of FixedLocator locations (6), usually from a call to set_ticks, does not match the number of ticklabels (5).
该怎样修改呢?