【python】调用sklearn使用k-means模型

本文介绍了一种使用K-means算法进行数据聚类的方法,并通过PCA技术将数据特征维度降至2维,便于可视化展示。文章详细展示了从数据预处理、聚类分析到结果可视化及预测的全过程。
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
import pandas as pd
import numpy as np
import matplotlib as mpl
#iOS系统
mpl.use('TkAgg')
import matplotlib.pyplot as plt
from sklearn.preprocessing import Imputer  # 导入sklearn.preprocessing中的Imputer库
 
#聚类数据
df=pd.read_csv('overdue (5).csv', header=None,encoding='utf-8',sep='\t')

#去掉第一列(index)
df2 = df.drop(df.columns[0], axis=1)

#归一化处理
#df3=(df2 - df2.min()) / (df2.max() - df2.min())
df1 = df2.fillna(df2.mean()) # 用平均数代替,选择各自列的均值替换缺失值

#K-means聚类
kmeans = KMeans(n_clusters=5, random_state=10).fit(df1)
df1['jllable']=kmeans.labels_
df_count_type=df1.groupby('jllable').apply(np.size)

##各个类别的数目
print(df_count_type)
##聚类中心
print(kmeans.cluster_centers_)
##新的dataframe,命名为new_df ,并输出到本地,命名为new_df.csv。
new_df=df1[:]
new_df
new_df.to_csv('new_df.csv')
 
##将用于聚类的数据的特征的维度降至2维,并输出降维后的数据,形成一个dataframe名字new_pca
pca = PCA(n_components=2)
new_pca = pd.DataFrame(pca.fit_transform(new_df))
 
##可视化
d = new_pca[new_df['jllable'] == 0]
plt.plot(d[0], d[1], 'r.')
d = new_pca[new_df['jllable'] == 1]
plt.plot(d[0], d[1], 'go')
d = new_pca[new_df['jllable'] == 2]
plt.plot(d[0], d[1], 'b*')
plt.gcf().savefig('kmeans.png')
plt.show()

#以下为预测
df_y=pd.read_csv('overdue (6).csv', header=None,encoding='utf-8',sep='\t')

#处理数据的方式与上面相同
#去掉第一列(index列)
df2_y = df_y.drop(df_y.columns[0], axis=1)
#处理空值
df1_y = df2_y.fillna(df2_y.mean())
df1_y = df1_y.fillna(1)
#预测
df_y['ls'] = kmeans.predict(df1_y)  # 预测聚类模型
new_df_y=df_y[:]
#输出
new_df_y.to_csv('new_df_y.csv')

 

当然可以,以下是使用scikit-learn库中的K-means模型对红酒数据进行聚类的步骤和示例代码: 1. **导入必要的库**: - `pandas`用于数据处理 - `numpy`用于数值计算 - `matplotlib`用于数据可视化 - `sklearn`中的`KMeans`用于聚类 2. **加载红酒数据**: - 使用`pandas`读取数据文件(如CSV文件) 3. **数据预处理**: - 检查数据是否有缺失值 - 数据标准化(可选,但推荐) 4. **应用K-means聚类**: - 初始化K-means模型 - 训练模型 - 预测聚类结果 5. **可视化聚类结果**: - 使用`matplotlib`绘制聚类结果 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler # 1. 加载数据 data = pd.read_csv('wine.csv') # 2. 数据预处理 # 检查是否有缺失值 print(data.isnull().sum()) # 数据标准化 scaler = StandardScaler() data_scaled = scaler.fit_transform(data) # 3. 应用K-means聚类 kmeans = KMeans(n_clusters=3, random_state=42) kmeans.fit(data_scaled) labels = kmeans.labels_ # 4. 可视化聚类结果 plt.figure(figsize=(8, 6)) plt.scatter(data_scaled[:, 0], data_scaled[:, 1], c=labels, cmap='viridis') plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.title('K-means Clustering on Wine Data') plt.show() ``` 在上述代码中,我们首先导入了必要的库,然后加载了红酒数据。接下来,我们对数据进行预处理,包括检查缺失值和数据标准化。然后,我们应用K-means算法进行聚类,并使用Matplotlib库将聚类结果可视化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值