python:用 sklearn.metrics 评价 K-Means 聚类模型

sklearn 的 metrics 模块提供的聚类模型评价指标如下:

ARI 评价法(兰德系数): adjusted_rand_score

AMI 评价法(相互信息): adjusted_mutual_info_score

V-measure 评分 : completeness_score

FMI 评价法 : fowlkes_mallows_score

轮廓系数评价法 : silhouette_score

Calinski-Harabasz 指数评价法 : calinski_harabasz_score

编写 test_sklearn_4.py 如下

python 复制代码
# -*- coding: utf-8 -*-
""" 使用 sklearn 评价 K-Means 聚类模型 """
#import numpy as np
#import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import preprocessing
from sklearn import cluster

# 1.加载 鸢尾花 数据集
iris = datasets.load_iris()
# 数据集的数据
iris_data = iris['data']
# 数据集的标签
iris_target = iris['target']

# 使用 FMI 评价法评价 K-Means 聚类模型
from sklearn.metrics import fowlkes_mallows_score
for i in range(2,7):
    # 构建并训练模型
    kmeans = cluster.KMeans(n_clusters=i, n_init=10,random_state=123).fit(iris_data)
    score = fowlkes_mallows_score(iris_target, kmeans.labels_)
    print(f"iris_{i} 类 FMI 评价分数: {score}")
print('--------')

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

# 使用 Calinski-Harabasz 指数评价 K-Means 聚类模型
from sklearn.metrics import calinski_harabasz_score
for i in range(2,7):
    # 构建并训练模型
    kmeans = cluster.KMeans(n_clusters=i, n_init=10,random_state=123).fit(iris_data)
    score = calinski_harabasz_score(iris_data, kmeans.labels_)
    print(f"iris_{i} 类 calinski_harabasz 指数为: {score}")

cmd

set OMP_NUM_THREADS=1

python test_sklearn_4.py

(base) D:\python> python test_sklearn_4.py
iris_2 类 FMI 评价分数: 0.7504732564880243
iris_3 类 FMI 评价分数: 0.8208080729114153
iris_4 类 FMI 评价分数: 0.7539699941396392
iris_5 类 FMI 评价分数: 0.7254830776265845
iris_6 类 FMI 评价分数: 0.614344977586966
--------
iris_2 类 calinski_harabasz 指数为: 513.9245459802768
iris_3 类 calinski_harabasz 指数为: 561.62775662962
iris_4 类 calinski_harabasz 指数为: 530.4871420421675
iris_5 类 calinski_harabasz 指数为: 495.54148767768777
iris_6 类 calinski_harabasz 指数为: 469.8366331329009

参考书:【Python 数据分析与应用】第6章 使用 scikit-learn 构建模型

相关推荐
web135085886352 小时前
Python大数据可视化:基于python的电影天堂数据可视化_django+hive
python·信息可视化·django
东方芷兰2 小时前
伯克利 CS61A 课堂笔记 11 —— Mutability
笔记·python
不会Hello World的小苗4 小时前
Java——列表(List)
java·python·list
m0_748235956 小时前
Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider
hadoop·python·flask
Dyan_csdn7 小时前
【Python项目】基于Python的Web漏洞挖掘系统
网络·python·安全·web安全
Minner-Scrapy7 小时前
DApp 开发入门指南
开发语言·python·web app
&小刘要学习&7 小时前
anaconda不显示jupyter了?
python·jupyter
jerry-897 小时前
jupyterhub_config配置文件内容
python
奔跑吧邓邓子7 小时前
【Python爬虫(36)】深挖多进程爬虫性能优化:从通信到负载均衡
开发语言·爬虫·python·性能优化·负载均衡·多进程
学长学姐我该怎么办8 小时前
年前集训总结python
python