机器学习之特征工程

1.数据可视化探索分析

2.数据处理

3.特征工程---特征处理

4.特征工程---特征选择

一.数据探索分析 

      (该部分主要使用可视化工具可视化数据集,便于观测各个特征之间以及特征与标签之间的关系,有助于初步了解数据,掌  握数据趋势走向,以及为后期的特征工程服务)

工具:对数据进行探索性分析的工具包:pandas,matplotlib/seaborn

1.读取训练数据,取少量样本进行观测,并查看数据的规模和数据的类型。
--- 如使用data.head(),data.info(),data.describe()等,初步查看数据;
---查看标签,是回归问题还是分类问题;是多分类还是二分类;以便对于不同的类型
---特征的意义,特征的类型(有些特征是脱敏的,不能直观观测出意义),对于有些意义明确的特征,便于我们根据常识或者专业相关的知识去构建一些新的特征等。
2.分析每一维特征,分析每列特征的分布
----直方图(是否满足正态分布,噪声点是否多,统计各个标签的各特征上的样本数据量分布)
----包括标签列(对于分类问题,可以看出类别样本是否均衡)
----检测奇异点(噪声点)<通常使用 3-σ准则 ,箱线图法 等 链接如下: https://blog.csdn.net/pandacsu/article/details/71159463 直观上,通过直方图,或者散点图发现离散点 >
---------例子-------

          案例1如下图所示:

     

       (1)对每一维特征进行分析       

直方图:取某个特征在数据集上每个取值出现的次数,可视为概率函数(PDF)的估计(seaborn可视化工具比较简单)。如下,为对 price这一属性的可视化:
 – import seaborn as sns
 – %matplotlib inline  #( seaborn 是基于matplotlib 的)
 – sns.distplot(train.price.values, bins=50, kde=True) 
# 核密度估计:kde,对直方图的加窗平滑,对连续性数值,bins=50,看每个桶里出现过多少次,次数对应着纵轴,取值对应着很横轴


由图可知,价格在2000~4000,尤其3000左右的次数出现的最多)
(2)在分类任务中,我们关心不同类别的特征分布
  – order = ['low', 'medium', 'high']
  – sns.violinplot(x='interest_level', y='price', data=train, order = order)

(由上述,可以看出,红色的“小提琴”(感兴趣高的价格分布峰值在200左右),感兴趣低的(蓝色“小提琴”价格峰值分布在3000左右),由此可以大致得出,价格的高低会影响到感兴趣程度)

    (3)奇异点    

奇异点:或称离群点,指远离大多数样本的样本点。通常认为这些点是噪声,对模型有坏影响

• 可以通过 直方图散点图发现奇异点
– 直方图的尾巴
– 散点图上孤立的点
• 可以通过只保留某些分位数内的点去掉奇异点
 – 如0.5%-99.5%,或>99%
 -ulimit = np.percentile(train.price.values, 99)
 – train['price'].ix[train['price']>ulimit] = ulimit

3.分析每两列特征之间的相关性

        -----相关系数:两个随机变量x,y之间的线性相关程度(使用 corr()函数,只能分析数值型特征之间的关系)

        -----相关性可以通过计算相关系数或打印散点图来发现 (使用pandas.corr()能够得出特征与标签之间相关系数,或皮尔逊系数等;通过xgboost,lightgbm的feature_importance查看特征重要性)

-----我们需要找到与标签相关性强的特征,分类直方图可以从某种程度上看出特征与标签的相关性:不同类别的直方图差异大

-----查看特征与特征之间信息是否冗余,特征与特征之间强相关的话意味着信息冗余,可以两个特征可以只保留一个特征, 或采用主成分分析(PCA)等降维

----特征与标签是否线性相关

----- 不线性相关并不代表不相关,可能高阶相关,如
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值