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

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

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

本次实验使用了随即投影、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()

聚类结果如下:

随机投影降维:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第2张图片

GMM聚类:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第3张图片

K-Means聚类:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第4张图片

DBSCAN聚类:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第5张图片

T-SNE降维:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第6张图片

GMM聚类:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第7张图片

K-Means聚类:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第8张图片

DBScan聚类:

PYTHON sklearn库降维聚类实战——威斯康辛州乳腺癌数据集聚类_第9张图片

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

你可能感兴趣的:(python,sklearn,聚类,python,sklearn,降维,聚类)