ML机器学习-PAC降维-应对【高维数据灾难】【案例】

为什么要降维?

原因

高维机器学习具有大量的特征(变量),这些对机器学习计算有一定的障碍,但是其中的一些特征(变量)可能存在一定的相关性,在保证不损失太多的信息条件下,将特征处理为一组新的变量,达到降低为原始数据的维度。

主成分分析PAC

主成分分析(PAC)在处理降维是应用最为广泛。

思想

大量相关变量组成的数据集的维数,同时尽可能保持数据集的方差

找到一组新的变量,原来的变量只是它们的线性组合
新的变量称为主成分(Principal Component)
在这里插入图片描述
理解原理:传送门
下面使用鸢尾花的内置数据集来展开PCA示例

import pandas as pd
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
df = pd.read_csv(url, names=['sepal length','sepal width','petal length','petal width','target'])
print(df.head())

数据大概长这样

这里是引用

第一步:标准化

这里用到了sklearn模块的StandardScaler方法

from sklearn.preprocessing import StandardScaler
variables = ['sepal length','sepal width','petal length','petal width']
x = df.loc[:, variables].values
y = df.loc[:,['target']].values
x = StandardScaler().fit_transform(x) 
x = pd.DataFrame(x)
print(x)

标准化后长这样

这里是引用

第二步:PCA

from sklearn.decomposition import PCA
pca = PCA()
x_pca = pca.fit_transform(x)
x_pca = pd.DataFrame(x_pca)
x_pca.head()

结果成了这样

这里是引用
原始数据集中有四个特征。所以PCA会提供相同数量的主成分
我们利用pca.explained_variance_ratio_来获取,每一个主成分提取的信息占比

第三步:计算主成分(方差贡献)

explained_variance = pca.explained_variance_ratio_
print(explained_variance)
# 返回一个向量
[0.72770452 0.23030523 0.03683832 0.00515193]

解释:它显示第一个主成分占72.22%的方差,第二,第三和第四个占23.9%,3.68%和0.51%的方差。我们可以说第一和第二主成分捕获了72.22 + 23.9 = 96.21%的信息。我们经常希望只保留重要的特征并删除无关紧要的特征。经验法则是,保留能捕获显著方差的主成分,忽略较小的方差。

第四步:合并成新数据

x_pca[‘target’]=y
x_pca.columns = [‘PC1’,’PC2',’PC3',’PC4',’target’]
x_pca.head()

展示

在这里插入图片描述

第五步:结果可视化

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1,1,1) 
ax.set_xlabel(‘Principal Component 1) 
ax.set_ylabel(‘Principal Component 2) 
ax.set_title(2 component PCA’) 
targets = [‘Iris-setosa’, ‘Iris-versicolor’, ‘Iris-virginica’]
colors = [‘r’, ‘g’, ‘b’]
for target, color in zip(targets,colors):
 indicesToKeep = x_pca[‘target’] == target
 ax.scatter(x_pca.loc[indicesToKeep, ‘PC1’]
 , x_pca.loc[indicesToKeep, ‘PC2’]
 , c = color
 , s = 50)
ax.legend(targets)
ax.grid()

在这里插入图片描述
惊奇的发现,主成分12,在空间上是可以分的。

Kernel PAC

总的来说,PAC是基于线性变换,而KPAC,是基于非线性变换的结果,用于处理线性不可分的数据集。

KPCA的大致思路是:对于输入空间(Input space)中的矩阵 [公式] ,我们先用一个非线性映射把 [公式] 中的所有样本映射到一个高维甚至是无穷维的空间(称为特征空间,Feature space),(使其线性可分),然后在这个高维空间进行PCA降维。
在这里插入图片描述
原理解析参考
传送门

线性判别分析-LDA

提示:这里统计学习计划的总量
例如:
1、 技术笔记 2 遍
2、CSDN 技术博客 3 篇
3、 学习的 vlog 视频 1 个

奇异值分解-SVD

t-SNE

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wency(王斯-CUEB)

我不是要饭的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值