冗余的特征虽然不会影响到模型的性能,不过却使得CPU的计算做了无用功。比如,主成分分析主要作用于去除多余的那些线性相关的特征组合,原因在于这些冗余的特征组合并不会对模型训练有更多贡献。
特征筛选与PCA这类通过选择主成分对特征进行重建方法略有区别:对于PCA而言,我们经常无法解释重建后的特征;但是特征筛选不存在对特征值的修改,而更加侧重于寻找那些对模型的性能提升较大的少量特征。
#泰坦尼克号沉船事故
#泰坦尼克号乘客数据查验
import pandas as pd #导入pandas用于数据分析
titanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')
#titanic.head() #观察前几行数据
#titanic.info() #查看数据的统计特征
#特征选取,机器学习很重要的一个环节
y = titanic['survived']
X = titanic.drop(['row.names','name','survived'], axis = 1)
#对缺失值数据进行填充
X['age'].fillna(X['age'].mean(), inplace = True)
X.fillna('UNKNOWN', inplace = True)
#数据分割
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.25, random_state =