You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
12.2 对匿名特征进行处理
首先来解决第一个问题:匿名特征。匿名特征是个很棘手的问题,因为我们并不知道特征的具体含义。所以,我们一般需要从这些特征的一些属性来分析。
我们可以尝试看看这些特征之间的协方差。协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
也就是说,当两个特征之间的协方差趋近于 0 时,那么这两个特征之间可能没有太多的相关性。可以通过以下代码计算特征之间的协方差,并以热力图的方式可视化出来。
# 导入seaborn
import seaborn as sns
sns.heatmap(transactions.corr())
从热力图可以看出,匿名特征与匿名特征之间的协方差几乎趋近于 0 。那这个时候可以大胆的猜测,这些匿名特征是原始特征经过 PCA 算法转换后的 28 个主成分。因为 PCA 算法计算后的数据有一个特性,就是协方差为 0 。
PCA 算法是一种无监督的降维算法,所谓的降维就是将原始数据的特征数量减少至你所指定的特征数量。即例如原始数据中有 108 个特征,但是现在只想保留其中比较重要且比较有用的 28 个特征。那么此时就可以使用 PCA 算法来对数据进行降维。
注意:PCA并不是从那 108 个特征中选择 28 个特征出来,而是经过了一系列的计算之后所产生的 28 个特征。
既然 V1 到 V28 这 28 个特征是对原始数据进行 PCA 算法处理之后的特征。所以就没太大的必要去对这些匿名特征进行特征工程了,因为这些特征已经足够独立了(没什么相关性)。