Member-only story
你的机器 “不肯” 学习,怎么办?
给你讲讲机器学习数据预处理中,归一化(normalization)的重要性。
Photo by Rock’n Roll Monkey on Unsplash
前情回顾
Previously, on 玉树芝兰 ……
我给你写了一篇《如何用 Python 和 Tensorflow 2.0 神经网络分类表格数据?》,为你讲解了 Tensorflow 2.0 处理结构化数据的分类。
结尾处,我给你留了一个问题。
把测试集输入模型中,检验效果。结果是这样的:
model.evaluate(test_ds)
准确率接近80%,看起来很棒,对吗?
但是,有一个疑问:
注意这张截图。训练的过程中,除了第一个轮次外,其余4个轮次的这几项重要指标居然都没变!
它们包括:
- 训练集损失
- 训练集准确率
- 验证集损失
- 验证集准确率
所谓机器学习,就是不断迭代改进。
如果每一轮下来,结果都一模一样,这里八成有鬼。
我给了你提示:
看一个分类模型的好坏,不能只看准确率(accuracy)。对于二元分类问题,你可以关注一下 f1 score,以及混淆矩阵(confusion matrix)。
这段时间,你通过思考,发现问题产生原因,以及解决方案了吗?
从留言的反馈来看,有读者能够正确指出了问题。
但很遗憾,我没有能见到有人提出正确和完整的解决方案。
这篇文章,咱们就来谈谈,机器为什么 “不肯学习”?以及怎么做,才能让它 “学得进去”。