sklearn机器学习之降维算法(基础用法)

1.导入相应库

from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import pandas as pd
import numpy as np

2.准备数据集

iris = load_iris()
X = iris.data
y = iris.target
pd.DataFrame(X).head()

3.PCA降维

#设置降维后的维数为2
pca = PCA(n_components=2)
X_dr = pca.fit_transform(X)
X_dr

4.根据标签对降维后数据可视化

%matplotlib inline
#设置颜色
color = ['red', 'black', 'orange']
#依次画出不同种类的点
for i in [0, 1, 2]:
    plt.scatter(X_dr[y == i, 0], X_dr[y == i, 1], c=color[i], alpha=0.7, label=iris.target_names[i])
plt.savefig(r"C:\Users\86377\Desktop\1.png")
plt.legend()
plt.title("PCA of IRIS dataset")

最后绘制图像如下
在这里插入图片描述

5.查看降维后每一列的信息量(可解释性方差大小)

pca.explained_variance_

6.降维后每个新特征向量所占总信息量占原始数据信息量的百分比

pca.explained_variance_ratio_
#将百分比求和看总信息保留
pca.explained_variance_ratio_.sum()

7.累积可解释方差贡献率曲线

pca_line = PCA().fit(X)
plt.plot([1,2,3,4],np.cumsum(pca_line.explained_variance_ratio_))
plt.xticks([1,2,3,4]) #这是为了限制坐标轴显示为整数
plt.xlabel("number of components after dimension reduction")
plt.ylabel("cumulative explained variance ratio")
plt.savefig(r"C:\Users\86377\Desktop\2.png")
plt.show()

绘制图像如下:
在这里插入图片描述
我们可以看到图像的增幅越来越小,对可解释的方差贡献率越来越低。

8.最大似然估计自选超参数

pca_mle = PCA(n_components='mle').fit(X)
X_mle = pca_mle.transform(X)
pca_mle.explained_variance_ratio_.sum()

9.按信息量占比选超参数

pca_f = PCA(n_components=0.97, svd_solver='full')
X_f = pca_f.fit_transform(X)
pca_mle.explained_variance_ratio_.sum()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值