目录
1、需要哪些数据?
2、数据如何存储?
3、数据清洗(数据预处理)
3.1 文本数据转换为数值型数据
3.2 缺省值填充
3.3 哑编码(onehotencoder要求数据类型是数值)
3.4 二值化
3.5 标准化
3.6 多项式拓展
4、特征选择
4.1 filter
4.1.1 方差选择法
4.1.2 相关系数法
4.1.3 卡方检验(要求特征属性非负)--只能用最大最小缩放(0,1)
4.2 wrapper
4.2.1递归特征消除法
4.3 embeded
4.3.1 基于惩罚项的特征选择
5、降维
5.1 PCA
5.2 LDA(线性判别)
1)业务分析:基于对业务规则的理解,尽可能多的找出对因变量影响较大的自变量数据
2)数据可用性评估:数据获取之前,先考虑获取成本;获取到数据之后,使用数据之前,考虑下这个数据是否覆盖了所有情况及数据的可信度。
样本不均衡:给样本赋予权重 (参数: class_weight 分类)
采样
1、一般情况下,对每个特征使用不同的阈值进行二值化操作,所以一般我们会拆分几个DataFrame进行二值化操作后,再进行合并。
2、一般情况下,我们对数据进行划分时,不是进行二值化,而是进行多值化(分区化/分桶化):即将一个连续的数据,按照不同的取值范围,分为不同的级别。比如:在一个模型中,根据人的收入判断工作年限,可能会得到因变量的因素其实是区间划分后的收入情况。那么这时候可以基于业务特征,将收入划分为收入等级,比如:1w: 0; 1w-2w: 1; 2w-3w: 2; 3w+ :3(不要对数据做哑码,因为这里的0 1 2 3有不同的等级)
标准化的目的:降低不同特征的不同范围的取值对于模型训练的影响
1)极模型;2)选择几个特征;3)每一次删除几个特征
4.3.2 基于树模型的特征选择
数据0中心化后, (X * X转置) /n 等于协方差矩阵。
矩阵分解 (特征值/奇异值分解+SVD+解齐次/非齐次线性方程组)
使用sklearn做单机特征工程