机器学习逻辑回归算法综述情感分析研究生课程报告.docx
《机器学习逻辑回归算法综述情感分析研究生课程报告.docx》由会员分享,可在线阅读,更多相关《机器学习逻辑回归算法综述情感分析研究生课程报告.docx(12页珍藏版)》请在冰点文库上搜索。
机器学习逻辑回归算法综述情感分析研究生课程报告
西华大学
研究生课程报告
课程:
机器学习与知识发现
学院:
计算机与软件工程学院
专业:
计算机技术
姓名:
陈白杨
学号:
22
2019年2月
1逻辑回归算法综述
概述
逻辑回归模型由统计学家DavidCox于1958年发明,该模型本身只是根据输入对输出的概率进行建模,不进行统计分类,并不是分类器,但它可以用于构建分类器:
选择某个数值作为阈值,将输出大于阈值的那个输入划分为一个类别,低于阈值则划分为另一个类别,这就构成了一种常见的二值分类器。
逻辑回归是一种有监督的统计学习方法,其本质上是一种广义线性回归模型,下面从线性模型开始介绍。
线性模型
给定由d个属性描述的示例
其中
是x在第i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
一般用向量形式写成
其中
.w和b学得后模型就得以确定。
线性模型形式简单、易于建模,但却蕴含着机器学习中一些重要的基本思想。
许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。
此外,由于参数w直观表达了各属性在预测中的重要性,因而线性模型具有很好的可解释性。
广义线性模型
线性模型虽然简单,却有丰富的变化。
如果令模型的预测值逼近于
的衍生物,比如
,即将输出标记的对数作为线性模型的逼近目标,就得到对数线性回归模型。
它反应了示例对应的输出标记是在指数尺度上变化,形式上仍然是线性回归,但实质上已是在求取输入空间到输出空间的非线性函数映射。
如果把对数函数换成更一般的单调可微函数
,就得到“广义线性回归模型”,即:
)
其中
称为联系函数。
对数线性回归是广义线性模型在
时的特例。
广义线性模型的数学公式最早由JohnNelder和RobertWedderburn建立。
它对包括线性回归、逻辑回归和泊松回归等在内的多个模型进行了统一。
他们还提出了一种迭代加权最小二乘法来对该模型参数进行最大似然估计。
逻辑回归模型
线性回归模型用于回归学习,如果能够找到一个单调可微的联系函数
,将分类任务的真实标记y与线性回归模型的预测值
联系起来,就可以实现分类任务。
逻辑函数(logit,由英语单词logisticunit混合而成,和“逻辑”一词谐音)即是这样的一个常用函数:
逻辑函数或逻辑曲线是一种常见的S形函数(即Sigmoid函数),它是皮埃尔·弗朗索瓦·韦吕勒在1844年(或1845)在研究它与人口增长的关系时命名的。
其图像如下:
从上图可以看出,逻辑函数将z值转换为一个接近0或1的y值,并且其输出值在z=0附近变化很陡。
将逻辑函数作为
代入上式,得到
上式又可以变化为
如果将y视为样本x作为正例的可能性,则1-y是其反例可能性,两者的比值称为“几率”(odds)。
几率反映了x作为正例的相对可能性。
对几率取对数则得到“对数几率”(logodds,亦称logit):
上式表达的含义实际上就是在用线性回归模型的预测结果取逼近真实标记的对数几率,因此逻辑回归又称为“对数几率回归(LogitRegression)”、“逻辑斯蒂回归(LogisticRegression)”。
虽然是名为“回归”,但实际上却是一种分类算法。
如果将分类标记y视为在观测样本x条件下的类后验概率估计
作在逻辑回归模型的公式可以重写为
这就是说,在逻辑回归模型中,输出y=1的对数几率是输入x的线性函数。
或者说,输出y=1的对数几率是由输入x的线性函数表示的模型。
由此,逻辑回归分类器的总体框架可以用下图表示:
逻辑回归模型的有许多优点:
无需实现假设数据分布,直接对分类可能性进行建模,避免了假设分布不准确的问题。
且它不是仅预测出类别,而是可得到近似概率预测。
逻辑回归模型参数估计
逻辑回归模型学习时,对于给定的训练数据集
}
其中
,可以运用极大似然估计法估计模型参数。
设:
似然函数为:
对数似然函数为:
对
求极大值,得到w的估计值。
这样,模型的学习过程就变成了以对数似然函数为目标函数的最优化问题了。
可以看出这个目标函数是任意阶可导的凸函数,有很好的数学性质,有许多数值优化算法都可以用于求取最优解,如梯度下降法、牛顿法等。
多项逻辑回归
上面介绍的逻辑回归算法是二项分类模型,用于二分类任务。
可将其推广为多项逻辑回归模型(multi-nominallogisticregressionmodel),用于多分类任务。
假设离散型随机变量Y的取值集合是{1,2,..,K},那么多项逻辑回顾模型可以表示为:
其中
.二项逻辑回归的参数估计方法也可以推广到多项逻辑回归模型中。
参考文献
周志华.(2016).机器学习.清华大学出版社,北京。
李航.(2012).统计学习方法.清华大学出版社,北京。
Raschka,S.&V.Mirjalili.(2017).PythonMachineLearningSecondEdition.PacktPublishing,Birmingham,UK
Walker,SH;Duncan,DB(1967).Estimationoftheprobabilityofaneventasafunctionofseveralindependentvariables.Biometrika.54(1/2):
167–178.
Cox,D.R.(1958).Theregressionanalysisofbinarysequences(withdiscussion).JRoyStatSocB.20
(2):
215–242.
Nelder,J.,Wedderburn,R.(1972).GeneralizedLinearModels. JournaloftheRoyalStatisticalSociety.SeriesA(General).BlackwellPublishing. 135 (3):
370–384.
Collins,M.,Schapire,R.E.,Singer,Y.(2004).LogisticRegression,AdaBoostandBregmanDistances.MachineLearningJournal.
2实验
实验任务
情感分析(或意见挖掘)是人们的观点、情绪,评估对诸如产品、服务、组织等实体的态度。
通常来说,情感分析的目的是为了找出说话者在某些话题上或者针对一个文本两极的观点态度。
本次实验将采用上文介绍的逻辑回归算法来学习一个文本分类器,通过用户对某影视作品的评论(IMDb数据集)来预测其观点的极性(消极或积极),即用户是否喜欢这个作品。
数据集IMDb
IMDb是2011ACL会议论文LearningWordVectorsforSentimentAnalysis公开的一个电影评论文本数据库。
该数据集由50,000条已标记极性(积极和消极)的文本组成,“积极”代表该电影的评分在IMDb上的评分为6分及以上,“消极”代表5分及以下。
部分样例如下所示:
No.
Review
sentiment
1
In1974,theteenagerMarthaMoxley(MaggieGrace)movestothehigh-classareaofBelleHaven,Gree……
1
2
OK...so...IreallylikeKrisKristoffersonandhisusualeasygoingdeliveryoflinesinhismovie……
0
3
***SPOILER***Donotreadthis,ifyouthinkaboutwatchingthatmovie,althoughitwouldbeawaste……
0
4
hiforallthepeoplewhohaveseenthiswonderfulmovieimsurethetyouwouldhavelikeditasmuc……
1
5
IrecentlyboughttheDVD,forgettingjusthowmuchIhatedthemovieversionof"AChorusLine."Ev……
0
试验设置
在本次实验中,我们将IMDb数据集总共5万条样例中的万条作为训练集,剩下5000条作为测试集。
在训练集上采用五折交叉验证对学习性能进行评估,试验评估指标为模型准确率:
准确率=分对样本数÷总样本数
源代码用及其科学计算库Scikit-learn、自然语言处理模块NTLK编写,在intelXeonE5-2630v3处理器(16核)上执行完成。
算法描述
文本分类的总体框架是先对文本进行词嵌入,建立文本词向量空间,然后用某种分类算法在向量空间上对训练数据进行学习,并通过适当的优化办法求得最优解或次优解。
具体而言:
首先要对文本进行预处理,将句子划分为一个个的单词,即分词(Tokenizing或称为“词素切分”)。
西方语言的基本单位就是单词,一般直接按照空格进行划分。
然后去除停用词(Stopwords),人类语言中包含很多功能词,与其他词相比,功能词没有实际语义,如“the”、“that”和“those”等,本次试验将调用PythonNLTK模块中的停用词表进行预处理。
最后进行词干提取(Stemming)。
这是西方语言特有的处理,比如说英文单词有单数复数的变形,-ing和-ed的变形,但是在计算相关性的时候,应该当做同一个单词。
比如apple和apples,doing和done是同一个词,提取词干的目的就是要合并这些变态。
本次试验采用NLTK模块中的经典算法PorterStemming进行词干提取。
文本分类的核心是如何从文本中抽取出能够体现文本特点的关键特征,抓取特征到类别之间的映射。
文本预处理之后就可以进行特征抽取。
本次试验将采用最基本的词袋模型进行特征表示:
以词为单位(Unigram)构建词袋。
词袋模型比较简单直观,它通常能学习出一些关键词和类别之间的映射关系。
但它丢失了文本中词出现的先后顺序信息;仅将词语符号化,没有考虑词之间的语义联系(比如,“麦克风”和“话筒”是不同的词,但是语义是相同的)。
词袋模型的特征表示通常是极其稀疏的(IMDb语料库总体特征数量为十万以上),本次实验将提取多组特征进行测试,以验证特征数量对学习器性能的影响。
在词袋模型的基础上,本次试验以TF-IDF算法表征词的重要程度。
TF-IDF反映了一种折中的思想:
即在一篇文档中,TF认为一个词出现的次数越大可能越重要;IDF认为一个词出现在的文档数越少越重要,但也可能不是,比如一些无意义的生僻词。
接下来用逻辑回归算法对训练集进行学习,本次试验调用Python的Scikit-learn科学计算模块中的逻辑回顾算法的实现,并分别采用SAG(StochasticAverageGradient)、LIBLINEAR(ALibraryforLargeLinearClassification)、Newton-cg三种算法进行优化求解。
试验步骤
1)将数据集进行预处理,包括分词、过滤掉停用词、词干提取。
2)用词袋模型和TF-IDF算法建立文本特征向量。
3)用逻辑回归算法在训练集上进行训练,建立逻辑回归模型,并采用五折交叉验证计算模型在训练集上的得分。
4)对测试集进行预测,统计预测结果。
5)对预测偏差进行分析,完成试验。
实验结果
本次试验重点验证词袋模型词向量构建过程中,特征提取数量对分类器性能的影响,采用了11组参数(特征提取数量从100到102400)进行五折交叉验证,验证得分为五词平均的准确率。
然后分别采用三种不同优化方法进行试验,验证集试验结果如下表所示:
序号
特征数量
五折交叉验证得分(准确率)
liblinear
sag
newton-cg
1
100
2
200
3
400
4
800
5
1600
6
3200
7
6400
8
12800
9
25600
10
51200
11
102400
从上表可以看出,一方面,三种优化方法测试结果完全一致,且分类准确率最高都是90%,各种优化方法对该模型的性能没有差异。
另一方面随着特征提取数量的增加分类准确率逐步提高,但提升速度逐步降低。
最终模型在测试集上的准确率为:
测试结果和模型在训练集上的最终成绩基本一致。
案例研究与分析
本次试验在5000条样例的测试集上,分类错误的有497条,下面摘取了6条进行案例分析,如下表所示:
序号
真实
标记
被错误分类的样本示例
1
喜欢
It'snotCitizenKane,butitdoesdeliver.Cleavage,andlotsofit.Badlyactedanddirected,poorlyscripted.WhocaresIdidn'twatchitforthedialog.
2
喜欢
Inmyopinion,thisfilmhaswonderfullightingandevenbetterphotography.ToobadthestoryisnotallthatgoodandMr.Cagesometimesloseshisaccent.ButtwothumbsupforlightingandtheDP!
3
喜欢
Forsheerqualityofperformanceandthe"theateroftheabsurd,"thisoneishardtocomparetoanythingelse.Withtheworldmeltingdownintheearly'70sthisfilmmadeperfectsensethen,andstillresonates.GeorgeScottcouldneverbetypecast.
4
不喜欢
Ihavetodifferfromtheothercommentsposted.Amidsporadicfunnymoments,therearealotofactorstryingtoohardtobefunny.Thestrainshows.Iwatchedthiswithtwofriendsonanotherfriend'srecommendation-noneofuswerethrilled.
5
不喜欢
Thismoviewaswaytooslowandpredictable.Iwishicouldsaymorebutican't.Ifyouenjoyaction/adventurefilms,thisisnotonetosee.I'dsuggestyougoseemovieslike;BehindEnemyLineswithOwenWilsonandIronEaglewithLouisGossettJr.
6
不喜欢
BadMovie-sawitattheTIFFandthemoviegivesmeasenseof'beentheredonethat'-itremindsmealotofthemovieBlow-expecttheBlowwasactuallyinteresting.Thisonestorytoldtwowaysandbothtimesitisnottoldthatwell.
从上表看出,三条真实标记为“喜欢”的样本中,有大量的贬义词,如:
badly、poorly、lose、absurd等,但实际语义却是用的反语。
三条真实标记为“不喜欢”的样本用到了大量的褒义词,如:
funny、recommendation、enjoy、suggest、interesting等,但这些词并非表达了用户的真实语义。
这些分类错误都和词袋模型本身的缺陷有关:
它丢失了文本中词的上下文信息,无法正确识别表示否定的功能词(如:
“but”、“None”、“too”等),仅将词语符号化,无法表征词之间的语义联系。
参考文献
刘挺等译.(2010)搜索引擎:
信息检索实践.机械工业出版社.北京
Maas,A.L.etal.(2011).LearningWordVectorsforSentimentAnalysis.Proceedingsofthe49thAnnualMeetingofACL.Portland,Oregon,USA
Joulin,A.etal.(2016).BagofTricksforEfficientTextClassification.FacebookAIResearch.arXiv:
Croft,W.B.,Metzler,D.andStrohman,T.(2010).SearchEngines:
InformationRetrievalinPractice.PearsonEducation.USA
Fan,R.E.,Chang,K.W.,Hsieh,C.J.,Wang,X.R.andLin,C.J.(2008).LIBLINEAR:
AlibraryforlargelinearclassificationJournalofMachineLearningResearch.1871-1874.
Schmidt,M.,Roux,N.L.andBach,F.(2013).MinimizingFiniteSumswiththeStochasticAverageGradient.