APP下载

统计学习方法概述以及部分分类算法的R实现

2016-02-26张帅

西部皮革 2016年18期
关键词:决策树机器函数

张帅

(天津财经大学,天津 300222)



统计学习方法概述以及部分分类算法的R实现

张帅

(天津财经大学,天津 300222)

首先本文简单地概述了统计学习的一些基本理论,然后对于统计学习中一些常见的方法我们探索性地使用了R软件来进行了实现,统计学习方法是我们在机器学习领域的入门知识,比起其它的机器学习方面的书籍和理论,这是更适合初学者的,统计学习方法是机器学习领域的一个重要的分支,它是计算机基于数据构建概率统计模型并用统计模型进行预测分析的学科。我们用统计学习方法进行预测分析。书中主要提到了各种不同的分类算法,包括感知机,决策树,朴素贝叶斯,k近邻等,本文对统计学习方法的基本内容进行了概述,并对部分分类算法作了简单介绍和R软件的实现。

统计学习方法;分类算法;R实现

对象:统计学习的对象是数据。我们从数据中提取特征,抽象出数据的模型,从数据中发现知识,利用得到的知识对新的数据进行预测、分析。这就是我们的机器学习算法经常做的事。然而这一切是有一个前提的,数据中存在一定的统计规律性。这是我们进行机器学习、数据挖掘的先决条件。倘若数据中不存在规律性,那我们就没有挖掘、学习的必要。当然这个所谓的规律也有一个特点——我们知道它存在但是很难准确描述或者根本没法描述出它到底是什么样的。我们只能用模型来近似表达它。当然这就会牵扯到一些概率统计方面的知识,所以我们在学习统计学习方法是需要具备一定的概率知识。

方法:这里所说的统计学习方法,不单单指某一个模型、某一个学习算法。这里的方法指的是一个机器学习解决方法。统计学习方法可以分为监督学习、无监督学习、半监督学习、强化学习等类型。主要的两类是监督学习和无监督学习。我们在统计学习中讨论的主要都是监督学习的问题。监督学习是统计学习极其重要的分支,也是统计学习中内容最丰富、应用最广泛的部分。

下面给出一些定义:

* 假设要学习的模型为某个函数空间,将这个空间称为假设空间

* 我们应用某个准则,从假设空间中选取一个最优的函数 f(x) 作为模型(最优的函数意味着在给定的准则下有最优的结果)

实现统计学习方法的步骤:

* 得到数据集,并对数据进行预处理

* 确定假设空间,即确定模型的集合

* 确定模型选择的准则,即确定模型选择的策略

* 确定、实现模型最优解的求解方法,即确定求解模型的算法

* 得到最优模型

* 用得到的模型进行预测、分析,并评估模型

* 输入空间:输入空间是指我们的输入数据的空间,它应当包含所有可能出现的输入数据(即使在你暂时给定的输入数据中有些值还没有出现)。我们把一条输入数据称为一个样本或实例,通常我们用x来表示输入数据。此处x是一个n维向量。

* 输出空间:输出空间取决于预测任务。若是分类问题,往往输出空间是一个离散值的集合,特别的,如果是二分类问题,我们通常有{+1,-1}集合和{1,0}集合。选取其中的哪种视具体情况而定,在实际意义上来说这两者没区别。如果是回归问题,输出空间往往是R,即一个实数空间。对于生成模型,则要复杂一些,例如决策树,输出的就是一棵树。

* 假设空间:这个前面有提到,指的是模型的空间。或者更广泛一点的,我们说是从输入空间到输出空间的映射的空间。

三要素

对于统计学习方法李航先生有个很精炼的描述:

统计学习方法=模型+策略+算法

模型:模型是一个抽象概念,同时它又是事物的抽象表示。当然这是比较具体的模型。它是对实物的简化、缩小化。但是我们说的模型,是对事物本身和事物之间的联系的一个描述。通常我们在统计学习中所说的模型指的是一个函数或者是一组函数,以及各种各样的相关信息。这些都是数学模型。模型描述的是输入空间到输出空间的映射。而且模型基本都是有参数的,拿一个我们最熟悉的模型来说:y=x。它的原型是y=kx+b,它的参数是:k和b。

我们所谓的学习,说是学习模型,其实真正学习的是学习模型参数。在我们通过训练数据得到一个假设空间后,通过训练规则确定了模型参数,也就确定了一个唯一的最优模型。在统计学习方法中,模型分为两类。一种是概率模型,通常由条件概率表示。一种是决策模型,它是非概率模型。

算法:在统计学习方法中,我们可以看到,在我们通过思路构建出模型,在用我们的策略——求出经验损失后,我们需要去优化我们的经验损失函数。即使得经验损失函数最小化,来逐步降低我们的训练误差,使模型逐步逼近真实模型。通常我们在得到期望损失的时候,都会提出一个最优化目标,我们的优化目标就是最优化期望损失。接下来要做的就是求解这个最优化问题(在推导过程中一般都会用到最优化理论的知识)。很多情况下,我们的问题并没有解析解。我们无法通过直接解析问题得到一个解的表达式。这时候我们的算法就该帮助我们求解问题。由于计算机的特性——计算速度快、可以并行计算。为了充分发挥我们计算机的长处,我们的算法通常都具有迭代若干次这一特点。

下面我们介绍一下机器学习里面一种简单并且广泛使用的分类技术:

决策树

机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。

我们用R中比较经典的数据集iris来建立一个决策树,对于iris这里就不做过多介绍了。

首先我们需要调用party包中的ctree( )函数,并且将iris数据集分为两部分,70%用于训练,30%用于预测

代码如下:

>set.seed(1,2,3,4)

ind<-sample(2,nrow(iris),replace=TRUE,prob=c(0.7,0.3))

traindata<-iris[ind==1,]

testdata<-iris[ind==2,]

2加载party包来建立一个决策树,并进行预测。

代码如下:

myformula<-Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width

iris_tree<-ctree(myformula,data=traindata)

table(predict(iris_tree),traindata$Species)

3下一步打印决策树

代码如下:

print(iris_tree)

plot(iris_tree)

plot(iris_tree,type=“simple”)

这两个plot函数代表分别画出两种不一样的图

(3)加强风险规范管理。强化数据分析应用,推进财产行为税风险管理,加强信息比对,完善各税种风险特征库、管理模型和指标体系,建立财产行为税风险管理机制,不断提高风险管理的规范化水平。

4在测试集上测试决策树

代码如下:

testpred<-predict(iris_tree,newdata=testdata)

table(testpred,testdata$Species)

随机森林

随机森林,指的是利用多棵树对样本进行训练并预测的一种分类器。该分类器最早由Leo Breiman和Adele Cutler提出。简单来说,随机森林就是由多棵CART构成的。对于每棵树,它们使用的训练集是从总的训练集中有放回采样出来的,这意味着,总的训练集中的有些样本可能多次出现在一棵树的训练集中,也可能从未出现在一棵树的训练集中。在训练每棵树的节点时,使用的特征是从所有特征中按照一定比例随机地无放回的抽取的。

我们仍然使用鸢尾花数据集iris,并调用R中的randomForest()包

代码如下:

ind<-sample(2,nrow(iris),prob=c(0.7,0.3),replace=TRUE)

trainData<-iris[ind==1,]

testData<-iris[ind==2,]

library(randomForest)

fit<-randomForest(Species~.,data=trainData,ntree=100,proximate=TRUE)

table(predict(fit),trainData$Species)

最后在测试集上进行测试

IrisPred<-predict(fit,newdata=testData)

table(IrisPred,testData$Species)

绘制每一个观测值被判断正确的概率

plot(margin(fit,testData$Species))

[1]毛国君等编著.数据挖掘原理与算法[M].清华大学出版社,2005.

[2]李志强,宋晓兵.小样本统计决策理论,统计学习理论[J].统计教育,2005(08).

[3]Michael Steinbach.Introduction to Data Mining.

张帅(1991-),男,汉族,山东济南人,统计学硕士,天津财经大学研究生院统计学专业,研究方向:经济统计。

C31

A

1671-1602(2016)18-0202-02

猜你喜欢

决策树机器函数
机器狗
机器狗
二次函数
第3讲 “函数”复习精讲
二次函数
函数备考精讲
一种针对不均衡数据集的SVM决策树算法
决策树和随机森林方法在管理决策中的应用
未来机器城
基于决策树的出租车乘客出行目的识别