首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么深度学习模式不符合加州房价数据呢?

为什么深度学习模式不符合加州房价数据呢?
EN

Stack Overflow用户
提问于 2019-06-23 05:07:31
回答 2查看 717关注 0票数 1

我刚开始深造,一般都是机器学习。我试图通过将8个特性中的每一个特性传递到一个5层网络和关于价格输出的培训来处理加利福尼亚房价数据集。我使用MSE损失和准确度作为度量,以2000年代为标准。损失开始是可以理解的大,减少到一定程度,并被困在相同的价值。对于所有的2000个历代,精度都保持在0。

我在网上看到了一些解决方案,比如把房间总数除以家庭数量来找出每个家庭的平均房间数。我看到这样的特性工程可以帮助模型更快地收敛,但是我希望模型能够在没有特性工程的情况下收敛。

据我所知,神经网络是函数逼近器,它从数据集的输入到输出建立一个函数。理想情况下,我希望它也能找到复杂的特性,比如在线解决方案中手工计算的特性。我有这些期望是错的吗?模型不收敛的原因是什么?

代码语言:javascript
复制
train_data = pd.read_csv('./sample_data/california_housing_train.csv', sep=',')
test_data = pd.read_csv('./sample_data/california_housing_test.csv', sep=',')

model = tf.keras.models.Sequential([
  layers.Dense(8),
  layers.Dense(5, activation=tf.nn.relu),  
  layers.Dense(7, activation=tf.nn.relu),  
  layers.Dense(5, activation=tf.nn.relu),
  layers.Dropout(0.2),
  layers.Dense(1)
])

model.compile(optimizer='adam', loss='mean_squared_error', shuffle=True, metrics=['accuracy'])

model.fit(train_data.values[:, 0:8], train_data.values[:, 8], epochs=2000)

输出

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-23 06:48:49

对于回归问题,准确性不是一个有效的度量。当损失为均方误差(MSE)时,什么函数定义Keras的准确性?

另外,请使用Min或零均值/单位方差归一化来规范输入数据.此外,输出数据的学习范围( 10,000次)非常大,因此,可以将输出值除以10,000(在预测期间可以将此值乘以)。这些变化将有助于网络更快地融合。网络的容量可能也需要增加。

数值数据的不同类型的规范化:https://developers.google.com/machine-learning/data-prep/transform/normalization

票数 4
EN

Stack Overflow用户

发布于 2019-06-23 06:51:19

在这里,您正在解决一个回归问题,因此精度不能用作评估模型的标准。相反,您可以使用性能度量,如maemapemse,它们更适合于评估预测连续目标变量的模型。

而且,我不会说你的模型没有收敛,如果你看损失在不断减少,所以收敛没有问题,你只需要把你的评估措施改变为我上面提到的东西。

有关如何实施这些性能度量的详细信息,请参阅如何使用度量与Python中的Keras进行深度学习度量的使用

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56721196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档