机器学习——特征选择(降维)PCA和MDA

实际的分类问题和回归问题中,都有可能遇到多达50个或100个(甚至更多)的特征问题。对于分类问题来说,特征若为二值变量,我们通常认为其中的任何一个特征对于实现正确的分类都有它自己的贡献。但是,有理由怀疑这些特征之间是否存在着相关性,即里面是否存在着某种信息的冗余。回归问题也同样存在特征冗余的情况。

本篇博客重点讨论回归问题中特征选择的情况。

一、成分分析

一种处理过多维数的方法是采用组合特征的方法来降维。对几个特征作线性组合是一种特别具有吸引力的方法,因为线性组合容易计算,并且能够进行解析分析。从本质上来说,线性方法是把高位的数据投影到低维空间中。有两种经典的寻找有效的线性变换的方法。

其一是主成分分析(principal component analysis,PCA),这一方法的目的是寻找在最小均方意义下最能代表原始数据的投影方法。另一种方法是多维缩放(Multi Dimensional Scaling,MDS),这一方法能够使原始空间中样本之间的距离在低维空间中得以保持。


1.1 主成分分析PCA

PCA方法参数n_components,如果设置为整数,则n_components=k。

如果将其设置为小数,则说明降维后的数据能保留的信息。

#PCA
from sklearn.decomposition import PCA
import pandas as pd

data = pd.read_csv('1.csv')

estimator = PCA(n_components=8)   # 初始化,压缩至8维(根据实际情况可变)

# 利用训练特征决定(fit)8个正交维度的方向,并转化(transform)原训练特征
pca_X_train = estimator.fit_transform(data)

#打印压缩后的数据集形状
print(pca_X_train.shape)

使用PCA降维之后的数据进行预测会损失一些预测的准确性,在降维过程中为了避免大量的噪声和冗余,也会损失一些有用的信息,但用降维后的数据进行模型的训练大大降低了模型训练的时间,也降低了模型训练的难度,对于高维数据来说是一个比较好的选择。

非线性降维常用方法,是基于核技巧对线性降维方法进行“核化”,例如核主成分分析(KPCA)。

你可能感兴趣的:(python,机器学习,机器学习,sklearn,回归,分类)