【发布时间】:2021-03-27 02:13:54
【问题描述】:
我正在尝试使用 Python Keras CNN(Tensorflow 作为主干)解决回归问题,我尝试根据获取的 8 维卫星图像(23x45 像素)预测单个 y 值来自 Google Earth Engine 使用他们的 Python API。我目前有 280 张图像,我使用翻转和随机噪声来扩充以获得 2500 张图像。数据经过标准化和标准化,我已经删除了异常值和只有零的图像。
我已经测试了许多 CNN 架构,例如: (Convolution2D(4,4,3),MaxPooling2D(2,2),dense(50),dropout(0.4),dense(30),dropout(0.4),dense(1)
这会导致一种奇怪的行为,其中预测值主要位于两个不同的组或集群中(每个组的方差很小)。真实值的方差要高得多。见下图。
我选择不发布任何代码 sn-ps,因为我的问题更笼统。什么可能导致这种聚类预测?有什么好的常用技巧来改善结果吗? 我尝试使用来自 SciKit-Learn 的普通神经网络和回归工具来解决这个问题,方法是将图像展平为一个长数组(长度 23x45x8 = 8280)。这不会导致聚类,尽管准确性仍然很低。我认为这是由于数据不足或不适当造成的。
Plotted Truth (x) vs Prediction (y) which shows that the prediction is heavily clustered
【问题讨论】:
标签: python machine-learning keras regression conv-neural-network