# 导入所需库
import pandas as pd
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 记得补充你需要用到的Python包
# 读取训练数据集
train_data_path = "居民收入数据.csv"
train_data = pd.read_csv(train_data_path)
train_data.dropna()
print(train_data.describe(include='all'))
train_data=train_data[['age','fnlwgt','education_num','capital_gain','capital_loss','hours_per_week','income_bracket']].values
print(train_data.shape)
# 初始化K均值模型,设定聚类数为2
kmeans = KMeans(n_clusters=2)
data=train_data[1000:2000]
# 对数据进行聚类
kmeans.fit(data)
# 获取聚类中心和聚类标签
centroids = kmeans.cluster_centers_
labels = kmeans.labels_
# 绘制原始数据散点图
plt.scatter(data[:, 0], data[:, 1])
# 绘制聚类中心
plt.scatter(centroids[:, 0], centroids[:, 1], marker='*', s=200, c='red')
# 标记聚类结果
for i, label in enumerate(labels):
plt.text(data[i, 0], data[i, 1], str(label), fontsize=12)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('K-Means Clustering')
plt.show()