2

Say I used the following to normalize my data set to [1, -1]:

Public Function NormalizeData(values As Double()) As Double()
    Dim min = values.Min
    Dim max = values.Max
    Return values.Select(Function(val) 2 * (val - min) / (max - min) - 1).ToArray
End Function

How would I go about de-normalizing a value based on that data set:

Public Function DeNormalizeData(baseData As Double(), value As Double) As Double
        Dim min = baseData.Min
        Dim max = baseData.Max
        Return '??
End Function
4

1 回答 1

2

求函数的倒数:dn=denormalized, n=normalized

n= 2*((dn-min)/(max-min)) - 1 两边加1

n+1=2*((dn-min)/(max-min))除以 2

(n+1)/2=(dn-min)/(max-min)乘以(最大-最小)

((max-min)*(n+1))/2 = dn - min将 min 添加到两者

dn =(((max-min)*(n+1))/2)+min

您现在具有反规范化功能,正如您所见,您需要保存最大值和最小值。

public function DeNormalize(n as double, min as double, max as double) as double 
    return (((max-min)*(n+1))/2)+min
end function
于 2017-08-21T05:29:55.163 回答