机器学习之 特征选择

来源:互联网 发布:三类人员网络继续教育 编辑:程序博客网 时间:2024/05/21 09:34

机器学习过程中,特征选择是避免维数灾难和减低学习难度的有效途径。特征选择的过程,即为选择对当前学习任务有用的属性(相关特征)和去除无用属性(冗余特征)的过程。那么,如何选择有用的特征子集以及如何评价相对好的特征子集是特征选择的关键步骤。

1、子集搜索

如果训练样本有n个特征,那么特征子集将有2n种可能性。子集搜索常用的方法有前向搜索方法和后向搜索方法。以下是前向搜索方法的算法:

Forward Search
Input:training set D,features set;
Output:features subset F
start with F=;
Repeat{
(1)for i=1,2,,n.Try adding feature i to F.
evaluate F{i};
(2)Set F=F{best feature found in (1) }
Output features subset.

以上搜索方式称为前向搜索,在(1)中evaluate的过程我们可以通过交叉验证的方式进行,也可以使用后面提到的子集评价方法直接选择。后向搜索指从完整的特征集开始,每次尝试去掉一个无关特征,以逐渐减少特征的策略进行特征搜索。

2、子集评价

我们通常通过信息增益,信息增益比和基尼指数等指标衡量特征对训练集分类的好坏程度。这里先介绍熵的概念。熵在信息论和统计学中度量随机变量的不确定性。设X是一个取有限个值的离散随机变量,其概率分布为

P(X=xi)=pi

其中i=1,2,,n.则随机变量X的熵定义为:
H(X)=i=1npilogpi

条件熵:设有随机变量(X,Y),其联合概率分布为

P(X=xi,Y=yi)=pij

其中i=1,2,,n;j=1,2,,m.条件熵H(Y|X)表示已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定条件下随机变量Y的条件熵定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
H(Y|X)=i=1npiH(Y|X=xi)

其中,pi=P(X=xi),i=1,2,,n.

信息增益:表示得知特征X的信息而使得Y的信息的不确定性减少的程度。特征A对训练数据集D的信息增益g(D,A)定义为集合D的经验熵H(D)与特征A给定条件下D的条件熵H(D|A)之差,即:

g(D,A)=H(D)H(D|A)

一般地,熵H(Y)与条件熵H(Y|X)之差称为互信息。

以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题,为避免这种情况,信息论中引入信息增益比对这一问题进行校正。

信息增益比:特征A对训练数据集D的信息增益比gR(D,A)定义为其信息增益g(D,A)与训练数据集D关于特征A的值的熵HA(D)之比,即:

gR(D,A)=g(D,A)HA(D)

其中HA(D)=ni=1|Di|Dlog2|Di|D,n是特征A取值的个数。

基尼指数:分类问题中,假设有K个类,样本点属于第k类的概率为pk,则概率分布的基尼指数定义为

Gini(p)=k=1Kpk1pk=1k=1Kp2k

3、特征选择方法

常用的特征选择方法有过滤式选择(filter)、包裹式选择(wrapper)以及嵌入式选择(embedding),可参见周志华老师的《机器学习》,以上内容我只是为了coding决策树所总结。

0 0
原创粉丝点击