特征工程-特征处理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lm709409753/article/details/102721065

1 特征工程

    特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。过程包含了特征提取、特征构建、特征选择等模块。

    特征工程的目的是筛选出更好的特征,获取更好的训练数据。因为好的特征具有更强的灵活性,可以用简单的模型做训练,更可以得到优秀的结果。“工欲善其事,必先利其器”,特征工程可以理解为利其器的过程。

数据采集、数据清洗、数据采样

数据采集:收集原始数据的过程。我们要知道那些数据对最后我们的目标有影响。

数据清洗:我们可以把算法理解为工厂中加工商品的机器,以后生产的产品如何,跟原材料的好坏是密不可分的。数据清洗会花掉很多时间,这期间会让我们更加理解业务场景。数据清洗要把不可信的样本要去掉,缺失值比较多的样本也要去掉。

数据采样:在很多场景下正负样本都是不均匀的。很多模型对正负样本又比较敏感,比如LR。

(1)当正样本 >> 负样本的时候,同时数据量都比较大,正样本做下采样。

(2)当正样本 >> 负样本的时候,量不是很大的时候,负样本可以重采样。

数据预处理、常见特征处理方法

数据预处理:

我们这里使用python语言,使用pandas。在进行数据特征处理前,我们可以使用pandas了解数据的大体情况。

* head()

* info()

* describe() 这个会统计数值类型的情况

了解数据的大体信息最后,我们可以做一些数据预处理,比如缺失值补全。

(1)使用pandas的fillna

train.loc[:,'Age'] = train['Age'].fillna(value=train['Age'].mean())

(2) 使用sklearn中的Imputer

特征处理

数值型:

(1)幅度调整/归一化

(2)统计值max ,min,mean,std

最大最小值

分位数

 (3)   Log等值变化

(4)离散化

等距切分

等频切分

(5)高次与四则运算的特征

高次特征

(6)数值型转化为类别行

类别型:

(1)one-hot编码/哑变量

(2)hash值、聚类处理,比如分桶处理

(3)统计类别比例,转换为数值类型

时间型:

时间类型既可以看作连续的、也可以作为分散的。

离散:

比如昨天是一周中的那一天,在一年的那一个周,那个月份。

连续:

比如浏览商品的时长,抖音视频观看的时长或者时间间隔。

文本类型:

这个涉及到一些NLP的知识。文本处理一般先分词,去掉停用词语。

可以使用词袋模型、TF-IDF、word2vec(CBOW和Skip-gram)

词袋模型:

TF-IDF

统计类型:

(1)分位线

(2)次序型,比如商品的等级

(3)比列型,比如这一个商品,好评率是多少。

其它类型:

根据业务场景,设计的一些生成特征的方法。

(1)组合特征,比如特征的拼接。

(2)模型特征组合,比如可以使用数模型产出特征组合

欢迎关注个人微信公众号,主要是工作中涉及的知识内容,包含机器学习、深度学习、机器学习平台。不定时分享一些东西,欢迎大家一起谈论。

猜你喜欢

转载自blog.csdn.net/lm709409753/article/details/102721065