python特征选择(一款非常棒的特征选择工具:feature-selector)

前言

       FeatureSelector是用于降低机器学习数据集的维数的工具。

       文章介绍地址
       项目地址

       本篇主要介绍一个基础的特征选择工具feature-selector,feature-selector是由Feature Labs的一名数据科学家williamkoehrsen写的特征选择库。feature-selector主要对以下类型的特征进行选择:

       1.具有高missing-values百分比的特征
       2.具有高相关性的特征
       3.对模型预测结果无贡献的特征(即zero importance)
       4.对模型预测结果只有很小贡献的特征(即low importance)
       5.具有单个值的特征(即数据集中该特征取值的集合只有一个元素)

       从上面可以看出feature-selector确实是非常基础的特征选择工具,正因为非常的基础,所以才非常的常用(这也是为什么williamkoehrsen要写这个特征选择库的原因),在拿到一个数据集的时候,往往都需要将上述类型的特征从数据集中剔除掉。针对上面五种类型的特征,feature-selector分别提供以下五个函数来对此处理:

       1.identify_missing()
       2.identify_collinear(
)
       3.identify_zero_importance()
       4.identify_low_importance(
)
       5.identify_single_unique(*)

1.数据集选择

       在这里使用自己的训练数据集。文章末尾附上链接。数据集采样代码如下:

import pandas as pd
import numpy as np
data = pd.read_csv('base_train_sum.csv')
data

在这里插入图片描述

2.feature-selector用法

       导入数据并创建feaure-selector实例
注意:
       作者并没有把feature-selector发布到pypi上,所以不能使用pip和conda进行安装,只能手动从github下载下来,然后把feature_selector.py文件放到当前工作目录,然后再进行import操作。

# feature-selector用法

# 导入数据并创建feaure-selector实例
import pandas as pd
from feature_selector import FeatureSelector
# 数据集中TARGET字段为对应样本的label
train_labels = data.flag
# 获取all features
train_features = data.drop(columns='flag')
# 创建 feature-selector 实例,并传入features 和labels
# fs = FeatureSelector(data = train_features,lables = train_labels)
fs = FeatureSelector(data = train_features, labels = train_labels)

3.具有高missing-values百分比的特征

       该方法用于选择出missing value 百分比大于60%的特征用于选择missing value 百分比大于指定值(通过missing_threshold指定百分比)的feature。该方法能应用于监督学习和非监督学习的特征选择。

fs.identify_missing(missing_threshold=0.6)
# 查看选择出的特征
# fs.ops['missing']
missing_features = fs.ops['missing']
print(missing_features[:10])
# 绘制所有特征missing value百分比的直方图
fs.plot_missing()

在这里插入图片描述
       说明咋没有属性缺失值达到 60%以上
       该方法内部使用pandas 统计数据集中所有feature的missing value 的百分比,然后选择出百分比大于阈值的特征,详见feature-selector.py的114-136行。
https://github.com/WillKoehrsen/feature-selector/blob/master/feature_selector/feature_selector.py#L114-L136

For detailed information on the missing fractions, we can access the missing_stats attribute, a dataframe of the missing fractions for all features.

fs.missing_stats.head(10)

在这里插入图片描述

4.具有高相关性的特征

       该方法用于选择相关性大于指定值(通过correlation_threshold指定值)的feature。该方法同样适用于监督学习和非监督学习。


                
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值