向AI转型的程序员都关注了这个号????????????

机器学习AI算法工程   公众号:datayx

之前介绍了14种文本分类中的常用算法,包括8种传统算法:k临近、决策树、多层感知器、朴素贝叶斯(包括伯努利贝叶斯、高斯贝叶斯和多项式贝叶斯)、逻辑回归和支持向量机;4种集成学习算法:随机森林、AdaBoost、lightGBM和xgBoost;2种深度学习算法:前馈神经网络和LSTM。
各篇链接如下:

测试环境搭建与数据预处理:
https://blog.csdn.net/qq_43012160/article/details/94993382

决策树、朴素贝叶斯(伯努利贝叶斯、高斯贝叶斯和多项式贝叶斯):
https://blog.csdn.net/qq_43012160/article/details/95366183

k临近、逻辑回归、SVM支持向量机:https://blog.csdn.net/qq_43012160/article/details/95506126

随机森林、AdaBoost、多层感知器:
https://blog.csdn.net/qq_43012160/article/details/95762591

lightGBM、xgBoost:
https://blog.csdn.net/qq_43012160/article/details/96016265

前馈神经网络、LSTM(包括pycharm深度学习环境搭建):
https://blog.csdn.net/qq_43012160/article/details/96101078

性能评估

先放代码和数据集:

关注微信公众号 datayx  然后回复  文本分类  即可获取。

所有14种算法我都跑了一遍,其中4种算法要么把我电脑跑死机了,要么时间长的令人发指,就没跑完。整理了跑出来的10种算法的正确率和耗时如下:

下面这篇博文有一个区别度更大、更完整的排名:
https://www.kesci.com/home/project/5cbbe1668c90d7002c810f79

这种简单的文本分类练习,不同算法的性能分层还是比较明显的。

知识总结

1.机器学习、集成学习和深度学习:

1)机器学习泛指所有的使机器通过建立和调整模型从而实现特定功能的算法。2)深度学习是运用了多层的人工神经网络(ANN)的机器学习方法。3)集成学习是指通过将多个弱分类器的分类结果进行整合,获得比单个弱分类器更好效果的机器学习方法。

集成学习和深度学习属于机器学习。

2.集成学习的bagging和boosting思想:

bagging中的各个弱分类器取值是相互独立的、无关的,常使用有放回抽样实现。
boosting中的弱分类器是在基分类器/前一个分类器的基础上通过迭代不断优化/调整出来的。

3.三种朴素贝叶斯:

高斯贝叶斯GaussianNB、多项式贝叶斯MultinomialNB和伯努利贝叶斯BernoulliNB。
分别对应数据满足高斯分布(正态分布)、多项式分布和伯努利分布的训练集数据。

1)伯努利贝叶斯即特征的取值只有取和不取两类(0和1),对应朴素贝叶斯公式中,
p(yi)=标签为yi的文本数(句子数)/文本总数(句子总数)
p(xj|yi)=(标签为yi的文本中出现了单词xj的文本数+1)/(标签为yi的文本数+2)。

2)多项式贝叶斯其实就是伯努利贝叶斯的特征取值由简单的0-1扩展为多个值的情况,
p(yi)=标签为yi的文本中的单词总数/训练集中的单词总数
p(xj|yi)=(标签为yi的文本中单词xj的出现次数+1)/(标签为yi的文本中的单词总数+词袋单词种数)。

3)高斯贝叶斯常被用来处理连续数据(如身高)。

4.AdaBoost、lightGBM(GBDT)和xgBoost

AdaBoosting是Boosting框架+任意基学习器算法+指数损失函数。
GBDT是Boosting框架+CART回归树模型+任意损失函数。
AdaBoosting利用前一轮迭代弱学习器的误差率来更新训练集的权重,而GBDT采用梯度下降法:丢掉大梯度的数据而收纳梯度较小的数据加入目标决策树以使树回归(贴近真实值)。
xgBoost的损失函数还考虑了树不能太复杂且要分配均衡:一棵树太复杂,鹤立鸡群,就容易产生弱分类器间的过拟合;一棵树内部的节点间不均衡,就容易导致大节点代表的分类特征/分裂阈值的权重过大,就会产生树内部节点之间的过拟合。

值得注意的是AdaBoosting的误差率、权重和GBDT的梯度都是在弱分类器之间的关系上的,是在分类器迭代时起作用的,而不是用在单个弱分类器的节点分裂层面上的,但其实是有影响的。

这里就要说到损失函数、决策树节点分裂阈值和弱分类器迭代、生成之间的关系了。节点分裂阈值和分类特征的选定是根据损失函数来确定的——假设损失函数为L(w),w为目标决策树的叶节点分裂阈值向量,我们使损失函数最小,求得此时的min(w)作为目标决策树的节点分裂阈值。

在这个过程中我们虽然做的是对于单一决策树的节点分裂特征/阈值选定,但如果一棵树的节点分裂特征/阈值全都确定了,这棵树也就确定了。所以我们就可以通过使损失函数L(w)取最小值的方式,确定w,同时优化决策树的节点分裂(通过w)和不同弱分类器间的迭代优化(通过使L(w)最小)。即通过w确定目标决策树,通过w的取值带动L(w)取最小,进而实现弱分类器的迭代优化。


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

2019最新《PyTorch自然语言处理》英、中文版PDF+源码

《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

《深度学习之pytorch》pdf+附书源码

PyTorch深度学习快速实战入门《pytorch-handbook》

【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

《Python数据分析与挖掘实战》PDF+完整源码

汽车行业完整知识图谱项目实战视频(全23课)

李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

《神经网络与深度学习》最新2018版中英PDF+源码

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

重要开源!CNN-RNN-CTC 实现手写汉字识别

yolo3 检测出图像中的不规则汉字

同样是机器学习算法工程师,你的面试为什么过不了?

前海征信大数据算法:风险概率预测

【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

VGG16迁移学习,实现医学图像识别分类工程项目

特征工程(一)

特征工程(二) :文本数据的展开、过滤和分块

特征工程(三):特征缩放,从词袋到 TF-IDF

特征工程(四): 类别特征

特征工程(五): PCA 降维

特征工程(六): 非线性特征提取和模型堆叠

特征工程(七):图像特征提取和深度学习

如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

Machine Learning Yearning 中文翻译稿

蚂蚁金服2018秋招-算法工程师(共四面)通过

全球AI挑战-场景分类的比赛源码(多模型融合)

斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

python+flask搭建CNN在线识别手写中文网站

中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  


机大数据技术与机器学习工程

 搜索公众号添加: datanlp

长按图片,识别二维码

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

  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种算法(3)

    文本分类的14种算法(3): 部分常用文本分类算法 k临近算法 所谓临近,就是指对于测试样本,找出训练集中与他最相似的一个样本,并将该样本的结果当作测试样本的结果输出.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. 转 Js窗体window大小设置
  2. xslt的简单使用[xml--html]
  3. scala学习 之 环境搭建(一)
  4. Angular 如何使用 InjectionToken 的方式得到当前 location 信息
  5. lambda表达式python啥意思_Python中lambda表达式是什么
  6. 第一季4:Hi3518E_SDK_Vx.x.x.x的SDK目录结构
  7. python对Excel的操作 xlrd、xlwt包详解
  8. 尼尔机械纪元 机器人博士_还记得章鱼博士吊打蜘蛛侠的炫酷机械臂吗?现实版已经研发出来了...
  9. pytorch线性模型 刘二
  10. 第三章 处理机调度与死锁(汤小丹版操作系统笔记) 超全超详细!!!
  11. scrapy框架中Spider源码解析
  12. odom协方差初始化
  13. wps怎么把ppt里的字体一起保存_干货 | 如何快速导出PPT中的文字内容?
  14. python有道翻译接口-Python调用有道翻译api实现翻译
  15. 作文未来的计算机医生300字,未来医生的好帮手作文300字
  16. 5G的NSA和SA,到底啥意思?
  17. Win11图片打不开怎么办?Win11无法打开图片的修复方法
  18. 微信分享自定义多次分享设置
  19. Unity之UGUI详解
  20. (swing读书笔记)Swing Look And Feel(2)

热门文章

  1. vim编辑器操作汇总
  2. AngularJs的UI组件ui-Bootstrap分享(七)——Buttons和Dropdown
  3. 关于phpcms v9中程序传到linux出现模板异常的问题
  4. 初学Golang:Go 的数据类型及常见特性
  5. WebSocket connection to,Error during WebSocket handshake: Unexpected response code: 404
  6. RedHat yum安装配置命令详解
  7. Burp Suite
  8. VBScript函数
  9. python爬虫——批量爬取百度图片
  10. linux备份能压缩吗,Linux备份与压缩命令