本站消息

站长简介


前每日优鲜python全栈开发工程师,自媒体达人,逗比程序猿,钱少话少特宅,我的公众号:想吃麻辣香锅

  python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长



+关注
已关注

分类  

模块(0)

标准库(0)

字典(0)

文件(0)

字符串(0)

标签  

标准库模块(0)

字符串(0)

爬虫(1)

模块(0)

人工智能(0)

日期归档  

2020-06(19)

2020-07(31)

2020-08(41)

2020-09(64)

2020-10(70)

使用scikit-learn构建模型——构建并评价聚类模型

发布于2021-05-29 16:16     阅读(350)     评论(0)     点赞(6)     收藏(0)


0

1

2

3

4

5



构建并评价聚类模型

  1. 使用sklearn估计器构建聚类模型(cluster提供聚类算法)
#使用sklearn 估计器构建K-Means 聚类模型
from sklearn.datasets import load_iris
from sklearn.preprocessing import MinMaxScaler
from sklearn.cluster import KMeans
iris=load_iris()
iris_data=iris['data'] #提取数据集中的特征
iris_target=iris['target'] #提取数据集中的标签
iris_names=iris['feature_names'] #提取特征名
scale=MinMaxScaler().fit(iris_data) #训练规则
iris_dataScale=scale.transform(iris_data) #应用规则
kmeans=KMeans(n_clusters=3,random_state=123).fit(iris_dataScale)#构建并训练模型
print('构建的K-Means模型为:\n',kmeans)
#预测结果
result=kmeans.predict([[1.5,1.5,1.5,11.5]])
print('花瓣花萼长度宽度全为1.5的花预测类别为:',result[0])
使用TSNE函数对以上结果做可视化
#聚类结果可视化
import pandas as pd
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
#使用TSNE 进行数据降维,降成两维
tsne=TSNE(n_components=2,init='random',random_state=177).fit(iris_data)
df=pd.DataFrame(tsne.embedding_) #将原始数据转换成为DataFrame
df['labels']=kmeans.labels_ #将聚类结果存储进df数据表
#提取不同标签的数据
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.show()

聚类结果可视化

2.评价聚类模型(metrics模块聚类模型评价指标)

#使用FMI 评价法评价K-Means 聚类模型
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))

FMI

#使用轮廓系数 评价法评价K-Means 聚类模型
from sklearn.metrics import silhouette_score
import matplotlib.pyplot as plt
silhouettteScore=[]
for i in range(2,15):
    kmeans=KMeans(n_clusters=i,random_state=123).fit(iris_data)
    score=silhouette_score(iris_data,kmeans.labels_)
    silhouettteScore.append(score)
plt.figure(figsize=(10,6))
plt.plot(range(2,15),silhouettteScore,linewidth=1.5,linestyle='-')
plt.show()

轮廓系数评价

#使用calinski_harabasz指数评价K-Means 聚类模型
from sklearn.metrics import calinski_harabasz_score
for i in range(2,7):
    kmeans=KMeans(n_clusters=i,random_state=123).fit(iris_data)
    score=calinski_harabasz_score(iris_data,kmeans.labels_)
    print('iris数据聚%d类calinski_harabaz指数为:%f' %(i,score))

calinski_harabaz指数




0

1

2

3

4

5

6

7

8

9



所属网站分类: 技术文章 > 博客

作者:追梦骚年

链接:https://www.pythonheidong.com/blog/article/978049/9fd8d536e51e5e066509/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)