Es ist keine Übertreibung zu sagen, dass "Normalisierung" die am häufigsten verwendete Technologie zur Vorverarbeitung von Datensätzen beim maschinellen Lernen ist. Es wird an verschiedenen Stellen verwendet, da durch Anwenden der Normalisierung Zahlen mit unterschiedlichen Abmessungen und Skalen mit derselben Größe verarbeitet werden können. Diese Normalisierung ist nichts anderes als eine dimensionslose Größe, beispielsweise das Teilen der Größe durch einen repräsentativen Wert, damit sie miteinander verglichen werden können. Dieses Mal werde ich über diese Methode berichten.
In diesem Abschnitt wird die am häufigsten verwendete Normalisierungsmethode beschrieben, die einen bestimmten Wert in einem bestimmten Datensatz von 0 bis 1 ausdrückt.
1.1. encode Die Formel, wenn der in einem bestimmten Datensatz zu normalisierende Wert $ \ mathbb {D} $ $ x $ ist, lautet wie folgt.
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} }
Der Python-Code ist unten.
def min_max_encode(self, x, source_min, source_max):
return (x - source_min) / ( source_max - source_min)
1.2. decode Als nächstes wird die Decodierung wie folgt durchgeführt. Hier ist $ x_ {norm} $ der durch Codierung konvertierte Wert.
x = x_{norm}x_{max} - x_{norm}x_{min} + x_{min}
Ausdruckserweiterung:
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} }\\
x_{norm}x_{max} - x_{norm}x_{min} = x - x_{min} \\
x_{norm}x_{max} - x_{norm}x_{min} + x_{min} = x
Der Python-Code ist unten.
def min_max_decode(self, x_norm, source_min, source_max):
return (x_norm * source_max) - (x_norm * source_min) + source_min
Bei Verwendung von "Hard-Tanh" usw. in der Aktivierungsfunktion, wie z. B. Deep Learning, kann der Eingabewert auch in "-1 ~ + 1" umgewandelt werden. Ich möchte auch die Normalisierung zu diesem Zeitpunkt erwähnen.
2.1. encode Die Formel, wenn der in einem bestimmten Datensatz zu normalisierende Wert $ \ mathbb {D} $ $ x $ ist, lautet wie folgt.
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} } \cdot 2 - 1
Der Python-Code ist unten.
def min_max_encode(self, x, source_min, source_max):
return (((x - source_min) / ( source_max - source_min) ) * 2.0) - 1.0
2.2. decode Als nächstes wird die Decodierung wie folgt durchgeführt. Hier ist $ x_ {norm} $ der durch Codierung konvertierte Wert.
x = \dfrac{x_{norm}x_{max} - x_{norm}x_{min} + x_{max} + x_{min}}{2}
Ausdruckserweiterung:
x_{norm} = \dfrac{x - x_{min}}{x_{max} - x_{min} } \cdot 2 - 1 \\
\dfrac{x_{norm} + 1}{2} = \dfrac{x - x_{min}}{x_{max} - x_{min} }\\
\dfrac{(x_{norm} + 1)(x_{max} - x_{min})}{2}=(x - x_{min})\\
\dfrac{x_{norm}x_{max} - x_{norm}x_{min} + x_{max} - x_{min}}{2}+x_{min}=x\\
\dfrac{x_{norm}x_{max} - x_{norm}x_{min} + x_{max} + x_{min}}{2} = x
Der Python-Code ist unten.
def min_max_decode(self, x_norm, source_min, source_max):
return ((x_norm * source_max) - (x_norm * source_min) + source_max + source_min) * 0.5