python - 我应该使用 tf.keras.utils.normalize 来标准化我的目标吗?

标签 python tensorflow keras normalization

研究预测分数的机器学习模型回归问题。

通常,当使用缩放器进行归一化时,例如 MinMaxScaler ,您将获得对缩放器的引用,以便稍后您可以将数据反转回其原始值。

当使用tf.keras.utils.normalize时,(据我所知)是以下数据的 L2 标准化:

    val target
0   1   10
1   2   20
2   3   30
3   4   40
4   5   50

您将得到以下输出:

    val     target
0   0.13484 0.13484
1   0.26968 0.26968
2   0.40452 0.40452
3   0.53936 0.53936
4   0.67420 0.67420

所以我认为不可能回到原来的10,20,30,40,50系列

问:如果我想将预测目标反转回原始比例,是否应该使用 MinMaxScalar 单独对分数进行归一化?

最佳答案

神经网络激活通常希望其输入标准化。规范化网络中节点的输入有助于防止所谓的梯度消失(和爆炸)。

通常,批量归一化是对输入执行的,但它有其自身的缺点,例如由于额外的计算而导致预测速度较慢。相反,您可以使用您提到的任何其他标准化技术。

在您的示例中,不要规范化输入和目标,而是仅规范化输入,如下所述。

数据框:

val target
0   1   10
1   2   20
2   3   30
3   4   40
4   5   50

标准化输入:

df["val"] = tf.keras.utils.normalize(df["val"].values,axis=-1, order=2 )[0]

输入标准化数据框:

    val target
0   0.13484 10
1   0.26968 20
2   0.40452 30
3   0.53936 40
4   0.67420 50

关于python - 我应该使用 tf.keras.utils.normalize 来标准化我的目标吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61710791/

相关文章:

python - 如何将 Keras 模型进度保存到文件中?

tensorflow - 如何使用Keras中的tile功能?

python - 如何在 python 中以 5 分钟的间隔存储时间戳

python - 查找具有不同强度/亮度的相似图像

python - Tensorflow 的决策森林如何处理分类数据?

python - 如何将模型的输入张量传递给损失函数?

python - numpy.sum 性能取决于轴

python - 为什么这种基于条件的列表理解不起作用?

python - tensorflow 中 tf.estimator.DNNRegressor 的平均损失与 MSE 相同吗?

python - Keras 对称性问题中的连体网络