特征工程分析常见方法

1 概述

特征工程是一个超集,它包括特征提取、特征构建和特征选择这三个子模块。在实践当中,每一个子模块都非常重要,忽略不得。根据答主的经验,他将这三个子模块的重要性进行了一个排名,即:特征构建>特征提取>特征选择。特征工程就是一个把原始数据转变成特征的过程,这些特征可以很好的描述这些数据,并且利用它们建立的模型在未知数据上的表现性能可以达到最优(或者接近最佳性能),我认为这是在机器学习模型训练中非常关键,重要性:

1.好特征的灵活性在于它允许你选择不复杂的模型,同时运行速度也更快,也更容易理解和维护;

2.有了好的特征,即便你的参数不是最优的,你的模型性能也能仍然会表现的很nice,所以你就不需要花太多的时间去寻找最有参数,这大大的降低了模型的复杂度,使模型趋于简单


2 特征工程处理过程

1.(Task before here)

2.选择数据(Select Data): 整合数据,将数据规范化成一个数据集,收集起来.

3.数据预处理(Preprocess Data): 数据格式化,数据清理,采样等.

4.数据转换(Transform Data):这个阶段做特征工程.

5.数据建模(Model Data): 建立模型,评估模型并逐步优化.

(Tasks after here…)


我认为比较好的一些方法:

预处理

1.缺失值处理,对于一些重要的特征数据,缺失值的填充,起到很关键的作用,在本次天池大数据竞赛中,对于使用寿命缺失值填充,我选择随机森林预测的方法,对预测结果起到了很好的作用。代码如下:

随机森林预测缺失值

同时值得注意的是,以下是一种很好的可视化缺失值的方法

import missingno as msno

data.bodyType.fillna(data.bodyType.median(),inplace=True)

p=msno.bar(data)

plt.show()


特征可视化方法:

f = pd.melt(Train_data, value_vars=numeric_features)

g = sns.FacetGrid(f, col="variable",  col_wrap=2, sharex=False, sharey=False)

g = g.map(sns.distplot, "value")


你可能感兴趣的:(特征工程分析常见方法)