学习目标:

构建并且评价据类模型(粗糙模型案例)

学习内容:

1、 使用sklearn估计器构建K-Means聚类模型
2、 评价上述模型

学习产出:(复制粘贴可执行代码)

#@Author :xuXX
#@Time :2020/12/31
#@environment:python3.8
#@Software :pycharm
#@notes :scikit-learn的使用示例,构建并且评价据类模型
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans
iris = load_iris() #加载sklearn自带的一个数据集
iris_data = iris.data  #或者iris_data = iris['data']
iris_target = iris.target
iris_names = iris.feature_names
scale = MinMaxScaler().fit(iris_data)  #训练规则
iris_scaler = scale.transform(iris_data)   #应用规则到(训练)数据集上
kmeans = KMeans(n_clusters=3,random_state=123).fit(iris_scaler) #构建并且训练模型
print('构建的K-means模型:\n',kmeans)
#使用训练出的模型来预测pred01输入实例的花类别
pred01 = [[1.5,1.5,1.5,1.5
],[62,9,15,82]]
print(kmeans.predict(pred01))

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.manifold import TSNE
#使用tsne进行降维
tsne = TSNE(n_components=2,init='random',random_state=177).fit(iris_data)
df = pd.DataFrame(tsne.embedding_)
#将据类结果保存在df列表中
df['labels'] = kmeans.labels_
#提取不同标签的数据
df1 = df[df['labels']==0]
df2 = df[df['labels']==1]
df3 = df[df['labels']==2]
#绘图
fig = plt.figure(figsize=(9,6))
plt.plot(df1[0],df1[1],'bo',df2[0],df2[1],'r*',df3[0],df3[1],'gD')
plt.savefig('聚类结果.png')
plt.show()
#评价据聚类模型

from sklearn.metrics import fowlkes_mallows_score
for i in range(2,7):
    kmeans = KMeans(n_clusters=i,random_state=123).fit(iris_data)
    score = fowlkes_mallows_score(iris_target,kmeans.labels_)
    print('iris数据聚%d类FMI评分是:%f'%(i,score))

结果:

本文地址:https://blog.csdn.net/qq_41893089/article/details/112056456