文章目录
特征工程概述
特征工程(feature engineering)是将原始数据转换为更能代表预测模型的潜在问题的特征的过程。
特征工程的三个步骤
- 特征提取:从文字、图形、声音等其他非结构化数据中提取信息作为新的特征,
比如从淘宝商品的名称中提取出产品类别,颜色,是否网红产品等 - 特征创造:把现有特征进行组合或计算,得到新的特征
比如有一个特征速度v,和一个特征距离s,可以通过s/v运算创造一个新的特征时间t - 特征选择:从所有特征中选择出有意义的,对模型有用的,避免必须将所有特征导入模型的情况
特征选择之前的注意事项
和数据提供者开会!和数据提供者开会!和数据提供者开会!
一定要抓住提供数据的人,尤其是理解业务和数据含义的人,跟他们多了解一下数据。
技术是模型起飞的保障,但是对数据的理解是模型的基础。
正常情况下特征选择的第一步就是根据我们的目标,用业务常识来选择特征。
在某些特殊情况下,我们对数据完全不了解,不知道每一个特征的意义
这样的情况下我们就不能通过我们的常识来进行特征选择。
这种情况下,我们有4种特征选择方法:过滤法,嵌入法,包装法,和降维算法
方差过滤法
通过特征本身的方差来筛选特征,
一个特征的方差越小,表明,该特征的变化越不明显,
变化越不明显的特征对我们区分标签没有太大的作用所以应该消除这些特征
示例
数据下载
本次采用的数据集是kaggle上的digit-recognizer数据集,原始数据下载地址
快捷下载。
导入相关模块
from sklearn.feature_selection import VarianceThreshold # 方差过滤
from sklearn.model_selection import cross_val_score # 交叉检验
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier as KNN
import pandas as pd
import numpy as np
加载数据
file_name = "E://anaconda/machine-learning/test1/data/digit-recognizer/t