2. binary classification
Step1:Download the IMDB dataset
Step2:Explore the data
-Convert the integers back to words
Step3:Prepare the data
Step4:Build the model
- Hidden units
- Loss function and optimizer
Step5:Create a validation set
Step6:Train the model
Step7:Evaluate the model
Step8:Create a graph of accuracy and loss over time
3. 基于CNN的文本分类问题
Step1:数据集
-数据集划分:训练集、验证集、测试集
Step2:预处理
-读取文件数据;
-构建词汇表,使用字符级的表示,这一函数会将词汇表存储下来,避免每一次重复处理;
-读取上一步存储的词汇表,转换为{词:id}表示;
-将分类目录固定,转换为{类别: id}表示;
-将一条由id表示的数据重新转换为文字;
-将数据集从文字转换为固定长度的id序列表示;
-为神经网络的训练准备经过shuffle的批次的数据
Step3:CNN卷积神经网络
-参数配置
Step4:CNN模型
Step5:训练与验证
Step6:测试
-观察准确率、精确率、召回率、F1-score
4. 学习基本概念
4.1召回率、准确率
场景:对100个西瓜进行分类(已知生熟各半)
-
召回率(Recall):50个熟西瓜,有多少被分来到熟西瓜这个类别
这个指标是为瓜农准备的,瓜农肯定是想100%把所有的熟西瓜挑出来,送到市场上卖,有多少熟西瓜被挑选出来了,就是用Recall这个指标来衡量了。
如果黑心瓜农直接把所有的西瓜,都当成熟西瓜,那么Recall就是100%了。宁可错杀一千,不能错过一个,就是只注意了Recall。
-
准确率(Accuracy):对所有西瓜分类正确的比率
这个是我们最常用的,但是这个指标有一个缺点,就是当数据分布不均匀的时候,就没办法用于业务了。比如,当生西瓜只有2个,熟西瓜有98个的时候。只要判断所有的都是熟西瓜。准确率就是98%,但是这个模型其实是不合理的。
4.2 ROC曲线、PR曲线——类别不平衡问题中常用的评估方法
4.2.1 ROC曲线
- TPR (真正例率) + FPR (假正例率),关心正例和负例
曲线越靠近左上角,意味着越多的正例优先于负例,模型的整体表现也就越好。
- AUC——用于衡量分类器的效果(即对样本的排序能力): AUC越大,自然排序能力越好,即分类器将越多的正例排在负例之前。
- 绘制方法
- 优缺点
4.2.2 PR曲线
- TPR + Precision,主要关心正例
- AUC——∑n(Rn−Rn−1)Pn∑n(Rn−Rn−1)Pn
- 绘制方法:与ROC曲线类似
- 优缺点
4.2.3 使用场景
- 评估分类器的整体性能:ROC
- 相同的类别分布下正例的预测情况:PR
- 类别不平衡问题:PR
- 有多份数据且存在不同的类别分布 (如:信用卡欺诈问题,其每个月正例和负例的比例可能都不相同)
-如果只想单纯地比较分类器的性能且剔除类别分布改变的影响->ROC
-如果想测试不同类别分布下对分类器的性能的影响->PR