文本分类的14种算法(3):

部分常用文本分类算法

k临近算法

所谓临近,就是指对于测试样本,找出训练集中与他最相似的一个样本,并将该样本的结果当作测试样本的结果输出。k临近算法利用“距离”的概念来描述样例间的相似程度:对于文本的特征向量(x1,x2,…,xn),把他当作一个n维的点,其与另一个文本(y1,y2,…,yn)的距离根号下(∑(xi-yi)^2)即两文本的相似程度。
可见k临近算法的计算量主要集中在预测这一步上而不是训练这一步上,这使其在单一测试样本的预测中会具有较大的效率优势。

我程序里的测试集有2000多条文本,每条文本有20000多个特征位,训练很快就跑好了,
但是预测跑了半天也没跑出来。。。

逻辑回归算法

逻辑回归算法也是一种分类算法,常规的回归算法就是对于文本的特征值x1,x2,…,xn,拟合出一个多项式:
f(x)=c0+c1x1+c2x2+…+cn*xn
使得可以根据f(x)的值来确定样本的分类。
逻辑回归是对其的一种优化,逻辑回归利用sigmoid函数的特殊性质,使最终拟合出的函数值可以直接表示某样本从属于某一类的概率,且保证函数值域为[0,1]。
sigmoid函数:sig(x)=1/(1+exp(-x))
假定样本为分类1的概率为p(x),根据sig(x)=ln(p(x)/(1-p(x))),两式联立可以解得:
p(x)=1/(1+exp(-f(x))),即:

所以逻辑回归算法的训练就是拟合函数的过程。值得注意的是,由于p(x)表示的是文本属于某一类的概率,所以对于样本分类数量为n的数据集,需要n-1个p(x),取p(x)最大的分类作为结果。在二分类问题中,也可以表示为若p(x=1)>0.5,则分类为1,否则为测试文本分类为0.

SVM支持向量机

这篇文章讲的比较好:https://blog.csdn.net/u011630575/article/details/78916747
具体的数学推导和证明我也没有细看,这里大致概括一下它的思想:
把各个样本当作是点画在空间内,以二维空间为例,SVM其实就是画一条线将两类点分隔开。
这条线就叫决策面,SVM其实就是选定和优化选定决策面的算法。考虑到要在两类数据间划分出足够的空隙、容量,具有“最大间隔”的决策面就是SVM要寻找的最优解。像下图中B这样的就是最优解:

假设决策面直线为y=ax+b,变换坐标轴,x2=ax1+b,w=[a,-1]的转置。通过数学推导可以将这一问题转化为一个有约束不等式的、求一与决策面向量正交的向量的模w的最小值问题:

利用拉格朗日乘数法:L(x,λ)=f(x)+λg(x)可以有效地解决有条件约束的极值问题,但要求约束条件为等式。故我们要先采用KKT条件对原约束方程进行转化。所谓KKT条件就是对于拉格朗日乘数法求最优解问题时利用最优解相对可行解的性质进行的不等式约束条件向等式约束条件的转化,比如下面这张图:

拉格朗日乘数法:L(x,λ)=f(x)+λ
g(x),其中g(x)=0为条件约束函数。本例中的约束函数却为g(x)<=0。目标函数等高线代表待求解的数值,显然,由于是求最优解(在本例中是求目标函数的最小值)。最优解要么在可行解区域的边界上,此时约束条件函数取值g(x)=0,要么在可行解区域中,相当于λ=0.两者必然带来一种结果即λg(x)=0.故约束条件g(x)<=0可以被写为g(x)<=0,λ>=0,λg(x)=0三式。
之所以做这一步就是为了之后使用拉格朗日对偶来求最优解。关于拉格朗日对偶这一篇博文讲的挺好:
https://www.cnblogs.com/90zeng/p/Lagrange_duality.html
也就是将上述约束条件代入广义拉格朗日公式,求出L(x,α,β),然后将x看作常数求L(x,α,β)的最大值,将求出的α、β的解αi、βj作为常数回代,求f(x)最小值时x的取值,这里的x即w的模。
值得注意的是KKT和拉格朗日对偶的优化并不是必须的。

SVM跑起来非常耗时(看这个求解过程就该猜出来了),也是没跑出来。
我参考的原博:https://www.kesci.com/home/project/5cbbe1668c90d7002c810f79中其他非机器学习算法撑死跑几十秒的,他跑了300多秒。。。

文本分类的14种算法(3)相关推荐

  1. 文本分类的14种算法(1)

    文本分类的14种算法(1): 前期的数据处理及算法的评价指标选取 训练集和测试集采用了 上一篇文章中的数据集: https://blog.csdn.net/qq_43012160/article/de ...

  2. 文本分类的14种算法总结

    文本分类的14种算法总结 之前介绍了14种文本分类中的常用算法,包括8种传统算法:k临近.决策树.多层感知器.朴素贝叶斯(包括伯努利贝叶斯.高斯贝叶斯和多项式贝叶斯).逻辑回归和支持向量机:4种集成学 ...

  3. 文本分类的14种算法(2)

    文本分类的14种算法(2): 部分常用文本分类算法 决策树 决策树从根结点开始,根据待分类数据的某一特征的取值对其进行划分,分配到相应子结点.像这样递归进行,直到到达叶结点.那么如何判定最优特征呢? ...

  4. 文本分类的14种算法

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 之前介绍了14种文本分类中的常用算法,包括8种传统算法:k临近.决策树.多层感知器.朴素贝叶斯 ...

  5. 文本分类和提取关键词算法_文本内容之间的关键词提取和相似度计算

    文本分类和提取关键词算法 背景 Web应用程序变得越来越智能. 从网站上使用服务的日子已经一去不复返了,用户不得不填写一个巨大的表格. 假设您有一个适合书迷的网站. 在Web 2.0之前,像这样的网站 ...

  6. 总结2021面试中的常见14种算法套路

    ‍‍‍ 点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器学习爱好者社区 编辑丨极市平台 导读 曾在 Fac ...

  7. 文本分类之特征简约算法说明

    见 http://blog.csdn.net/aalbertini/archive/2010/07/20/5749883.aspx 用数值衡量某个特征的重要性. 1 df: 用df衡量重要性. df就 ...

  8. 文本分类的一种对抗训练方法

    最近阅读了有关文本分类的文章,其中有一篇名为<Adversarail Training for Semi-supervised Text Classification>, 其主要思路实在文 ...

  9. Python文本分类(不涉及算法)

    Python文本分类 ** 首先下载安装,用到的库有pandas和jieba库 这个文本分类很简单,并不涉及算法 ** 源数据是二个excel文件,大约7000条数据,首先把二个文件进行合并成一个DF ...

最新文章

  1. 【c语言】蓝桥杯算法训练 sign函数
  2. ASP.NET MVC 过滤器(一)
  3. Verilog_Day2
  4. 跨链资产原子转移工具包 Decred atomicswap
  5. VS2005(c#)项目调试问题解决方案集锦
  6. pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案
  7. Android 中的adapter和作用以及常见的adapter
  8. 计算机中职生毕业鉴定评语,中职学生毕业鉴定评语
  9. 汉堡王,你不要给我们AI泼脏水
  10. 【TSP】基于matlab粒子群算法Hopfield求解旅行商问题【含Matlab源码 224期】
  11. U - 计算长方体、四棱锥的表面积和体积
  12. python语言智慧树期末答案_2020智慧树Python语言应用期末答案
  13. 焦虑的时候听一听,分享我喜欢的一段话,心就安静很多
  14. 盘点 Java 线程池配置的常见误区
  15. SpringCloud 微服务网关Gateway常用限流算法以及简单实现
  16. 硬盘修复工具软件重建MBR
  17. 关于计算机如何实现减法操作
  18. 经济信息管理与计算机应用学科,(经济信息管理)经济管理与计算机应用专业(专科)培养方案...
  19. 计算机控制系统笔记,计算机控制系统复习笔记
  20. 服务器x3550m5配置信息,System x3550 M5内部简介_IBM服务器_服务器x86服务器-中关村在线...

热门文章

  1. UE4 如何解决使用WebUI插件时 没法输入中文的问题
  2. 大拿都是这样写测试计划的,你学到了吗?
  3. Android项目打包,及高德地图服务配置
  4. 创新声卡系统更新连接服务器问题,创新X-Fi声卡在Win10专业版 1903更新中无法工作的问题将被修复...
  5. gdc服务器日常维护方法,数字放映技术维护培训.pdf
  6. 鸿蒙版的京东APP,再见安卓!鸿蒙版京东App上架华为商城:正式版最快6月见
  7. Procast从入门到精通
  8. JVM系列:jvm基本结构
  9. 手把手教学爬小姐姐图片(jsoup)
  10. 稻盛和夫教会我“人生精进”的10项原则(深度好文)