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

相关推荐
mutianhao10243 小时前
SQLAlchemy 2.x 异步查询方法比较
python·mysql·sqlalchemy
Jackson@ML4 小时前
如何快速高效学习Python?
开发语言·python
UFIT5 小时前
Python函数与模块笔记
开发语言·python
言之。5 小时前
别学了,打会王者吧
java·python·mysql·容器·spark·php·html5
YiSLWLL6 小时前
使用Tauri 2.3.1+Leptos 0.7.8开发桌面小程序汇总
python·rust·sqlite·matplotlib·visual studio code
花酒锄作田6 小时前
[flask]自定义请求日志
python·flask
SsummerC8 小时前
【leetcode100】组合总和Ⅳ
数据结构·python·算法·leetcode·动态规划
Tandy12356_8 小时前
Godot开发2D冒险游戏——第一节:主角登场!
python·游戏引擎·godot
西柚小萌新9 小时前
【Python爬虫基础篇】--4.Selenium入门详细教程
爬虫·python·selenium
橘猫云计算机设计9 小时前
springboot基于hadoop的酷狗音乐爬虫大数据分析可视化系统(源码+lw+部署文档+讲解),源码可白嫖!
数据库·hadoop·spring boot·爬虫·python·数据分析·毕业设计