特征降维(2):特征选择中特征评估函数详解

t:代表特征,|C|:代表类别总数,ci 代表第i个类别

CF[i][j]:代表term class frequency,即表示在第j个类别的文档中出现了第i个term的文档数

DF[i]:代表term document frequency,即表示样本集中出现了该term的文档数

docsPerClass[i]:代表属于第i个类别的文档数

docs:代表训练文档总数

注意以上CF[i][j]、DF[i]、docsPersClass[i]的值都是文档数

  1. 信息增益

    P(ci)为文档集中出现类别ci的概率;P(t)为特征出现在文档集中的概率;P(ci |t)表示当t出现在文档集中,文档属于类ci的概率;表示当t不出现在文档集中时,文档属于类ci的概率。

    具体计算方式如下:

为了计算上的便利,当前特征t等价于第i个特征ti

  1. 互信息

    与信息增益不同的是,互信息是计算特征与某个类别的互信息,而信息增益是计算特征与所有类别的信息增益,在具体的应用当中,可以选取互信息的期望或则选取特征与某个类别互信息最大的那个值作为该特征的互信息的值。

    计算公式如下:

    其中P(t)为特征出现在文档集中的概率,P(t|c)表示类别c中,包含特征t的文档数。具体计算方式如下:

  2. 卡方统计量

在具体的应用当中,常选取特征与某个类别卡方统计量最大的那个值作为该特征的卡方统计量的值。

其中N为文档总数,A:文档集中出现特征t和属于类c的文档数;B:特征t出现而类c不出现的文档数;C:特征t不出现而类C出现的文档数;D:特征t和类c都不出现的文档数。具体计算公式如下:

4、期望交叉熵

?

?

?

????

时间: 2024-10-08 13:12:00

特征降维(2):特征选择中特征评估函数详解的相关文章

delphi中的Format函数详解

首先看它的声明:[[email protected]][@21ki!] function Format(const Format: string; const Args: array of const): string; overload;[[email protected]][@21ki!] 事实上Format方法有两种形式,另外一种是三个参数的,主要区别在于它是线程安全的,[[email protected]][@21ki!]但并不多用,所以这里只对第一个介绍:[[email protect

Mysql中关于 group_concat函数详解

group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 Sql代码   select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+---

Python中的getattr()函数详解:

Python中的getattr()函数详解: getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y. When a default argument is given, it is returned when the attribute doesn't exist; without it, an exception i

Oracle中的substr()函数 详解及应用

注:本文来源于<Oracle中的substr()函数 详解及应用> 1)substr函数格式   (俗称:字符截取函数) 格式1: substr(string string, int a, int b); 格式2:substr(string string, int a) ; 解释: 格式1:        1.string 需要截取的字符串         2.a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)        3.b 要截取的字符串的长度 格式2:     

opencv之adaboost中的cvCreateMTStumpClassifier函数详解~

cvCreateMTStumpClassifier函数出自opencv中的haartraining程序,在adaboost(cvCreateTreeCascadeClassifier)的强分类器(icvCreateCARTStageClassifier)中被两次调用,该函数用于寻找最优弱分类器,或者说成计算最优haar特征.功能很明确,但是大家都知道的,opencv的代码绝大部分写的让人真心看不懂,这个函数算是haartraining中比较难以看懂的函数,局部变量达到20个之多,童鞋我也是不甘心

linux内核中的hook函数详解

在编写linux内核中的网络模块时,用到了钩子函数也就是hook函数.现在来看看linux是如何实现hook函数的.     先介绍一个结构体: struct nf_hook_ops,这个结构体是实现钩子函数必须要用到的结构体,其实际的定义为: 其中的成员信息为: hook  :是一个函数指针,可以将自定义的函数赋值给它,来实现当有数据包到达是调用你自定义的函数.自定义函数的返回值为: owner:是模块的所有者,一般owner = THIS_MODULE ;     pf   :是protoc

SQL中的ISNULL函数详解及用途

SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助 ISNULL 使用指定的替换值替换 NULL. 语法 ISNULL ( check_expression , replacement_value ) 参数 check_expression 将被检查是否为 NULL的表达式.check_expression 可以是任何类型的. replacement_value 在 check_expression 为 NU

pandas中的isin函数详解

原文链接:http://www.datastudy.cc/to/69 今天有个同学问到,not in 的逻辑,想用 SQL 的select c_xxx_s from t1 left join t2 on t1.key=t2.key where t2.key is NULL 在 Python 中的逻辑来实现,实现了 left join 了(直接用join方法),但是不知道怎么实现where key is NULL. 其实,实现not in的逻辑,不用那么复杂,直接用isin函数再取反即可,下面就是

oracle中的trim()函数详解

1.先看一下Oracle TRIM函数的完整语法描述 TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character}FROM]trim_source) 以上语法引自于Oracle 10gR2官方文档:http://download.oracle.com/docs/ ... 0/img_text/trim.htm单从这个语法定义上我们就可以看出,小小的Oracle TRIM函数蕴含了更多可定制的功能.一一展示,供参

Python3中的super()函数详解

关于Python3中的super()函数 我们都知道,在Python3中子类在继承父类的时候,当子类中的方法与父类中的方法重名时,子类中的方法会覆盖父类中的方法, 那么,如果我们想实现同时调用父类和子类中的同名方法,就需要使用到super()这个函数,用法为super().函数名() 下面是一个例子: class A1(): def go(self): print("go A1 go") class A2(): def go(self): print("go A2 go&qu