APP下载

基于信息熵的类别变量的数值化方法

2018-01-08余芳曹布阳

电脑知识与技术 2017年36期
关键词:支持向量机信息熵

余芳 曹布阳

摘要:无论是学术上还是工程实践中,数据预处理是整个数据挖掘中最基础也是最费时的一个环节,其中数据类型的转换也是重要一环。聚类算法中,旨在将数据集划分为有意义的簇,簇内高内聚,簇间低耦合,往往是抽象为样本之间的距离来聚类,因此许多聚类算法都要求样本集中变量必须是数值型;分类算法中,虽然随机森林、神经网络等算法对变量类型的要求并不严苛,但是在经典的逻辑回归算法中,仍需要对数据进行数值化的预处理。该文介绍了一种基于信息论,对样本变量中类别型变量(categorical variables)进行数值化处理的方法,分别在逻辑回归和支持向量机两种机器学习算法中,进行了几组实验,对比实验结果,发现此方法在性能上、应用上都很有优势。

关键词:信息熵;虚拟变量;逻辑回归;支持向量机

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)36-0193-03

近年来,随着机器学习和人工智能的发展,大数据在各领域都取得了很多成绩。通常,原始数据必须加以处理才能适合于分析。原始数据集中往往既有连续型变量(continuous variables),又包含类别变量。此时,通常要对数据进行数值化处理。

当前,常用是使用虚拟变量(dummy variables)来处理这类问题。虚拟变量经常取值为0,1,-1,但这些取值并不代表数量的大小,仅仅表示不同的类别[1]。虽然引入虚拟变量对问题描述更简明,但是会使模型变得更复杂。而且如果数据集中这种类别变量过多或是变量的分类过多,这就会造成方程中有一大堆变量,造成所拟合模型的精度大大下降,实际上,有时候基于虚拟变量所构建的模型并没有多大意义。所以当数据集量级较小时,虚拟变量的效果很好,但是当数据集较大时,虚拟变量的效果并不总是很好。

另外,受到信用评分卡建模的启发,在二分类问题中,经常先对类别变量进行WOE编码[2]。但是WOE编码仅适用于二分类问题,多分类问题并不适用。

本文介绍了一种基于信息熵[3]的数值化方法,不但可以建立分类变量与数值的一一对应,而且适用于多分类问题,在实验和实际应用中,表现都很好。

1 分类变量的数值化方法

1.1 虚拟变量

在多重回归和逻辑回归模型中,通常将分类变量数值化的方法是虚拟变量化。引入虚拟变量,可以将不能够定量处理的变量数值化,如职业、性别对收入的影响,战争、自然灾害对GDP的影响等。

虚拟变量经常取值为0,-1,1,但这些取值并不代表数量的大小,仅仅表示不同的类别。定义虚拟变量时,如果变量有k个类别,需定义k-1个虚拟变量来表示这些类别。对于一个有k个类别的变量,即在此分类变量上,有k种取值,此时,引入k-1个虚拟变量[X1,X2,…,Xk-1],取值如下:

只引入n-1个变量而不是n个变量是由分类变量的“穷举”和“互斥”原则决定的。知道任意n-1个变量的值就一定可以推出第n个变量的值,而且这样做降低了模型的共线性。上表中,第一行数值表示,样本在此变量上的取值为[X1],第二行数值表示,样本在此变量上的取值为[X2],以此类推。

1.2 WOE编码

WOE编码的原理:WOE的全称是“Weight of Evidence”,即证据权重。WOE是对原始自变量的一种编码形式,在信用评分卡建模中首次被使用,后来经常用于二分类建模中。

要对一个变量进行WOE编码,首先需要把这个变量进行分组处理(也叫离散化、分箱等)。分组后,对于第i组,WOE的计算公式如下:

[WOEi=lnpyipni=ln (#yi/#yT#ni/#nT)=ln (#yi/#ni#yT/#nT)]

其中,[pyi]是这个组中响应客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者说1的个体)占所有样本中所有响应客户的比例,[pni]是这个组中未响应客户占样本中所有未响应客户的比例,[#yi]是这个组中响应客户的数量,[#ni]是这个组中未响应客户的数量,[#yT]是样本中所有响应客户的数量,[#nT]是样本中所有未响应客户的数量。

但是WOE在多分类时,不能直接求解,要用one to all 或one to one的方法,组合求解。

1.3 基于信息熵的分类变量数值化方法介绍

1.3.1 信息论简述

人们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。直到1948年,香农提出了“信息熵”的概念,才解决了对信息的量化度量问题。信息熵这个词是C.E.香农从热力学中借用过来的。热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。

通常,一個信源发送出什么符号是不确定的,衡量它可以根据其出现的概率来度量。概率大,出现机会多,不确定性小;反之就大。

不确定性函数f是概率P的单调递降函数;两个独立符号所产生的不确定性应等于各自不确定性之和,即[fP1,P2=f(P1)+f(P2)],这称为可加性。同时满足这两个条件的函数f是对数函数,即

1.3.2 数值化方法

基于信息论的知识,当样本集中有属性为分类变量时,就可以用信息熵来将其数值化。

对于样本容量为N的样本集,假设类别为k,记作[(y1,y2,…,yk)],自变量中[xi]为分类变量,此分类变量有j中取值,分别为[(a1,a2,…,aj)],在这k类上的分布如下:

1.4 数值化实例

以下表中的西瓜数据集为例[4],该数据集包含17个训练样本,其中正样本8个,负样本9个,在色泽上的分布详情,色泽有青绿、乌黑、浅白三种取值。

虚拟变量的方法,变量“色泽”上有3中取值,可以用2个虚拟变量来表示,将原始数据集中色泽变量去除,再添加两个新变量青绿、乌黑,(青绿=1,乌黑=0)表示色泽为青绿,(青绿=0,乌黑=1)表示色泽为乌黑,(青绿=0,乌黑=0)表示色泽为浅白。

2 对比实验

2.1 实验数据

该文中的对比实验,使用了两组数据,分别是Adult数据集和Car Evaluation数据集,都是从UCI机器学习数据库上下载而来的。

Adult数据集是从美国1994年人口普查数据库抽取而来的,用来预测居民的年收入是否超过5万美元。目标变量为年收入是否超过5万美元,属性变量包含年龄,工种,学历,职业,种族等,总共14个属性变量,其中7个为类别变量。

Car Evaluation是一个关于汽车测评的数据集,目标變量为汽车的测评(unacc, acc, good, vgood),属性变量分别为买入价,维护费,车门数,可容纳人数,后备箱大小,安全性。

为了实验方便,实验过程中直接删除有缺失值的样本。使用交叉验证对数据进行处理,训练集和测试集的比例为3:1。

2.2 实验过程

实验选取的是逻辑回归模型和支持向量机模型。

逻辑回归[5]逻辑回归的模型 是一个非线性模型,sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。可以说,逻辑回归,都是以线性回归为理论支持的。

支持向量机[6]支持向量机(SVM)是90年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

实验过程:

1) 选定数据集;

2) 将数据集划分为测试集和训练集,测试集占33%,训练集占67%;

3) 分别用各种方法对训练集、测试集中的类别变量进行数值化;

4) 对训练集、测试集进行归一化处理;

5) 分别用相应的机器学习算法对训练集进行训练;

6) 训练后的算法对测试集进行预测;

7) 在测试集上观测各项衡量指标。

上述实验都是用python完成的,主要要到python中pandas和sklearn这两个包。

2.3 实验结果

评价一个算法的好坏时,通常会考虑查准率(precision)和查全率(recall)。表1是两个数据集的测试集上的结果。

表1中,用序数代替,是实验中为了对比任意数值化的结果,用1,2,3…对类别变量赋值的结果。

3 结论与讨论

信息熵数值化的优点:

1) 较任意数值化而言,有其统计学上的理论依据。

2) 虽然在逻辑回归中,其效果仅次于虚拟变量化后的结果,但是虚拟变量有其缺点,如果属性值上取值过多,虚拟变量后会产生过多的变量,会产生共线性;而且虚拟变量后的数据不能与其他属性进行求解相关系数,但是信息熵数值化可以。

3) 虽然当前很多算法不要求变量的数据类型,数值化未必需要,但是在特征选择时,可以数值化后,求变量之间的相关系数,用来选择变量。

4) 不生成新的变量,便于解释。

参考文献:

[1] 李丽霞, 郜艳晖, 张瑛. 哑变量在统计分析中的应用[J]. 数理医药学杂志, 2006, 19(1):51-53.

[2] 黎玉华. 信用评分卡模型的建立[J]. 科技信息, 2010, 37(13):48-49.

[3] Shannon C E,Weaver W,Wiener N. The mathematical theory of communication[J]. M.d.computing Computers in Medical Practice, 2001, 5: 3-55.

[4] 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016.

[5] 李航. 统计学习方法[M]. 北京: 清华大学出版社, 2014.

[6] Bishop C M. Pattern recognition[J]. Machine Learning, 2006: 128.

猜你喜欢

支持向量机信息熵
基于信息熵可信度的测试点选择方法研究
基于小波奇异信息熵的10kV供电系统故障选线研究与仿真
基于信息熵的实验教学量化研究
一种基于信息熵的雷达动态自适应选择跟踪方法
基于改进支持向量机的船舶纵摇预报模型
基于支持向量机的金融数据分析研究
基于信息熵的IITFN多属性决策方法
泊松分布信息熵的性质和数值计算