机器学习数据预处理:数据降维之PCA

请点击上面公众号,免费订阅。 

《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!



01

回顾

到现在,已经总结了机器学习的:

  1. 回归算法之最小二乘方,脊回归,套索回归;

  2. 分类算法之逻辑回归,决策树分类,朴素贝叶斯决策,半朴素贝叶斯决策

  3. 聚类算法之高斯混合模型,解决这个模型选择了期望最大算法(EM算法)

  4. 介绍的以上算法都带有详细的原理介绍,例子阐述,代码实现(大部分都是自己编写不掉sklearn的包)


体会了机器学习的基本回归,分类,聚类到底是怎么回事后,该到了分析喂给这些算法的数据了,我们在之前介绍这些算法时,往往用到的数据都是已经预处理过的,比如做了归一化处理,做了降维处理等等。数据预处理做的好与坏,对我们最终问题的求解也是至关重要的,因此也是机器学习学习中的重要一个环节。


废话少说,下面介绍一个数据预处理常用的方法:数据主成分分析,简称PCA。



02

数据主成分分析的背景

现实中,我们要研究某个问题,比如预测一只股票的价格时,我们不想忽略每一个可能的影响因素,所以初步划定了100个影响股票价格的特征,再分析最近五年的这只股票的价格数据。这样多维度,大样本,会为预测股票的价格增加更多的筹码。


但是,这么多的维度一来给分析带来不便,二来某些维度可能存在相关性,从而增加了问题分析的复杂性。


为了解决这个问题,想到以下几种办法:

  1. 分别对每个指标进行分析。但是这种分析是孤立的,不能看到全貌。

  2. 减少维度。但是如果是盲目的减少,会损失很多有用的信息,进而产生错误的结论。

  3. 抓住主要成分。既避免了方法1的孤立分析,也解决了方法2的损失有用信息的问题,可以说它是最好的,这就是PCA做的事情。



03

什么是数据的主成分

要做主成分分析(PCA分析),首先要弄明白什么是主成分吧,什么又不算是主成分,即次要成分。

为了说明什么是数据的主成分,我们看下面的这个表格,它是某校高一101班期中考试三门主科的考试成绩单,显示了前3位学生的分数,可以看到语文都是110分,数学和外语三位同学的考试分数差距比较大。现在要根据这三门课程对这三位同学排名次,显然影响名次的特征有3个,那么这3个特征中哪些是主要影响排名的特征,哪些不是主要影响排名的特征呢?


我们几乎一眼就能看出,语文不是影响排名的主要特征,因为他们考得一样多,所以语文分数这个特征对最终排名的影响可以忽略;可以看出数学和外语分数才是拉开差距的特征。


因此,数学和外语分数,这两个特征,便构成了影响排名的主要成分,而另外一个特征:语文分数,是可以忽略掉的成分。


为了最直观的说明什么是数据的主成分,我们列举了这个有些极端的例子,因为3位同学的语文成绩是一样的,所以是可以忽略掉这个特征的。但是实际上后面几十位同学的语文成绩的差距还是有一些的,所以还是要考虑一下语文成绩。


在这里说到了一个概念:差距,如何定义这个差距变量,其实它就是数据的方差,可以看到这3位同学的语文成绩平均值为110分,方差为0,我们说这个特征可以忽略,相对的,数学和外语能拉开差距,不是因为平均值高或低,而是因为差距即方差大,成绩分布的相对散开,所以选取数学和外语作为主成分、主特征。




04

如何选择主成分

承上,我们先从一个很容易理解例子开始,阐述了主成分选取的一个考量指标:某个特征的方差,方差越大,我们越会倾向于这个特征;相对的,方差越小越不可能趋向它。


但是,这种理解有一点偏差,好像根据这个例子给我们一种感觉:主成分分析是一种简单的从 n 个特征中,根据特征的方差从大到小选择 k 个特征的过程。这样理解是不准确的,其实PCA分析后选择的 k 个特征很可能不是原来的 n 个特征中的几个。


那么到底如何确定最终的几个特征呢? 根据以上的分析,主要还是得从特征的方差下手,经过数据去均值,得到数据的协方差矩阵(方差和两两特征间的相关系数),选取特征向量,和数据投影到特征向量矩阵中。如何通俗易懂但不失严谨性地理解PCA操作的过程,请看明天的推送。谢谢您的阅读!



请记住:每天一小步,日积月累一大步!


《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 机器学习中的数据预处理是指对原始数据进行清洗、转换和归一化等处理,以便让数据更加适合进行机器学习算法的训练和预测。数据预处理通常包括以下几个步骤: 1. 数据清洗:去除重复值、缺失值、异常值和不一致的数据,保证数据的完整性和准确性。 2. 数据转换:将非数值型数据转换为数值型数据,例如将文本数据进行编码,将类别型数据进行独热编码等。 3. 特征选择:选择与目标变量相关性高的特征,减少特征空间的维度,提高模型的泛化能力。 4. 特征缩放:对特征进行归一化或标准化,以便不同特征之间的权重更加平衡。 5. 数据集划分:将数据集划分为训练集、验证集和测试集,以便进行模型的训练、调参和评估。 机器学习中的数据预处理对于机器学习算法的性能和效果具有重要的影响,因此需要仔细进行处理。 ### 回答2: 机器学习中的数据预处理是为了提高模型的准确性和效果,通常包括以下几个步骤: 1. 数据清洗:对原始数据进行清洗,包括处理缺失值、异常值和重复值等。缺失值可以用插值法填充,异常值可以通过统计方法或者处理方法剔除或替换,并且去除重复值。 2. 特征选择:对原始数据中的多个特征进行选择,选取对目标变量影响最大的特征。这可以通过统计方法(如方差分析、协方差矩阵分析)或机器学习算法(如正则化方法、决策树)来进行。 3. 特征缩放:将不同特征的数值范围进行缩放,以便它们具有相似的数值范围。这可以通过标准化(减去均值,除以标准差)或归一化(将值缩放到0-1之间)来实现。 4. 特征变换:将原始特征进行变换,以便它们能提供更多的信息。常见的特征变换方法包括多项式扩展、指数变换、对数变换等。 5. 特征编码:将非数值型特征转化成数值型特征,以便机器学习算法能够处理。常用的编码方法包括独热编码、标签编码等。 6. 数据划分:将数据集划分成训练集、验证集和测试集,用于模型的训练、调参和评估。 7. 数据平衡:对于不平衡的数据集,可以采取欠采样、过采样或生成合成样本的方法来平衡数据。 以上是机器学习中常见的数据预处理步骤,不同的问题和数据集可能需要采取不同的预处理方法。数据预处理机器学习中不可忽视的一环,能够对模型的性能和效果产生重要影响。 ### 回答3: 机器学习中的数据预处理是指将原始数据进行清洗、转换和集成等操作,以便为后续的模型训练提供更好的数据输入。下面是机器学习中常见的数据预处理步骤: 1. 数据清洗:对原始数据进行缺失值处理和异常值处理。缺失值处理可以选择删除有缺失值的样本或者使用插值等方法填充缺失值;异常值处理可以通过标准差等统计方法检测异常值,并根据业务背景进行处理。 2. 特征选择:选择对模型有重要影响的特征,去除冗余或者不相关的特征。可以通过相关性分析、特征重要性评估等方法进行特征选择。 3. 特征转换:对原始特征进行转换,以便更好地满足模型的需求。常见的特征转换方法包括标准化、归一化、离散化、多项式转换等。 4. 数据集成:将多个数据源中的数据进行合并,以便为模型提供更丰富的信息。数据集成需要处理数据的一致性和冗余问题。 5. 数据降维:对高维数据进行降维,以减少特征数量,提高模型效率。常用的降维方法包括主成分分析(PCA)、线性判别分析(LDA)等。 6. 数据划分:将原始数据集划分为训练集、验证集和测试集。训练集用于模型的训练,验证集用于模型的调参和性能评估,测试集用于模型的最后评估。 通过以上的数据预处理步骤,可以为机器学习模型提供干净、合适的数据输入,提高模型的泛化能力和性能,从而更好地进行模型训练和预测。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值