赞
踩
博主最近参加了几个kaggle比赛,发现做特征工程是其中很重要的一部分,而sklearn是做特征工程(做模型调算法)最常用也是最好用的工具没有之一,因此将自己的一些经验做一个总结分享给大家,希望对大家有所帮助
有这么一句话在业界广泛流传,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。那特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用。
特征工程主要分为三部分:
1. 数据预处理 对应的sklearn包:sklearn-Processing data
1. 特征选择 对应的sklearn包: sklearn-Feature selection
1. 降维 对应的sklearn包: sklearn-Dimensionality reduction
本文中使用sklearn中的IRIS(鸢尾花)数据集来对特征处理功能进行说明导入IRIS数据集的代码如下:
1 from sklearn.datasets import load_iris
2
3 #导入IRIS数据集
4 iris = load_iris()
5
6 #特征矩阵
7 iris.data
8
9 #目标向量
10 iris.target
通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题:
我们使用sklearn中的preproccessing库来进行数据预处理。
无量纲化使不同规格的数据转换到同一规格
将服从正态分布的特征值转换成标准正态分布,标准化需要计算特征的均值和标准差,公式表达为:
使用preproccessing库的StandardScaler类对数据进行标准化的代码如下:
1 from sklearn.preprocessing import StandardScaler
2
3 #标准化,返回值为标准化后的数据
4 StandardScaler().fit_transform(iris.data)
区间缩放法的思路有多种,常见的一种为利用两个最值进行缩放,公式表达为:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。