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 构建模型

相关推荐
凤头百灵鸟43 分钟前
Python语法基础篇(包含类型转换、拷贝、可变对象/不可变对象,函数,拆包,异常,模块,闭包,装饰器)
python
多多*2 小时前
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
linux·开发语言·redis·python·bootstrap·lua
何双新3 小时前
第21讲、Odoo 18 配置机制详解
linux·python·开源
Wish3D3 小时前
阿里云OSS 上传文件 Python版本
开发语言·python·阿里云
阿福不是狗5 小时前
Python使用总结之Mac安装docker并配置wechaty
python·macos·docker
gen_5 小时前
mac环境下的python、pycharm和pip安装使用
python·macos·pycharm
AI视觉网奇5 小时前
pycharm 左右箭头 最近编辑
ide·python·pycharm
思绪无限5 小时前
Pycharm的终端无法使用Anaconda命令行问题详细解决教程
ide·python·pycharm·终端·命令行·anaconda·问题教程
漫步云端-r5 小时前
Pycharm的使用技巧总结
ide·python·pycharm
风逸hhh7 小时前
python打卡day46@浙大疏锦行
开发语言·python