Python 我应该使用tf.keras.utils.normalize来规范化我的目标吗?
处理预测分数的机器学习模型回归问题 通常,例如,在使用定标器进行规范化时,您会获得对定标器的引用,以便以后可以将数据反转回其原始值 使用时,这是(据我所知)以下数据的L2规范化:Python 我应该使用tf.keras.utils.normalize来规范化我的目标吗?,python,tensorflow,keras,normalization,Python,Tensorflow,Keras,Normalization,处理预测分数的机器学习模型回归问题 通常,例如,在使用定标器进行规范化时,您会获得对定标器的引用,以便以后可以将数据反转回其原始值 使用时,这是(据我所知)以下数据的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
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系列
Q:如果我想将预测目标反转回其原始量表,我是否应该使用MinMaxScalar单独标准化分数?神经网络激活通常与要标准化的输入一样。规范化网络中节点的输入有助于防止所谓的消失(和爆炸)梯度
通常,对输入执行批标准化,但它也有其自身的缺点,如由于额外计算而导致预测速度较慢。相反,您可以使用您提到的任何其他规范化技术
在您的示例中,不要同时规范化输入和目标,而是只规范化输入,如下所述
数据帧:
val target
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
val target
0 0.13484 10
1 0.26968 20
2 0.40452 30
3 0.53936 40
4 0.67420 50
规范化输入:
df["val"] = tf.keras.utils.normalize(df["val"].values,axis=-1, order=2 )[0]
输入规范化数据帧:
val target
0 1 10
1 2 20
2 3 30
3 4 40
4 5 50
val target
0 0.13484 10
1 0.26968 20
2 0.40452 30
3 0.53936 40
4 0.67420 50
您需要规范化输入,而不是输出。所以,target
根本不应该被规范化?但是我不能在最后一层上使用sigmoid函数。此外,我想将我所有的核范围定在0-1之间。sigmoid函数用于分类问题,它是0还是1。但是在回归问题中,你需要处理一个连续的数字范围。但是Sigmoid范围是0-1,如果分数在0-1之间,我不能在最后一层使用它吗?好的,这是我的观点。在[0,1]上定义输出的所有实数值都定义了sigmoid。它对于输出为0
或1
的二进制分类非常有用。在回归中,这真的很伤人。。为什么?因为sigmoid(10)=0.9999
,和sigmoid(20)=0.9999
,sigmoid(30)=0.9999
。。。这就是为什么