实验二 分类回归算法的基础实验
代码下载地址:
一、实验目的
在学习线性回归、逻辑回归、KNN、决策树、贝叶斯分类、神经网络等算法的原理的基础上,掌握已有的数据分类算法软件包中数据分类回归算法的使用。
二、实验内容
学习scikit-learn包中的Classification,网络地址:http://scikit-learn.org/
三、实验要求
至少实验2种算法的使用
四、实验题目
根据scikit-learn中的算法要求,自行选择实验。
1、朴素贝叶斯Naive Bayes
利用Naive Bayes实现基于微博文字的种类预测,给定一篇微博,判断属于哪一个种类,总共有四类:女性、体育、文学出版、校园。(数据集见压缩包)
2、决策树Decision Trees
根据给定的特征花萼长度、花萼长度、花瓣长度、花瓣宽度,利用决策树划分鸢尾花的种类,原始数据集中总共有三类,山鸢尾、杂色鸢尾以及维吉尼亚鸢尾。
五、实验过程
1、题目一
设计程序流程图如图5.1所示
图5.1 题目一程序流程图
根据流程图,按照以下步骤进行:
1 语料选择
选择语料库、数据集、停用词集,语料库内分不同内容种类。
2 预处理
除去噪声,如:格式转换,去掉符号,整体规范化,在本次实验中,我们除去各种符号,制表符,空格,回车等不必要的干扰因素。除去换行符:result = (str(content)).replace("\r\n", “").strip()。
3 中文分词
将文章分割成一个个词语。中文分词就是将一句话拆分为各个词语,因为中文分词在不同的语境中歧义较大,所以分词极其重要。我们本次采用jieba分词现将本文分类,然后将分词之后的文本存入一个新的文档中,方便后续函数调用。分词模式采用的是默认的精准分词模式:
cutResult = jieba.cut(result) # 默认方式分词,分词结果用空格隔开
4 构建训练集向量空间
统计词频(TF),构建词频矩阵、过滤停用词、将计算好的TF-IDF向量提取出来、生成每个文本的词向量空间。TF-IDF与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。
TF-IDF = TF (词频) * IDF(逆文档频率)
词频:TF = 词在文档中出现的次数文档中总词数
5 构建测试集向量空间,方法同(4)。
6 使用朴素贝叶斯预测文本分类
朴素贝叶斯方法是基于贝叶斯定理的一组有监督学习算法,即“简单”地假设每对特征之间相互独立。给定一个类别 y 和一个从x1 到xn 的相关的特征向量,贝叶斯定理阐述了以下关系:
使用简单(naive)的假设-每对特征之间都相互独立:
对于所有的 :i 都成立,这个关系式可以简化为
由于在给定的输入中 是一个常量,我们使用下面的分类规则:
可以使用最大后验概率(Maximum A Posteriori, MAP)来估计P(y) 和P(xi|y) ; 前者是训练集中类别y 的相对频率。
在实验中,我们可以直接使用sklearn中提供的MultinomialNB多项式贝叶斯算法进行计算。
7 结果评价
我们把数据集中的80%作为训练集,选择剩下的20%作为测试集。采用错误率参数进行衡量模型的好坏。
%
2、题目一实验结果
实验结果如表5.2所示,具体预测错误项见下图5.2。
表5.2 题目一预测结果
测试集样本数 |
预测错误数 |
错误率 |
200 |
18 |
9% |
图5.2 预测错误结果明细
3、题目二
以鸢尾花的特征作为数据来源,常用在分类操作中。该数据集由3种不同类型的鸢尾花的各50个样本数据构成。其中的一个种类与另外两个种类是线性可分离的,后两个种类是非线性可分离的。
(1)数据分析:
该数据集包含了4个属性:
Sepal.Length (花萼长度) |
Sepal.Width (花萼宽度) |
Petal.Length (花瓣长度) |
Petal.Width (花瓣宽度) |
三个种类:
ris Setosa (山鸢尾) |
Iris Versicolour (杂色鸢尾) |
Iris Virginica (维吉尼亚鸢尾) |
(2) DecisionTreeClassifier 是能够在数据集上执行多分类的类,与其他分类器一样,采用输入两个数组:数组X,用 [n_samples, n_features] 的方式来存放训练样本。整数值数组Y,用 [n_samples] 来保存训练样本的类标签:
(3)执行通过之后,可以使用该模型clf.fit()来预测样本类别,另外,也可以预测每个类的概率clf.predict_proba(),这个概率是叶中相同类的训练样本的分数。
4、题目二结果分析
最后生成的决策树如下图5.4.1所示。
图5.4.1 决策树
根据建立的决策树模型,分别由花萼宽度与花瓣宽度、花萼宽度与花瓣长度进行分类,如下图5.4.2所示。(注:此处可有多种组合,比较不同效果,本次实验选取两种情况进行分析)
图5.4.2 根据不同特征进行分类结果