几种无监督学习示例

无监督学习模型是识别无标签数据结构的模型。这里简单介绍几种的无监督学习算法。分别是主成分分析(PCA)、高斯混合模型、流形学习算法(Isomap)。

1.主成分分析(PCA)

这里使用鸢尾花数据集进行演示,将它降维到两个维度,然后再可视化。其实,降维的任务是要找到一个可以保留数据本质特征的低维矩阵来描述高维数据,理解数据中的主要方差,降维通常用于辅助数据可视化工作的。当然,PCA并不是一个队每个高维数据集都有效的算法,数据集中的异常点会影响PCA的效果。因为这个缺点,很多PCA变体被开发出来了,在sklearn.decomposition子模块中有两个方法:RandomizedPCASparsePCARandomizedPCA算法是使用了一个非确定方法,快速地近似计算一个维度非常高的数据的前几个主成分,而SparsePCA引入了一个正则项来保证成分的稀疏性。

from sklearn.decomposition import PCA
import seaborn as sns

iris = sns.load_dataset("iris")
# iris.head()
X_iris = iris.drop("species", axis=1)
Y_iris = iris["species"]
model = PCA(n_components=2)
model.fit(X_iris)
X_2D = model.transform(X_iris)
iris["PCA1"] = X_2D[:, 0]
iris["PCA2"] = X_2D[:, 1]
# iris.head()

sns.lmplot("PCA1", "PCA2", hue="species", data=iris, fit_reg=False)

这里写图片描述

2.高斯混合模型

  高斯混合模型主要用于数据的聚类分析,他可以对无标签的数据进行分组。

from sklearn.mixture import GaussianMixture

model = GaussianMixture(n_components=3, covariance_type="full")
model.fit(X_iris)
y_gmm = model.prefict(X_iris)
iris["cluster"] = y_gmm
sns.lmplot("PCA1", "PCA2", data=iris, hue="species", col="cluster", fit_req=False)

这里写图片描述

3.Isomap
Isomap算法是流形学习算法中的一种。流形学习它对存在非线性关系的数据集的处理效果非常好,它是一种无监督评估器,它试图将一个低维度流形嵌入到一个高维度空间来描述数据集。

from sklearn.datasets import load_digits
from sklearn.manifold import Isomap

digits = load_digits()
digits.images.shape
# 可视化数据集
fig, axes = plt.subplots(10, 10, figsize=(8,8),
                subplot_kw={"xticks": [], "yticks": []},
                gridspec_kw=dict(hspace=0.1, wspace=0.1))
for i, ax in enumerate(axes.flat):
    ax.imshow(digits.images[i], cmap="binary", interpolation="nearest")
    ax.text(0.05, 0.05, str(digits.target[i]), transform=ax.transAxes, color="green")

这里写图片描述

iso = Isomap(n_components=2)
iso.fit(digits.data)
data_projected = iso.transform(digits.data)
data_projected.shape
plt.scatter(data_projected[:, 0], data_projected[:, 1], c=digits.target, edgecolors="none", alpha=0.5, cmap=plt.cm.get_cmap("spectral", 10))
plt.colorbar(label="digit label", ticks=range(10))
plt.clim(-0.5, 9.5)

这里写图片描述

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值