[PYTHON] Standardisieren Sie den Vektor auf einen beliebigen Bereich

Es gibt viele Möglichkeiten, einen geeigneten Vektor $ v $ in den Bereich $ [0, 1] $ und $ [-1, 1] $ zu standardisieren. Erstellen Sie nun $ v $ als Vektor mit Zufallszahlen wie folgt:

random_vector.py



import random
random.seed(1)
v = [random.random() for _ in range(10)]

Im obigen Python-Code wird $ v $ angegeben, zum Beispiel:

figure_1.png

So standardisieren Sie diesen Vektor in den Bereich $ [0,1] bzw. [-1,1] $:

-Standardisiert auf $ [0,1] $


\frac{v - min(v)}{max(v) - min(v)}

-Standardisiert auf $ [-1,1] $


\frac{2v - (max(v) + min(v))}{max(v)-min(v)}

Dadurch wird $ v $ linear standardisiert.

figure_2.png

Es gibt jedoch Zeiten, in denen Sie einen Vektor auf einen beliebigen Bereich ** standardisieren möchten [newmin, newmax].

Berechnen Sie in einem solchen Fall zunächst zwei Konstanten $ a und b $.


a = (newmax - newmin)/(max(v) - min(v)) \\
b = newmax - a*max(v)

Zu diesem Zeitpunkt gilt das Gleiche für $ b = newmin --a * min (v) $.

Erstellen Sie schließlich eine lineare Funktion ** mit ** $ a $ kippen und $ b $ als Abschnitt und ersetzen Sie den ursprünglichen Vektor $ v $, um einen neuen linear standardisierten Vektor zu erhalten.


normalized\ vector = a*v + b

Dies ist die allgemeine Form zur linearen Standardisierung von Vektoren.

Hier ist der Code, der den Vektor $ v $ im Bereich [newmin, newmax] in Python und Matlab standardisiert.


Python

normalize.py



def normalize(v,newmin,newmax):
    a = (newmax - newmin)/(max(v) - min(v))
    b = newmax - a*max(v)
        
    return [a*i + b for i in v]


Matlab

normalize.m



function [normalized_vector] = normalize(v, newmin, newmax)

a = (newmax - newmin)/(max(v) - min(v));
b = newmax - max(v)*a;

normalized_vector = a*v + b;


Recommended Posts

Standardisieren Sie den Vektor auf einen beliebigen Bereich
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Der Weg nach Pythonista
Der Weg nach Djangoist
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Verwendung des Generators
Der Weg zum Herunterladen von Matplotlib
Wie benutzt man den Dekorateur?
So erhöhen Sie die Achse
So starten Sie die erste Projektion