数据挖掘之特征选择

1、去掉取值变化小的特征。

如某个特征取值为0,1,在样本中存在95%的取值为1,那么这个特征的作用不大

2、单变量特征的选择。

Pearson相关系数:权衡的是变量之间的线性相关性。它要求两个变量的变化是单调的,如y1=x和y2=x^2,Pearson系数为0,但其实两者并不是独立的。取值方位为:[-1,1],且可表征更加丰富的关系。负数表示负相关,正数表示正相关,0表示独立

距离相关系数:可以克服Pearson相关系数的弱点,但其计算速度没有Pearson快

基于学习模型的特征排序:直接使用你要用的机器学习算法,针对每个独立的特征和响应变量建立预测模型。对于非线性的,多采用树的方法。树的深度越深,则容易产过拟合。有些机器学习模型本身就对特征进行打分的机制(属于Wrapper),如回归模型、SVM、决策树、随机森林等。

特征越独立,模型训练的结果也会越来越好。

3、线性模型和正则化

越是重要的特征在模型中对应的系数就越大,不重要的特征系数接近0.

正则化就是把额外的约束或惩罚项加到已有的模型(损失函数)上,以防止过拟合并提高泛化能力。即损失函数由原来的E(x,y)变为E(X,Y)+alpha||W||

L1正则化/Lasso:惩罚项系数是1次,由于正则项非零,则是的那些弱特征所对应的系数变成0,因此正则化往往会使学到的模型很稀疏,这个特点使得L1正则化成为一种很好的特征选择方法。

L2正抓/Ridge regression:惩罚项系数是2次方,它会使得系数的取值变得均匀。

随机森林:准确率高、鲁棒性好、易于使用。
这里特征得分实际上采用的是 Gini Importance 。使用基于不纯度的方法的时候,要记住:
1、这种方法存在 偏向 ,对具有更多类别的变量会更有利;
2、对于存在关联的多个特征,其中任意一个都可以作为指示器(优秀的特征),并且一旦某个特征被选择之后,其他特征的重要度就会急
剧下降,因为不纯度已经被选中的那个特征降下来了,其他的特征就很难再降低那么多不纯度了,这样一来,只有先被选中的那个特征重要度很高,其他的关联特征重要度往往较低。在理解数据时,这就会造成误解,导致错误的认为先被选中的特征是很重要的,而其余的特征是不重要的,但实际上这些特征对响应变量的作用确实非常接近的(这跟Lasso是很像的)。特征随机选择方法稍微缓解了这个问题,但总的来说并没有完全解决。

正则化的线性模型对于特征理解和特征选择来说是非常强大的工具。L1正则化能够生成稀疏的模型,对于选择特征子集来说非常有用;相比起L1正则化,L2正则化的表现更加稳定,由于有用的特征往往对应系数非零,因此L2正则化对于数据的理解来说很合适。由于响应变量和特征之间往往是非线性关系,可以采用basis expansion的方式将特征转换到一个更加合适的空间当中,在此基础上再考虑运用简单的线性模型。

随机森林是一种非常流行的特征选择方法,它易于使用,一般不需要feature engineering、调参等繁琐的步骤,并且很多工具包都提供了平均不纯度下降方法。它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。尽管如此,这种方法仍然非常值得在你的应用中试一试

时间: 2024-11-03 01:32:55

数据挖掘之特征选择的相关文章

Python数据挖掘—特征工程—特征选择

如何选择特征 根据是否发散及是否相关来选择 方差选择法 先计算各个特征的方差,根据阈值,选择方差大于阈值的特征 方差过滤使用到的是VarianceThreshold类,该类有个参数threshold,该值为最小方差的阈值,然后使用fit_transform进行特征值过滤 相关系数法 先计算各个特征对目标值的相关系数,选择更加相关的特征 递归特征消除法 使用一个基模型来进行多轮训练,经过多轮训练后,保留指定的特征数 通过estimator将基模型设置为线性模型(可以设置为其他类型),通过n_fea

数据挖掘之分类器信息分拣 --- 特征选择之互信息

对于事件A和事件B同时出现的,一种信息论的描述方法就是互信息,计算方式如下 其意义:由于事件A发生与事件B发生相关联而提供的信息量. 在处理分类问题提取特征的时候就可以用互信息来衡量某个特征和特定类别的相关性,如果信息量越大,那么特征和这个类别的相关性越大.反之也是成立的. 以搜狗实验室的语料为例.选取金融,IT产品,体育,娱乐,股票这五个类别,通过互信息来选取词来建立空间向量模型.在选取之前需要做的一件事是把那些只在一个类别里的出现过的而且频次非常低的词需要去除,因为这些词注定和某个的互信息会

阿里、腾讯、京东、微软,各家算法&数据挖掘岗位面经大起底!

阿里.腾讯.京东.微软,各家算法&数据挖掘岗位面经大起底! 2016-02-24 36大数据 36大数据 作者: 江少华 摘要: 从2015年8月到2015年10月,花了3个月时间找工作,先后通过内推参加了美团.阿里蚂蚁金服.京东.腾讯.今日头条.Growing IO.微软这7个公司的面试,同时参加了网易游戏.LinkedI In中国这2个公司的笔试,拿到比较优 … 从2015年8月到2015年10月,花了3个月时间找工作,先后通过内推参加了美团.阿里蚂蚁金服.京东.腾讯.今日头条.Growin

降维中的特征选择

在数据挖掘过程中,高维数据是非常棘手的研究对象.特别是在文本挖掘.图像处理和基因数据分析中,维度过高使很多学习器无法工作或效率降低,所以降维也是数据预处理过程的一项必要任务.降维大致有两大类别,一类是从原始维度中提取新的维度,例如主成分分析或因子分析,再或者是奇异值分解或是多维标度分析.另一类是从原始维度中选择一些子集,即称为特征选择(Feature Selection),或者叫作最佳子集选择.特征选择本质上继承了Occam's razor的思想,从一组特征中选出一些最有效的特征,使构造出来的模

结合Scikit-learn介绍几种常用的特征选择方法

作者:Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减少特征数量.降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的.通常情况下,我们经常不管三七二十一,选择一种自己最熟悉或者最方便的特征选择方法(往往目的是降维,而忽略了对特征和数据理解的目的).

干货:结合Scikit-learn介绍几种常用的特征选择方法

原文  http://dataunion.org/14072.html 主题 特征选择 scikit-learn 作者: Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减少特征数量.降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的.通常情况下,我

数据挖掘步骤

一.现在我主要讲解数据挖掘的基本规范流程 数据挖掘通常需要数据收集,数据集成,数据规约,数据清理,数据变换,数据挖掘实施过程,模式评估和知识表示 1.数据收集:根据所得的数据,抽象出数据的特征信息,将收集到的信息存入数据库.选择一种合适的数据存储和管理的数据仓库类型 2.数据集成:把不同来源,格式的数据进行分类 3.数据规约:当数据量和数据的值比较大的时候,我们可以用规约技术来得到数据集的规约表示,比如(数据值-数据平均值)/数据方差,这是数据就变小了很多但接近原数据的完整性,规约后数据挖掘的结

用 WEKA 进行数据挖掘 ——第一章:简介

1.简介数据挖掘.机器学习这些字眼,在一些人看来,是门槛很高的东西.诚然,如果做算法实现甚至算法优化,确实需要很多背景知识.但事实是,绝大多数数据挖掘工程师,不需要去做算法层面的东西.他们的精力,集中在特征提取,算法选择和参数调优上.那么,一个可以方便地提供这些功能的工具,便是十分必要的了.而weka,便是数据挖掘工具中的佼佼者.Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化的,基于JAVA环境下

数据挖掘系列(8)朴素贝叶斯分类算法原理与实践

隔了很久没有写数据挖掘系列的文章了,今天介绍一下朴素贝叶斯分类算法,讲一下基本原理,再以文本分类实践. 一个简单的例子 朴素贝叶斯算法是一个典型的统计学习方法,主要理论基础就是一个贝叶斯公式,贝叶斯公式的基本定义如下: 这个公式虽然看上去简单,但它却能总结历史,预知未来.公式的右边是总结历史,公式的左边是预知未来,如果把Y看出类别,X看出特征,P(Yk|X)就是在已知特征X的情况下求Yk类别的概率,而对P(Yk|X)的计算又全部转化到类别Yk的特征分布上来. 举个例子,大学的时候,某男生经常去图