当前位置:文档之家› r语言基于SVM模型的文本分类研究 附数据代码

r语言基于SVM模型的文本分类研究 附数据代码

r语言基于SVM模型的文本分类研究 附数据代码
r语言基于SVM模型的文本分类研究 附数据代码

基于SVM模型的文本分类研究

1 Perceptron与SVM概念介绍

1.1 感知机(Perceptron)

感知机(perceptron)1957年由Rosenblatt提出,是神经网络与支持向量机的基础? 感知机,是二类分类的线性分类模型,其输入为样本的特征向量,输出为样本的类别出为样本的类别,取+1和‐1二值,即通过某样本的特征即通过某样本的特征,就可以准确判断该样本属于哪一类。感知机能够解决的问题首先要求特征空间是线性可分的,再者是二类分类,即将样本分为{+1, ‐1}两类。由输入空间到输出空间的符号函数:

其中,w和b为感知机参数,w为权值(weight),b为偏置(bias)。

在感知机的定义中,线性方程对应于问题空间中的1个超平面(二维空间中为直线)S,位于这个超平面两侧的样本分别被归为两类,例如下图,红色作为一类(正类),蓝色作为另一类(负类),它们的特征很简单,就是它们的坐标。

作为有监督学习的一种方法,感知机学习由训练集,求得感知机模型,即求得模型参数w,b,这里x和y分别是特征向量和类别(也称为目标)。基于此,感知机模型可以对新的输入样本进行分类。

1.2支持向量机(SVM)

感知机学习算法会因采用的初值不同而得到不同的超平面。而SVM试图寻找一个最佳的超平面来划分数据,怎么算最佳呢?我们自然会想到用最中间的超平面就是最好的。如下图 :

显然在SVM中我们不能在使用函数距离γ^(i)来作为损失函数了,当我们试图使上图虚线之间的”gap”,最大自然要用几何距离。

我们期望目标函数是一个凸函数,这样优化起来就比较方便了。所以上面的优化问题可以化成:

maxγ,w,bs.t.1||w||?minγ,w,b12||w||2y(i)(wTx(i)+b)?1,i=1,...,m

这样SVM模型就转化为了一个二次规划问题(Quadratic Programming)。此时我们可以用R的一些工具来处理这个优化问题了。

1.3感知机与支持向量机的区别:

感知机是支持向量机的基础,由感知机误分类最小策略可以得到分离超平面(无穷多个),支持向量机利用间隔最大化求得最优分离超平面(1个)。间隔最大化就是在分类正确的前提下提高确信度。比如,A离超平面远,若预测点就是正类,就比较确信是正确的。点C离超平面近,就不那么确信正确。

同时SVM具有核函数,线性支持向量机解决线性分类问题。对于非线性分类问题,可以采用非线性支持向量机解决。具体为:

采取一个非线性变换,将非线性问题转变为线性问题。再通过线性支持向量机解决,这就是核技巧。

设T是输入空间(欧式空间或离散集合),H为特征空间(希尔伯特空间)。如果存在一个映射

使得对于所有的

在学习与预测中只定义核函数,而不显式地定义映射函数.

2 基于距离的聚类算法

层次分析(Clustering Analysis):根据在数据中发现的描述对象及其关系的信息,将数据对象分组。其目标是,组内的对象互相之间是相似的(相关的),不同组中的对象是不同的(不相关的)。组内的余弦距离越小,相似性越大,组间差别越大,聚类就越好。就理解数据而言,簇是潜在的类,而聚类分析就是研究自动发现这些类的技术。

这类算法首先要确定聚类数目和聚类中心,通过反复迭代的方法得到最终的聚类结果。典型的基于划分的聚类方法。这些算法对在小规模的数据集中发现球状类别很有效。

3 文本挖掘中的分类模型

支持向量机方法能在训练样本数很小的情况下达到很好分类推广能力的学习算法,它能做到与数据的维数无关。以线性可分的问题为例,从图<可直观地理解算法。算法所得到的决策面为:将两类分开最大缝隙的超平面。对决策面设计起作用的点(图中圈中的点)称为支持向量。分类线方程可以对它进行归一化使得对线性可分的样本集。它被成功的应用于手写数字识别和文本自动分类等很多领域。

3.1数据预处理

用SVM实现文本分类,先要从原始空间中抽取特征,将原始空间中的样本映射为高维特征空间中的一个向量,以解决原始空间中线性不可分的问题.

文本分类(Text Categorization 或Text Classification)是在已给定的分类体系下(文本集),依据文本的内容或对文本的标识信息等,通过分类程序的学习和运算等处理方式,自动地确定文本所关联的类别。从数学角度来看,文本分类是一个映射的过程,即系统根据已经掌握的每类若干样本的数据信息,总结出分类的规律从而建立并关联判别公式和判别规则;当分类器遇到输入的未标明类属的新文本时,根据总结出的判别规则,确定该文本相关联的类别。

首先需要一个训练样本集作为输入,以便分类器能够学习模式并找到分类函数。训练集(Training set) 由一组数据库纪录或元组构成,每个记录是一个由有关字段值组成的特征向量,这些字段称做属性(Feature),用于分类的属性叫做标签(Label)。训练集中标签属性的类型必须是离散的。为降低分类器错误率,提高分类效率,标签属性的可能值越少越好。对于经典支持向量分类机来说,正负二类分类值{+1,-1}(binary classification)是最理想的分类值状态。

从训练集中自动地构造出分类器的算法叫做训练。得到的分类器常要进行分类测试以确定其分类准确性。测试集使用的数据和训练集通常具有相同的数据格式。在实际应用中常用一个数据集的2/3作为训练集,1/3作为测试集。

3.2 特征选取

将文本转换成为适合分类任务后,本文对各个关键词的词频进行统计。而词频较小的特征词汇对许多任务影响相对较小。因此本文筛选出词频最高的20个特征词汇,并使用这些词频来建模,从而提高准确度。

高频特征词汇词云图如下:

得到的高频词汇频数。

层次聚类结果:

相关主题
文本预览
相关文档 最新文档