机器学习——降维

主成分分析(PCA)

1.主成分分析法是降维的最常使用的算法。
2.在PCA中,要做的是找到一个方向向量(Vector direction),当把所有的数据都投射到该向量上时,希望投射距离均方差能尽可能地小。
3.方向向量是一个经过原点的向量,而投射误差是从特征向量向该方向向量作垂线的长度。
4.主成分分析最小化的是投射距离误差(Projected Error)。

主成分分析问题

1.PCA将n个特征降维到k个,可用来进行数据压缩。
(1).如果100维的向量最后可以用10维来表示,那么压缩率为90%。
(2).同样图像处理领域的KL变换使用PCA 做图像压缩。
(3).但PCA 要保证降维后,还要保证数据的特性损失最小。
2.PCA 技术的一大好处是对数据进行降维的处理。
(1).对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。
(2).同时最大程度的保持了原有数据的信息。
这里要注意线性回归的误差是预测值向x轴作垂线,主成分分析是预测值向模型作垂线
在这里插入图片描述

奇异值分解(SVD)

1.计算协方差矩阵A:
A = Sigma ∑ = 1 n X ′ X ′ T \sum = \frac{1}{n}X'X'^T =n1XXT
在这里插入图片描述
(1) 当 X, Y 的联合分布像上图那样时,大致上有: X 越大 Y 也越大, X 越小 Y 也越小,这种情况,称为“正相关”。
在这里插入图片描述
(2) 当 X, Y 的联合分布像上图那样时,大致上有: X 越大 Y 越小, X 越小 Y 也越小,这种情况,称为“负相关”。
在这里插入图片描述
(3) 当 X, Y 的联合分布像上图那样时,大致上有:既不是X 越大Y 也越大,也不是 X 越大 Y 也越小,这种情况,称为“不相关”。

2.计算协方差矩阵A的特征向量矩阵U
要满足AU = US
A :协方差矩阵
S :特征值矩阵
U :特征向量矩阵

数据降维与重建

1.如果希望将数据从n维降至k维,只需要从U中选取前K个向量,获得一个n×k维度的矩阵,我们用Ureduce表示。
2.然后通过如下计算获得要求的新特征数据集Z:Z = XUreduce

应用PCA的建议

1.压缩
减少内存及磁盘的数据需求
加速学习算法

2.可视化

3.注意PCA不是处理过拟合的一个好方法,处理过拟合应使用正则化代替

代码实现

import matplotlib.pyplot as plt
# 降维
from sklearn.decomposition import PCA
from sklearn.datasets import load_breast_cancer

# 读取数据(调用乳腺癌数据集)
data = load_breast_cancer()
x = data.data
y = data.target
print(y)

# 加一个降维后的维度
pca = PCA(n_components=2)

# 训练模型并返回一个降维后的模型
X_new = pca.fit_transform(x)

# 画图
plt.title('癌症数据集分布')
plt.scatter(X_new[y == 0, 0], X_new[y == 0, 1],label=data.target_names[1])
plt.scatter(X_new[y == 1, 0], X_new[y == 1, 1],label=data.target_names[0])
plt.legend()
plt.show()

效果展示

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值