Normalizacja danych w Pythonie

Normalizacja danych w Pythonie

Normalizacja danych to technika, która pomaga szybciej uzyskać wynik, ponieważ maszyna musi przetwarzać mniejszy zakres danych. Normalizacja nie jest łatwym zadaniem, ponieważ wszystkie wyniki zależą od wyboru metody normalizacji. Jeśli więc wybrałeś niewłaściwą metodę normalizacji danych, możesz uzyskać coś innego od oczekiwań.

Normalizacja zależy również od typu danych, takich jak obrazy, tekst, numeryczne itp. Tak więc każdy typ danych ma inną metodę do normalizacji. W tym artykule skupiamy się na danych numerycznych.

Metoda 1: Korzystanie ze Sklearn

Metoda Sklearn jest bardzo znaną metodą normalizacji danych.

od sklearn importowania wstępnego przetwarzania
importować Numpy jako NP
numpy_array = np.tablica ([2, 3, 5, 6, 7, 4, 8, 7, 6, 17, 18, 19, 2, 1, 89])
znormalizowane_array = preprocessing.normalizuj ([Numpy_Array])
Drukuj (znormalizowany_array)

Wynik:

Importujemy wszystkie wymagane biblioteki, Numpy i Sklearn. Możesz zobaczyć, że importujemy wstępne przetwarzanie ze samej Sklearn. Dlatego jest to metoda normalizacji Sklearn.

Stworzyliśmy tablicę Numpy o wartości całkowitej, która nie jest taka sama.

Nazywaliśmy metodę normalizacyjną z wstępnego przetwarzania i przekazaliśmy Numpy_Array, którą właśnie stworzyliśmy jako parametr.

Widzimy z wyników, wszystkie nasze dane liczb całkowite są teraz znormalizowane między 0 a 1.

Metoda 2: Normalizuj określoną kolumnę w zestawie danych za pomocą Sklearn

Możemy również znormalizować konkretną kolumnę zestawu danych. W tym będziemy o tym omówić.

importować pandy jako PD
od sklearn importowania wstępnego przetwarzania
importować Numpy jako NP
CSVFILE = PD.read_csv („demo.CSV ”)
Drukuj (plik CSV)
value_array = np.tablica (csvfile [„wartość”])
print (value_array)
znormalizowane_array = preprocessing.normalizuj ([wartość_array])
Drukuj (znormalizowany_array)

Wynik:

Importujemy pandy biblioteczne i Sklearn.

Stworzyliśmy manekin pliku CSV, a teraz ładujemy ten plik CSV za pomocą pakietu pandy (read_csv).

Drukujemy ten plik CSV, który niedawno załadowaliśmy.

Czytamy konkretną kolumnę pliku CSV za pomocą NP. tablica i przechowuj wynik do wartości).

Nazwaliśmy metodę normalizacji z wstępnego przetwarzania i przeszliśmy parametr Value_Array.

Metoda 3: Konwertuj na normalizację bez użycia kolumn do tablicy (za pomocą sklearn)

W poprzedniej metodzie 2 omówiliśmy, jak określona kolumna pliku CSV, możemy znormalizować. Ale czasami musimy znormalizować cały zestaw danych, a następnie możemy użyć poniższej metody, w której normalizujemy cały zestaw danych, ale pod względem kolumny (oś = 0). Jeśli wspomniemy o osi = 1, wówczas normalizuje to rzędowe. Oś = 1 jest domyślną wartością.

importować pandy jako PD
od sklearn importowania wstępnego przetwarzania
CSVFILE = PD.read_csv („demo_numeric.CSV ”)
Drukuj (plik CSV)
# Normalizuj dane wzdłuż kolumnowskiej (Oś = 0)
wynik = wstępne przetwarzanie.normalizować (CSVfile, oś = 0)
Drukuj (wynik)

Wynik:

Importujemy pandy biblioteczne i Sklearn.

Stworzyliśmy manekin plik CSV (demo_numeric.CSV), a teraz ładujemy ten plik CSV za pomocą pakietu pandy (read_csv).

Drukujemy ten plik CSV, który niedawno załadowaliśmy.

Teraz przekazujemy cały plik CSV wraz z jeszcze jedną dodatkową oś parametru = 0, który powiedział do biblioteki, że użytkownik chciał znormalizować całą kolumnę całego zestawu danych.

Drukujemy wyniki i normalizujemy dane o wartości od 0 do 1.

Metoda 4: Używanie MinmaxScaler ()

Sklearn zapewnia również inną metodę normalizacji, którą nazwaliśmy Minmaxscalar. Jest to również bardzo popularna metoda, ponieważ jest łatwa w użyciu.

importować pandy jako PD
od sklearn importowania wstępnego przetwarzania
CSVFILE = PD.read_csv („demo_numeric.CSV ”)
Drukuj (plik CSV)
min_max_scalar = preprocessing.MinmaxScaler ()
col = CSVfile.kolumny
wynik = min_max_scalar.Fit_Transform (CSVFILE)
min_max_scalar_df = pd.DataFrame (wynik, kolumny = col)
print (min_max_scalar_df)

Wynik:

Importujemy wszystkie wymagane pakiety.

Stworzyliśmy manekin plik CSV (demo_numeric.CSV), a teraz ładujemy ten plik CSV za pomocą pakietu pandy (read_csv).

Drukujemy ten plik CSV, który niedawno załadowaliśmy.

Zadzwoniliśmy do MinmaxScalar z metody wstępnego przetwarzania i stworzyliśmy obiekt (min_max_scalar). Nie minęliśmy żadnych parametrów, ponieważ musimy znormalizować dane między 0 a 1. Ale jeśli chcesz, możesz dodać swoje wartości, które będą widoczne w następnej metodzie.

Najpierw czytamy wszystkie nazwy kolumn w celu dalszego użycia do wyświetlania wyników. Następnie wywołujemy fit_tranform z utworzonego obiektu min_max_scalar i przekazujemy plik CSV w to.

Otrzymujemy znormalizowane wyniki, które wynoszą od 0 do 1.

Metoda 5: Używanie MinmaxScaler (funkes_range = (x, y))

Sklearn zapewnia również opcję zmiany znormalizowanej wartości tego, co chcesz. Domyślnie normalizują wartość od 0 do 1. Ale istnieje parametr, który nazywaliśmy funkes_range, który może ustawić znormalizowaną wartość zgodnie z naszymi wymaganiami.

importować pandy jako PD
od sklearn importowania wstępnego przetwarzania
CSVFILE = PD.read_csv („demo_numeric.CSV ”)
Drukuj (plik CSV)
min_max_scalar = preprocessing.MinmaxScaler (funkes_range = (0, 2))
col = CSVfile.kolumny
wynik = min_max_scalar.Fit_Transform (CSVFILE)
min_max_scalar_df = pd.DataFrame (wynik, kolumny = col)
print (min_max_scalar_df)

Wynik:

Importujemy wszystkie wymagane pakiety.

Stworzyliśmy manekin plik CSV (demo_numeric.CSV), a teraz ładujemy ten plik CSV za pomocą pakietu pandy (read_csv).

Drukujemy ten plik CSV, który niedawno załadowaliśmy.

Zadzwoniliśmy do MinmaxScalar z metody wstępnego przetwarzania i stworzyliśmy obiekt (min_max_scalar). Ale mijamy także kolejny parametr wewnątrz minmaxscaler (funkes_range). Ta wartość parametru ustawiamy 0 na 2. Więc teraz MinmaxScaler normalizuje wartości danych od 0 do 2.

Najpierw czytamy wszystkie nazwy kolumn w celu dalszego użycia do wyświetlania wyników. Następnie wywołujemy fit_tranform z utworzonego obiektu min_max_scalar i przekazujemy plik CSV w to.

Otrzymujemy znormalizowane wyniki, które wynoszą od 0 do 2.

Metoda 6: Za pomocą maksymalnego absolutnego skalowania

Możemy również normalizować dane za pomocą pandy. Te funkcje są również bardzo popularne w normalizacji danych. Maksymalne skalowanie bezwzględne normalizuje wartości między 0 a 1. Składamy tutaj .Max () i .ABS () Jak pokazano poniżej:

importować pandy jako PD
# Utwórz Demo DataFrame
df = pd.Ramka danych([
[380000, 610, 187.9],
[860000, 705, 237.4],
[430000, 130, 147.0],
[60000, 150, 137.5]],
kolumny = [„a”, „b”, „c”])
Drukuj (DF)
# Znormalizowana metoda
dla kolumny w DF.Kolumny:
df [kolumna] = df [kolumna] / df [kolumna].Abs ().Max ()
Drukuj (DF)

Wynik:

Importujemy bibliotekę pandy.

Utworzyliśmy manekinową ramkę danych i wydrukowaliśmy tenframe DataFrame.

Nazywamy każdą kolumnę, a następnie dzielimy wartości kolumny za pomocą .Max () i .Abs ().

Drukujemy wynik, a na podstawie wyniku potwierdzamy, że nasze dane normalizują się od 0 do 1.

Metoda 7: Za pomocą metody S-Score

Następną metodą, którą zamierzamy omówić, jest metoda Z-Score. Ta metoda konwertuje informacje na dystrybucję. Ta metoda oblicza średnią każdej kolumny, a następnie odejmuje od każdej kolumny i w końcu dzieli ją od odchylenia standardowego. To normalizuje dane między -1 do 1.

importować pandy jako PD
# Utwórz Demo DataFrame
df = pd.Ramka danych([
[380000, 610, 187.9],
[860000, 705, 237.4],
[430000, 130, 147.0],
[60000, 150, 137.5]],
kolumny = [„a”, „b”, „c”])
Drukuj (DF)
# Znormalizowana metoda
dla kolumny w DF.Kolumny:
df [kolumna] = (df [kolumna] - df [kolumna].Mean ()) / df [kolumna].STD ()
Drukuj (DF)

Wynik:

Utworzyliśmy manekinową ramkę danych i wydrukowaliśmy tenframe DataFrame.

Obliczamy średnią kolumny i odejmujemy ją od kolumny. Następnie dzielamy wartość kolumny z odchyleniem standardowym.

Drukujemy znormalizowane dane między -1 do 1.

Wniosek: widzieliśmy różne rodzaje znormalizowanych metod. Wśród nich Sklearn jest bardzo znany ze względu na wspieranie uczenia maszynowego. Ale zależy to od wymagań użytkownika. Czasami wystarcza funkcja pand do normalizacji danych. Nie możemy powiedzieć, że są tylko powyżej normalizacji metod. Istnieje wiele metod wykonywania normalizacji danych, które zależą również od typu danych, takich jak obrazy, numeryczne, tekstowe itp. Koncentrujemy się na tych liczbowych danych i Pythonie.