Udostępnij za pośrednictwem


Normalizowanie danych

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Zmienia skalowanie danych liczbowych w celu ograniczenia wartości zestawów danych do standardowego zakresu

Kategoria: Przekształcanie danych / skalowanie i zmniejszanie

Uwaga

Dotyczy: tylko Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w projektancie Azure Machine Learning.

Omówienie modułu

W tym artykule opisano sposób używania modułu Normalize Data (Normalize Data) w programie Machine Learning Studio (wersja klasyczna), aby przekształcić zestaw danych za pomocą normalizacji.

Normalizacja to technika często stosowana w ramach przygotowywania danych do uczenia maszynowego. Celem normalizacji jest zmiana wartości kolumn liczbowych w zestawie danych w celu użycia wspólnej skali bez zniekształcania różnic w zakresach wartości lub utraty informacji. Normalizacja jest również wymagana, aby niektóre algorytmy prawidłowo modelować dane.

Załóżmy na przykład, że wejściowy zestaw danych zawiera jedną kolumnę z wartościami od 0 do 1, a drugą kolumną z wartościami od 10 000 do 100 000. Duża różnica w skali liczb może powodować problemy podczas próby połączenia wartości jako funkcji podczas modelowania.

Normalizacja pozwala uniknąć tych problemów, tworząc nowe wartości, które utrzymują ogólny rozkład i współczynniki w danych źródłowych, przy jednoczesnym zachowaniu wartości w skali stosowanej we wszystkich kolumnach liczbowych używanych w modelu.

Ten moduł oferuje kilka opcji przekształcania danych liczbowych:

  • Możesz zmienić wszystkie wartości na 0–1 skalę lub przekształcić wartości, reprezentując je jako klasyfikacje percentylu, a nie wartości bezwzględne.
  • Normalizację można zastosować do jednej kolumny lub do wielu kolumn w tym samym zestawie danych.
  • Jeśli musisz powtórzyć eksperyment lub zastosować te same kroki normalizacji do innych danych, możesz zapisać kroki jako przekształcenie normalizacji i zastosować go do innych zestawów danych, które mają ten sam schemat.

Ostrzeżenie

Niektóre algorytmy wymagają normalizacji danych przed rozpoczęciem trenowania modelu. Inne algorytmy wykonują własne skalowanie lub normalizację danych. Dlatego podczas wybierania algorytmu uczenia maszynowego do użycia w tworzeniu modelu predykcyjnego należy zapoznać się z wymaganiami dotyczącymi danych algorytmu przed zastosowaniem normalizacji do danych treningowych.

Jak skonfigurować normalizację danych

Za pomocą tego modułu można zastosować tylko jedną metodę normalizacji. W związku z tym ta sama metoda normalizacji jest stosowana do wszystkich wybranych kolumn. Aby użyć różnych metod normalizacji, użyj drugiego wystąpienia znormalizowanych danych.

  1. Dodaj moduł Normalize Data (Normalizacja danych ) do eksperymentu. Moduł można znaleźć w obszarze Machine Learning Studio (wersja klasyczna) w obszarze Przekształcanie danych w kategorii Skalowanie i zmniejszanie.

  2. Połączenie zestaw danych zawierający co najmniej jedną kolumnę wszystkich liczb.

  3. Użyj selektora kolumn, aby wybrać kolumny liczbowe do normalizacji. Jeśli nie wybierzesz poszczególnych kolumn, domyślnie zostaną uwzględnione wszystkie kolumny typu liczbowego w danych wejściowych, a ten sam proces normalizacji zostanie zastosowany do wszystkich wybranych kolumn.

    Może to prowadzić do dziwnych wyników, jeśli dołączysz kolumny liczbowe, które nie powinny być znormalizowane! Zawsze uważnie sprawdzaj kolumny.

    Jeśli nie wykryto żadnych kolumn liczbowych, sprawdź metadane kolumny, aby sprawdzić, czy typ danych kolumny jest obsługiwanym typem liczbowym.

    Porada

    Aby upewnić się, że kolumny określonego typu są dostarczane jako dane wejściowe, spróbuj użyć modułu Select Columns in Dataset (Wybieranie kolumn w zestawie danych ) przed znormalizowanie danych.

  4. Użyj wartości 0 dla kolumn stałych po zaznaczeniu: wybierz tę opcję, gdy dowolna kolumna liczbowa zawiera jedną niezmienną wartość. Dzięki temu takie kolumny nie są używane w operacjach normalizacji.

  5. Z listy rozwijanej Metoda przekształcania wybierz pojedyncze funkcje matematyczne, które mają być stosowane do wszystkich wybranych kolumn.

    • Zscore: konwertuje wszystkie wartości na wynik z.

      Wartości w kolumnie są przekształcane przy użyciu następującej formuły:

      normalization using z-scores

      Średnie i odchylenie standardowe są obliczane osobno dla każdej kolumny. Używane jest odchylenie standardowe populacji.

    • MinMax: minimalna maksymalna normalizator liniowo zmienia każdą funkcję na interwał [0,1].

      Przeskalowanie do interwału [0,1] odbywa się przez przesunięcie wartości każdej funkcji tak, aby minimalna wartość wynosi 0, a następnie dzieliła przez nową maksymalną wartość (czyli różnicę między oryginalnymi maksymalnymi i minimalnymi wartościami).

      Wartości w kolumnie są przekształcane przy użyciu następującej formuły:

      normalization using the min-max function

    • Logistyka: wartości w kolumnie są przekształcane przy użyciu następującej formuły:

      formula for normalization by logistic function

    • LogNormal: ta opcja konwertuje wszystkie wartości na skalę lognormalną.

      Wartości w kolumnie są przekształcane przy użyciu następującej formuły:

      formula log-normal distribution

      W tym przypadku μ i σ są parametrami rozkładu obliczonymi empirycznie na podstawie danych jako maksymalnymi oszacowaniami prawdopodobieństwa dla każdej kolumny oddzielnie.

    • TanH: Wszystkie wartości są konwertowane na tangens hiperboliczny.

      Wartości w kolumnie są przekształcane przy użyciu następującej formuły:

      normalization using the tanh function

  6. Uruchom eksperyment lub kliknij dwukrotnie moduł Normalize Data (Normalizacja danych ) i wybierz pozycję Run Selected (Uruchom wybrane).

Wyniki

Moduł Normalize Data (Normalizacja danych ) generuje dwa dane wyjściowe:

  • Aby wyświetlić przekształcone wartości, kliknij prawym przyciskiem myszy moduł, wybierz pozycję Przekształcony zestaw danych, a następnie kliknij pozycję Wizualizuj.

    Domyślnie wartości są przekształcane. Jeśli chcesz porównać przekształcone wartości z oryginalnymi wartościami, użyj modułu Dodaj kolumny , aby ponownie połączyć zestawy danych i wyświetlić kolumny obok siebie.

  • Aby zapisać przekształcenie, aby zastosować tę samą metodę normalizacji do innego podobnego zestawu danych, kliknij prawym przyciskiem myszy moduł, wybierz pozycję Funkcja przekształcenia, a następnie kliknij polecenie Zapisz jako przekształć.

    Następnie możesz załadować zapisane przekształcenia z grupy Przekształcenia w okienku nawigacji po lewej stronie i zastosować je do zestawu danych z tym samym schematem przy użyciu polecenia Zastosuj przekształcenie.

Przykłady

Przykłady normalizacji używanej w uczeniu maszynowym można znaleźć w galerii sztucznej inteligencji platformy Azure:

  • Przewidywanie ryzyka kredytowego: W tym przykładzie normalizacja jest stosowana do wszystkich danych liczbowych z wyjątkiem kolumny klasy, oceny ryzyka kredytowego. W tym przykładzie użyto przekształcenia tanh , który konwertuje wszystkie cechy liczbowe na wartości w zakresie od 0 do 1.

Uwagi techniczne

Ten moduł obsługuje tylko standardowe metody normalizacji wymienione w sekcji Instrukcje i nie obsługuje normalizacji macierzy ani innych złożonych przekształceń.

Jeśli musisz utworzyć niestandardową metodę normalizacji, możesz użyć modułów Execute R Script (Wykonywanie skryptu języka R ) lub Execute Python Script (Wykonywanie skryptu języka Python ) w celu obliczenia i zastosowania przekształcenia.

Algorytmy, które stosują normalizację

Normalizacja funkcji w celu korzystania ze wspólnej skali jest ogólnym wymaganiem dla wielu algorytmów uczenia maszynowego.

  • W algorytmach klasyfikacji liniowej wystąpienia są postrzegane jako wektory w przestrzeni wielowymiarowej. Ponieważ zakres wartości danych pierwotnych jest bardzo różny, niektóre funkcje celu nie działają prawidłowo bez normalizacji. Jeśli na przykład jedna z cech ma szeroki zakres wartości, odległości między punktami podlegają tej konkretnej funkcji.

    W związku z tym cechy liczbowe powinny być znormalizowane tak, aby każda funkcja przyczyniała się w przybliżeniu proporcjonalnie do ostatecznej odległości. Może to zapewnić znaczne korzyści z szybkości i dokładności.

  • W przypadku korzystania z algorytmów Regresja logistyczna i Averaged Perceptron domyślnie funkcje są znormalizowane przed trenowaniem.

Dalsze informacje i zasoby

Jeśli nie masz pewności, jakiego typu normalizacja odpowiada Twoim danym, zobacz następujące zasoby:

Oczekiwane dane wejściowe

Nazwa Typ Opis
Zestaw danych Tabela danych Wejściowy zestaw danych

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Metoda przekształcania dowolny TransformationMethods ZScore Wybierz metodę matematyczną używaną do skalowania
Kolumny do przekształcenia dowolny KolumnaWybieranie Liczbawszystkie Zaznacz wszystkie kolumny, do których ma zostać zastosowane wybrane przekształcenie

Dane wyjściowe

Nazwa Typ Opis
Przekształcony zestaw danych Tabela danych Przekształcony zestaw danych
Funkcja przekształcania ITransform, interfejs Definicja funkcji przekształcania, która może być stosowana do innych zestawów danych

Wyjątki

Wyjątek Opis
Błąd 0001 Wyjątek występuje, jeśli nie można odnaleźć co najmniej jednej określonej kolumny zestawu danych.
Błąd 0003 Wyjątek występuje, jeśli co najmniej jeden z danych wejściowych ma wartość null lub jest pusty.
Błąd 0017 Wyjątek występuje, jeśli co najmniej jedna określona kolumna ma typ nieobsługiwany przez bieżący moduł.
Błąd 0020 Wyjątek występuje, jeśli liczba kolumn w niektórych zestawach danych przekazanych do modułu jest za mała.
Błąd 0021 Wyjątek występuje, jeśli liczba wierszy w niektórych zestawach danych przekazanych do modułu jest za mała.

Aby uzyskać listę błędów specyficznych dla modułów programu Studio (klasycznych), zobacz Machine Learning Kody błędów.

Aby uzyskać listę wyjątków interfejsu API, zobacz Machine Learning kody błędów interfejsu API REST.

Zobacz też

Skalowanie i zmniejszanie