第三步:找一个好的数据表示
机器学习模型以数值作为输入 。例如 , 处理图像的模型采用矩阵表示每个颜色通道中的每个像素的强度 。
文章插图
用数字矩阵表示的笑脸
我们的数据集是一个句子列表 , 所以为了让我们的算法从数据中提取模式 , 我们首先需要找到一种方法 , 以我们的算法能够理解的方式来表示它 , 即作为一个数字列表 。
One-hot编码(词袋)
表示计算机文本的一种自然方法是将每个字符单独编码为一个数字 。如果我们要将这个简单的表示形式提供给分类器 , 那么它就必须仅基于我们的数据从零开始学习单词的结构 , 这对于大多数数据集来说是不可能的 。我们需要使用更高层次的方法 。
例如 , 我们可以为数据集中所有惟一的单词构建一个词汇表 , 并为词汇表中的每个单词关联一个惟一索引 。然后 , 每个句子都被表示为一个列表 , 这个列表与我们词汇表中不同单词的数量一样长 。在这个列表的每个索引处 , 我们标记给定单词在我们的句子中出现的次数 。这称为词袋模型 , 因为它是一个完全忽略句子中单词顺序的表示 。如下图所示 。
文章插图
把句子表示成词袋 。左边是句子 , 右边是描述 。向量中的每个索引表示一个特定的单词 。
嵌入的可视化
在“社交媒体灾难”的例子中 , 我们的词汇量大约有20000个单词 , 这意味着每个句子都将被表示为一个长度为20000的向量 。向量中大部分都是0 , 因为每个句子只包含词汇表的一个非常小的子集 。
为了查看我们的嵌入是否捕获了与我们的问题关的信息(即tweet是否与灾难有关) , 将它们可视化并查看类之间是否有很好的分隔是一个好主意 。由于词汇表通常非常大 , 并且不可能在20,000个维度中可视化数据 , 因此PCA等技术将帮助将数据投射到两个维度 。下图所示 。
文章插图
词袋嵌入的可视化
这两个类看起来没有很好地分离 , 这可能是我们的嵌入的一个特性 , 或者仅仅是维数减少的一个特性 。为了了解词袋特征是否有用 , 我们可以训练一个基于词袋特征的分类器 。
第四步: 分类
当第一次处理一个问题时 , 一般的最佳实践是从能够解决该工作的最简单的工具开始 。每当涉及到对数据进行分类时 , 由于其通用性和可解释性 , 最受欢迎的是Logistic Regression 。它的训练非常简单 , 结果是可解释的 , 因为你可以很容易地从模型中提取最重要的系数 。
我们将数据分成两个部分 , 一个是用于拟合模型的训练集 , 另一个是测试集 , 以查看它对不可见数据的泛化程度 。经过训练 , 我们得到了75.4%的准确率 。还可以!猜测出现最多的类别(“无关紧要”)只会给我们57%的答案 。然而 , 即使75%的精度已经足够满足我们的需求 , 我们不能在不理解模型的情况下就发布模型 。
第五步:检查
【手把手教你解决90%的NLP问题】混淆矩阵
第一步是了解我们的模型所犯错误的类型 , 以及哪些错误是最不可取的 。在我们的示例中 , false positive 将不相关的tweet分类为灾难 , false negative 将灾难分类为不相关的tweet 。如果我们的首要任务是对每一个潜在的事件做出反应 , 我们就会想要降低我们的false negative 。然而 , 如果我们在资源上受到限制 , 我们可能会优先考虑较低的假阳性率 , 以减少虚警 。将这些信息可视化的一个好方法是使用混淆矩阵 , 它将我们的模型做出的预测与真实的标签进行比较 。理想情况下 , 矩阵应该是一条从左上角到右下角的对角线(我们的预测与事实完全吻合) 。
推荐阅读
- 求职|报考的岗位没编制?2招教你辨别哪些是编制岗!
- 解决春季食欲不振 推荐6款开胃食谱
- 女人春季重在养肝健脾 专家教你对症治疗
- 春季咳嗽别乱用镇咳药 中医专家教你如何防治
- 不想上班咋办 缓解假期综合症4招解决
- 夏季酷暑难耐 教你自制六款解暑茶
- 夏季科学喝茶能帮助解决身体不适
- 开淘宝店邮费怎么解决 淘宝商品与描述不符合,邮费算谁
- 每天喝几杯茶合适几个小妙招教你健康喝茶
- 手把手教你用PS制作简约清新图标,收藏学习