python - google tensorflow 文档有什么问题?
问题描述
我正在关注https://www.tensorflow.org/tutorials/load_data/csv文档并遇到了一个非常令人沮丧的问题。在本教程中,模型预测泰坦尼克号的幸存者。那里教程的最终预测值根本不好(或者我认为是这样)。
- 预测生存率:-236.86% | 实际结果:幸存
- 预测生存率:-100.17% | 实际结果:死亡
- 预测生存率:-238.74% | 实际结果:死亡
- 预测生存率:147.69% | 实际结果:死亡
- 预测生存率:12.94% | 实际结果:幸存
为什么模型预测 12.94% 为 SURVIVED 和 147.69% 为 DIED?这里发生了什么?
解决方案
问题是最后Dense
一层应该有一个激活函数sigmoid
,表明结果必须在 0 和 1 之间。这就是我们想要的,因为我们在预测一个概率。没有这个,输出可以取任何正值或负值,因此你可以看到奇怪的值。
model = tf.keras.Sequential([
preprocessing_layer,
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(1,activation='sigmoid'),
])
当您再次使用 sigmoid 运行代码时,结果是
预测生存率:100.00% | 实际结果:死亡
预测生存率:17.95% | 实际结果:幸存
预测生存率:99.80% | 实际结果:死亡
预测生存率:0.00% | 实际结果:死亡
预测生存率:10.65% | 实际结果:死亡
这更有意义。
推荐阅读
- c# - 在 DataGridView 中以编程方式隐藏多列非常慢
- azure - Azure 容器服务 (ACS) - 如何安全地重新启动工作程序节点?
- r - R- ggplot:一个坐标系中的五个图
- android - 为什么我的活动在设备上停止
- java - 在 Java 中,仅使用 PEM 文件创建 SSLContext 的最简单方法是什么?
- git - 从 GitHub Desktop 历史记录中恢复文件
- r - 强制大向量的错误?
- javascript - AngularJS ng-click 仅适用于第二次单击
- python - Spyder Debug - 如何修复代码并继续单步执行
- postgresql - 如何在 PostgreSQL 中创建序列以将 nextval 添加到表已存在的 id 列?