如何将归一化的新数据输入到保存的训练神经网络模型中,然后对结果进行反演



我正在基于此数据集按国家对人群进行研究:https://www.kaggle.com/tanuprabhu/population-by-country-2020

我了解到在训练之前对数据集进行规范化是最好的做法,所以我使用sklearn.preprrocessing MinMaxScaler对数据进行了规范化。在保存模型之前,我使用规范化的数据集对模型进行了训练。

接下来,我想对新数据进行预测。因此,我创建了一个与训练数据集格式相似的输入文件。新的输入数据只有2行(而训练数据集有200行(。

我遇到的问题是,由于新数据集中的数据数量很少,minmaxscaler返回了1和0。1代表较大的数字,0代表较小的数字。当我将这些输入输入到模型中时,它给出的预测与预期值相差太远。

我还尝试将mixmaxscaler应用于新数据,输入到模型中,然后反转结果。尽管如此,我得到的值与预期值相差太远。

我还尝试在不应用mixmaxscalar的情况下训练模型。我在这个模型中得到了更好的结果,但只有当我用更大的值更改某些列时,预测结果才会得到很好的响应。值较小的列没有很好的响应,而在现实世界中,我知道这个因素对预测结果非常重要。

我哪里出了问题?关于处理训练模型的输入的任何示例代码都是非常值得赞赏的。

为了测试正在发生的事情,我建议在缩放之前先获取一行训练数据。应用标量,然后将结果用作预测的数据。您应该得到与列车数据结果值相同的预测结果。应用标量时,查看它是否生成与该行的训练数据中相同的值。确保您使用的是适合训练集的标量。不要将标量适配到新数据中,只需使用它来转换数据即可。

最新更新