IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 先降维后聚类+评价指标sklearn+wine数据集实战 -> 正文阅读

[人工智能]先降维后聚类+评价指标sklearn+wine数据集实战


前言

本文主要就之前学习的算法加以应用,练习使用sklearn库,初学者建议参考,利用wine数据集做实验,该数据集偏小,对电脑要求不高且具有较好的效果。先降维后聚类是本例子的思想。


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据集(wine)

from sklearn import datasets

wine = datasets.load_wine()
wine_data = wine['data']
wine_target = wine['target']
# 数据集的描述信息
wine_desc = wine['DESCR']
print('数据集的描述信息', wine_desc)
print('原始数据集数据的形状为:', wine_data.shape)
print('原始数据集标签的形状为:', wine_target.shape)
print('数据集的长度', len(wine_data))
print('数据集中数据的类型', wine_data.dtype)
print('数据集的类型', type(wine_data))
# print('数据集的数据', wine_data)
print('原数据集样本的标签\n', wine_target)

wine_name = wine['feature_names']
print('数据集的特征名', wine_name)

研究明白数据集是数据处理的第一步

二、对数据的标准化

a)

# 标准差标准化
from sklearn.preprocessing import StandardScaler
wine_data = StandardScaler().fit(wine_data).transform(wine_data)

b)

# 最大最小值归一化
from sklearn.preprocessing import MinMaxScaler
wine_data = MinMaxScaler().fit(wine_data).transform(wine_data)

三、降维

1.PCA降维

# 利用PCA降维,降到二维
from sklearn.decomposition import PCA
# 设置参数n_components=2维度为2 
pca = PCA(n_components=2)
# 传入数据
P_data = pca.fit(wine_data).transform(wine_data)
print('降维后数据集的形状', P_data.shape)

2.T-SNE降维

# 利用TSNE降维,降到二维
from sklearn.manifold import TSNE
# 参数n_components=2设置维度
tsne = TSNE(n_components=2)
# 传入数据
T_data = tsne.fit_transform(wine_data)
print('降维后数据集的形状', T_data.shape)

四、聚类(K-means++)

# 降维前聚类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3,random_state=10).fit(wine_data)
print(kmeans.labels_)
# 采用降维后的数据进行聚类(K-means)
from sklearn.cluster import KMeans
kmeans_P = KMeans(n_clusters=3,random_state=10).fit(P_data)
kmeans_T = KMeans(n_clusters=3, random_state=10).fit(T_data)
print('构建的KMeans模型为:', kmeans)
print(kmeans.labels_)

五、评估

1、FMI评价法

from sklearn.metrics import fowlkes_mallows_score  # FMI评价法
score_P = fowlkes_mallows_score(wine_target, kmeans_P.labels_)
score_T = fowlkes_mallows_score(wine_target, kmeans_T.labels_)
print("PCA降维后聚类wine数据集的FMI:%f" % (score_P))
print("TSNE降维后聚类wine数据集的FMI:%f" % (score_T))

2、准确率评价

from sklearn.metrics import accuracy_score
arr_P = accuracy_score(kmeans_P.labels_,wine_target)
print('PCA降维后准确率:%f'%(arr_P))
arr_T = accuracy_score(kmeans_T.labels_,wine_target)
print('TSNE降维后准确率:%f'%(arr_T))

3、Calinski-Harabaz 指数

from sklearn import metrics
CH_P=metrics.calinski_harabasz_score(wine_data, kmeans_P.labels_)
print('PCA降维后CH指数:%f' % (CH_P))
CH_T=metrics.calinski_harabasz_score(wine_data, kmeans_T.labels_)
print('PCA降维后CH指数:%f' % (CH_T))

4、Davies-Bouldin Index指数

# Davies-Bouldin Index
from sklearn.metrics import davies_bouldin_score
DBI_P = davies_bouldin_score(wine_data, kmeans_P.labels_)
print('PCA降维后DBI指数:%f' % (DBI_P))
DBI_T = davies_bouldin_score(wine_data, kmeans_T.labels_)
print('T-SNE降维后DBI指数:%f' % (DBI_T))

六、 总结

经过实验,发现了下面几个问题,首先是参数的选择。利用sklearn库中的kmeans算法默认是K-means++,第一个参数是聚类簇的数量,通过对wine数据集分析已知是3类,第二个参数是用于初始化质心的生成器(generator)。如果值为一个整数,则确定一个seed。最终确定为10,是我在0-100中选这个一个相对准确率较高的值。
其次就是PCA降维具有一定的随机效果,结果不太确定,但是多跑几轮还是有重合的结果。最后就是各种评价指标,侧重点不一样,得出的结果也不近相同。
在这里插入图片描述
在这里插入图片描述

可以看到数据实验结果,我选择的是准确率较高的实验结果,但是使用不同的降维算法会将同一个样本划分到不同的类簇中,并且两个降维算法可能会产生同样的错误。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:04:06  更:2021-08-19 12:06:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/1 7:46:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码