目录
分类基础
文本分类任务
分类算法
评估
分类基础
输入:
- 文本:通常表示成特征的向量
- 所有类别:是分类的,不是连续的(回归)或有序的(排名)
输出:
- 预测的类别
文本分类任务
一些常见的例子:
- 主题分类
- 动机:图书馆科学,信息检索
- 类别:话题类别,比如,‘工作’,或者‘国际新闻’
- 语料库示例:
- 路透社新闻语料库 (RCV1; NLTK)
- Pumbed摘要
- hash带主题标签的推文
- 情感分析
- 动机:意见的挖掘,业务分析
- 类别:积极/消极/中立
- 语料库示例:
- 电影评论数据集(在 NLTK 中)
- SEMEVAL Twitter 极性数据集
- 母语识别
- 动机:法医语言学、教育应用
- 类别:作者的第一语言,比如中文
- 语料库示例:
- 托福/雅思论文语料库
- 自然语言推理
- 动机:语言理解
- 类别:蕴含,矛盾,中性
- 语料库示例:
- SNLI、MNLI
- 自动事实核查
- 转述
构建一个文本分类器流程:
1. 确定感兴趣的任务
2. 收集合适的语料库
3.进行标注
4. 特征选择
5. 选择机器学习算法
6. 使用保留的数据集训练模型和调整超参数
7. 根据需要重复前面的步骤
8. 训练最终模型
9. 在测试数据集上评估模型
分类算法
挑选算法:
- 偏差与方差
- 偏差:我们在模型中所做的假设
- 方差:对训练集的敏感性
- 基本假设,例如独立性
- 复杂性
- 速度
接下来,简单介绍几种常见的算法:
- 朴素贝叶斯
- 概念:查找贝叶斯定律下具有最高可能性的类
- 朴素指的是假设特征是独立的
- 优点:
- 快速训练和分类
- 稳健、低方差 → 适用于低数据情况
- 独立假设正确时的最优分类器
- 实施起来极其简单。
- 缺点:
- 独立性假设很少成立
- 与大多数同类方法相比精度较低情况
- 看不见的类/特征组合所需的平滑
- 逻辑回归
- 概念:是个分类模型;一个线性模型,但使用 softmax “挤压” 来获得有效概率
- 优点:
- 不像朴素贝叶斯那样不会被多样化困惑,
相关特征 → 更好的性能。
- 缺点:
- 训练缓慢;
- 需要特征缩放
- 需要大量数据才能在实践中良好运行
- 选择正则化策略很重要,因为过拟合是一个大问题
- 支持向量机
- 概念:找到以最大边距分隔训练数据的超平面
- 优点:
- 快速准确的线性分类器
- 可以使用内核技巧进行非线性处理
- 适用于庞大的特征集
- 缺点:
- 多类分类笨拙
- 需要特征缩放
- 对类别不平衡的处理不佳
- 可解释性
- K近邻算法
- 概念:基于特征空间中 k-nearest 训练样本的多数类进行分类
- 优点:
- 简单但非常有效
- 无需训练
- 固有的多类
- 具有无限数据的最优分类器
- 缺点:
- 必须选择k
- 类别不平衡的问题
- 通常很慢(为了寻找邻居)
- 必须仔细选择特征
- 决策树
- 概念:构建一个树,其中节点对应于对单个特征的测试
- 优点:
- 快速构建和测试
- 特征缩放无关
- 适用于小型特征集
- 处理非线性可分问题
- 缺点:
- 在实践中,不太容易解释
- 高度冗余的子树
- 对于大型特征集没有竞争力
- 随机森林
- 概念:集成分类器
- 优点:
- 通常比决策树更准确、更稳健
- 适用于中等特征集的出色分类器
- 训练很简单并行
- 缺点:
- 在实践中,不太容易解释
- 对于大型特征集没有竞争力
- 神经网络
- 概念:一组互连的节点,通常按层排列
- 优点:
- 在 NLP 和视觉方面非常强大的主导方法
- 很少使用特征工程
- 缺点:
- 不是现成的分类器
- 超参数多,难以优化
- 训练慢
- 容易过拟合
评估
| 预测标签 | |
真实标签 | A | B |
A | 79 | 13 |
B | 8 | 10 |
Accuracy = 正确的分类/总分类= (79+10)/(79+13+8+10)
B 假定为 positive 类
Precision = 正确分类的B(True Positive)/分类为B的所有(TP+False Positive) = 10/(10+13)
Recall = 正确分类的B(True Positive)/真实为B的所有(TP+False Negative) = 10/(10+8)
F1-SCORE = 2*Precision*Recall/(Precision+Recall)
在用于多类时,指标会有以下两种:
- Macro-average(宏平均):各个类别的平均 F 值
- 微平均:使用计数总和计算 F-score(= 多类问题的准确性)
今天就到这里,感谢大家观看,辛苦,有问题,欢迎随时评论探讨。