2017-08-21 5 views
2

Dites je ce qui suit pour normaliser mes ensemble de données [1, -1]:dénormalisation Valeur Sur la base de données Set VB.NET

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 

Comment pourrais-je aller sur dénormaliser une valeur basée sur cette ensemble de données:

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

Répondre

2

Trouver l'inverse de votre fonction: dn = dénormalisées, n = normalisé

n= 2*((dn-min)/(max-min)) - 1 ajouter 1 sur les deux côtés

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

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

((max-min)*(n+1))/2 = dn - min ajouter min à la fois

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

Vous avez maintenant la fonction pour dénormaliser, comme vous pouvez le voir vous devez enregistrer les valeurs max et min.

public function DeNormalize(n as double, min as double, max as double) as double 
    return (((max-min)*(n+1))/2)+min 
end function