PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类

1 篇文章 0 订阅
1 篇文章 0 订阅

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类

威斯康辛州乳腺癌数据集
此数据集是sklearn.datasets的内置数据集,包含了威斯康辛州记录的569个病人的乳腺癌恶性/良性(1/0)类别型数据(训练目标),以及与之对应的30个维度的生理指标数据。
威斯康辛州乳腺癌数据集

本次实验使用了随即投影、T-SNE、PCA、Isomap四种降维方法和DBScan、K-means、GMM三种聚类方法,经比较,使用T-SNE降维或随机投影降维后,再使用GMM聚类的效果较好。

可能是数据集整体太稠密或者降维模型、DBScan模型参数的问题,DBScan效果不忍直视~

代码如下:

运行环境为python 3.7 需要安装sklearn库和matplotlib库

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import preprocessing
from sklearn import datasets
from sklearn.cluster import KMeans
from sklearn.cluster import DBSCAN
from sklearn.mixture import GaussianMixture
from sklearn import metrics
from sklearn import random_projection
from sklearn import manifold
from sklearn import decomposition

##乳腺癌数据集
X,y=datasets.load_breast_cancer(return_X_y=True)
##print("X.shape:",X.shape)
##print("y.shape:",y.shape)
##print("X[:3]:",X[:3])
##print("y[:3]",y[:3])

##随机投影降维
##rp=random_projection.SparseRandomProjection(n_components=3,density=0.1,random_state=0)
##X_projected=rp.fit_transform(X)

##T-SNE降维
tsne=manifold.TSNE(n_components=3,init="pca")
X_projected=tsne.fit_transform(X)

##PCA降维
##pca=decomposition.TruncatedSVD(n_components=3)
##X_projected=pca.fit_transform(X)

##Isomap降维
##iso = manifold.Isomap(n_neighbors=20, n_components=3)
#X_projected=iso.fit_transform(X)

##结果标准化
##X_projected=preprocessing.scale(X_projected)

##DBSCAN聚类
##y_pred=DBSCAN(eps=0.1,min_samples=10).fit_predict(X_projected)

##GMM聚类
y_pred=GaussianMixture(n_components=2).fit_predict(X_projected)

##K-means聚类
##y_pred=KMeans(n_clusters=2).fit_predict(X_projected)

##对K-mean的聚类效果进行评分
##score=metrics.calinski_harabasz_score(X_projected,y_pred)
##print(score)

plt.figure(1)
ax = plt.subplot(111, projection='3d')
ax.scatter(X_projected[:,0],X_projected[:,1],X_projected[:,2],c=y)
plt.figure(2)
ax = plt.subplot(111, projection='3d')
ax.scatter(X_projected[:,0],X_projected[:,1],X_projected[:,2],c=y_pred)
plt.show()

聚类结果如下:

随机投影降维:

随机投影降维述

GMM聚类:

GMM聚类

K-Means聚类:

K-Means聚类

DBSCAN聚类:

DBSCAN聚类

T-SNE降维:

T-SNE降维

GMM聚类:

GMM聚类

K-Means聚类:

K-Means聚类

DBScan聚类:

DBScan聚类

因为GMM和K-Means的原理较为相似,所以它们的结果较相似,效果较好,DBScan效果。。。
因为是初学,各个模型的参数可能设置的有些问题。。。

  • 8
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值