Udostępnij za pośrednictwem


Grupowanie danych w pojemniki

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.

Umieszcza dane liczbowe w pojemnikach

Kategoria: 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, jak używać modułu Grupuj dane do pojemników w programie Machine Learning Studio (wersja klasyczna), aby grupować liczby lub zmieniać rozkład ciągłych danych.

Moduł Grupuj dane do pojemników obsługuje wiele opcji kwantowania danych. Możesz dostosować sposób ustawiania krawędzi kosza i sposobu uwzględnienia wartości w pojemnikach. Można na przykład:

  • Ręcznie wpisz serię wartości, które mają służyć jako granice pojemnika.
  • Oblicz wyniki entropii, aby określić wartości informacji dla każdego zakresu, aby zoptymalizować pojemniki w modelu predykcyjnym. + Przypisz wartości do pojemników przy użyciu kwantyli lub rang percentylu.
  • Można również kontrolować liczbę wartości w każdym pojemniku.
  • Wymuś równomierny rozkład wartości do pojemników.

Więcej informacji na temat kwantowania i grupowania

Kwantowanie lub grupowanie danych (czasami nazywanych kwantyzacją) jest ważnym narzędziem do przygotowywania danych liczbowych do uczenia maszynowego i jest przydatne w takich scenariuszach:

  • Kolumna liczb ciągłych ma zbyt wiele unikatowych wartości do efektywnego modelowania, więc automatycznie lub ręcznie przypiszesz wartości do grup, aby utworzyć mniejszy zestaw zakresów dyskretnych.

    Na przykład można użyć wyników entropii generowanych przez grupowanie danych do pojemników , aby zidentyfikować optymalne grupowanie wartości danych i użyć tych grup jako funkcji w modelu.

  • Zastąp kolumnę liczb wartościami kategorii reprezentującymi określone zakresy.

    Na przykład możesz pogrupować wartości w kolumnie wiekowej, określając zakresy niestandardowe, takie jak 1-15, 16-22, 23-30 i tak dalej dla danych demograficznych użytkowników.

  • Zestaw danych ma kilka ekstremalnych wartości, wszystkie spoza oczekiwanego zakresu, a te wartości mają duży wpływ na wytrenowany model. Aby wyeliminować uprzedzenie w modelu, możesz przekształcić dane w jednolity rozkład przy użyciu metody kwantylów (lub równej wysokości).

    Dzięki tej metodzie moduł Grupuj dane do pojemników określa idealne lokalizacje pojemnika i szerokości pojemnika, aby upewnić się, że w przybliżeniu ta sama liczba próbek mieści się w każdym pojemniku. Następnie, w zależności od wybranej metody normalizacji, wartości w pojemnikach są przekształcane na percentyle lub mapowane na liczbę pojemników.

Przykłady kwantowania

Na poniższym diagramie przedstawiono rozkład wartości liczbowych przed i po zakończeniu przy użyciu metody quantiles . Zwróć uwagę, że w porównaniu z nieprzetworzonymi danymi po lewej stronie dane zostały odsuwane i przekształcone w skalę normalną jednostkową.

raw data and data binned and normalized

Innym podejściem do kwantowania jest pokazane w próbce wykrywania raka piersi , w którym dane grupy do pojemników są używane do przypisywania pacjentów do różnych grup kontrolnych i testowych, aby zagwarantować, że każda grupa ma taką samą liczbę pacjentów.

Ponieważ istnieje tak wiele sposobów grupowania danych, wszystkie możliwe do dostosowania zalecamy eksperymentowanie z różnymi metodami i wartościami. Sekcja Przykłady zawiera linki do przykładowych eksperymentów, które pokazują, jak używać różnych algorytmów kwantowania.

Jak skonfigurować grupowanie danych w pojemnikach

  1. Dodaj moduł Grupuj dane do pojemników do eksperymentu w programie Studio (klasycznym). Ten moduł można znaleźć w kategorii Przekształcanie danych w obszarze Skalowanie i zmniejszanie.

  2. Połączenie zestaw danych zawierający dane liczbowe do pojemnika. Kwantyzacja może być stosowana tylko do kolumn zawierających dane liczbowe.

    Jeśli zestaw danych zawiera kolumny nieliczbowe, użyj modułu Select Columns in Dataset (Wybieranie kolumn w zestawie danych ), aby wybrać podzestaw kolumn do pracy.

  3. Określ tryb kwantowania. Tryb kwantowania określa inne parametry, dlatego najpierw wybierz opcję Tryb kwantowania. Obsługiwane są następujące typy kwantowania:

    Entropy MDL: ta metoda wymaga wybrania kolumny, którą chcesz przewidzieć, oraz kolumn lub kolumn, które chcesz zgrupować w pojemnikach. Następnie przekazuje dane i próbuje określić liczbę pojemników, które minimalizują entropię. Innymi słowy, wybiera liczbę pojemników, które umożliwiają kolumnie danych najlepsze przewidywanie kolumny docelowej. Następnie zwraca liczbę pojemników skojarzona z każdym wierszem danych w kolumnie o nazwie <colname>quantized.

    Jeśli metoda Entropy MDL nie może znaleźć sposobu, aby początkowo binować dane w celu utworzenia dobrego przewidywania, przypisuje wszystkie dane do jednolitego pojemnika. Nie oznacza to, że kolumna nie jest dobrym predyktorem. W takim przypadku można użyć innych metod, aby znaleźć liczbę pojemników, które zminimalizowałyby entropię i uczynić dane lepszym czynnikiem prognostyk.

    Ta metoda nie zwraca rzeczywistych wyników entropii.

    Quantiles: metoda kwantyla przypisuje wartości do pojemników na podstawie rang percentylu. Kwantyle są również znane jako równe wyrównywanie wysokości.

    Równa szerokość: w przypadku tej opcji należy określić łączną liczbę pojemników. Wartości z kolumny danych są umieszczane w pojemnikach, tak aby każdy pojemnik miał ten sam interwał między wartościami początkowymi i końcowymi. W związku z tym niektóre pojemniki mogą mieć więcej wartości, jeśli dane są zaśmiecone wokół określonego punktu.

    Niestandardowe krawędzie: możesz określić wartości rozpoczynające poszczególne pojemniki. Wartość krawędzi jest zawsze niższą granicą pojemnika. Załóżmy na przykład, że chcesz grupować wartości w dwa pojemniki, jeden z wartościami większymi niż 0, a jeden z wartościami mniejszymi lub równymi 0. W takim przypadku w przypadku krawędzi pojemnika wpisz wartość 0 na liście rozdzielonych przecinkami krawędzi pojemnika. Dane wyjściowe modułu to 1 i 2, wskazujące indeks bin dla każdej wartości wiersza.

    Równa szerokość z niestandardowym rozpoczęciem i zatrzymaniem: ta metoda jest podobna do opcji Równa szerokość , ale można określić zarówno dolne, jak i górne granice pojemnika.

  4. Liczba pojemników: jeśli używasz trybów kwantylu MDL Entropy, Quantiles i Równej szerokości , użyj tej opcji, aby określić liczbę pojemników lub kwantylów, które chcesz utworzyć.

  5. W obszarze Kolumny do pojemnika użyj selektora kolumn, aby wybrać kolumny, które mają wartości, które chcesz binować. Kolumny muszą być typem danych liczbowych.

    Ta sama reguła kwantowania jest stosowana do wszystkich odpowiednich kolumn, które wybierzesz. W związku z tym, jeśli musisz podzielić niektóre kolumny przy użyciu innej metody, użyj oddzielnego wystąpienia danych grupy do pojemników dla każdego zestawu kolumn.

    Ostrzeżenie

    Jeśli wybierzesz kolumnę, która nie jest dozwolonym typem, zostanie wygenerowany błąd czasu wykonywania. Moduł zwraca błąd zaraz po znalezieniu dowolnej kolumny niedozwolonego typu. Jeśli wystąpi błąd, przejrzyj wszystkie wybrane kolumny. Błąd nie zawiera listy wszystkich nieprawidłowych kolumn.

  6. W obszarze Tryb danych wyjściowych wskaż, jak chcesz wygenerować wartości kwantyzowane.

    • Dołącz: tworzy nową kolumnę z wartościami binned i dołącza je do tabeli wejściowej.

    • W miejscu: zastępuje oryginalne wartości nowymi wartościami w zestawie danych.

    • ResultOnly: zwraca tylko kolumny wyników.

  7. Jeśli wybierzesz tryb kwantylowania , użyj opcji normalizacji Quantile , aby określić, jak wartości są znormalizowane przed sortowaniem w kwantyle. Należy pamiętać, że normalizacja wartości przekształca wartości, ale nie ma wpływu na ostateczną liczbę pojemników. Aby zapoznać się z przykładem, zobacz Efekty różnych metod normalizacji.

    Obsługiwane są następujące typy normalizacji:

    • Procent: Wartości są znormalizowane w zakresie [0,100]

    • PQuantile: Wartości są znormalizowane w zakresie [0,1]

    • QuantileIndex: wartości są znormalizowane w zakresie [1,liczba pojemników]

  8. Jeśli wybierzesz opcję Niestandardowe krawędzie, wpisz rozdzielaną przecinkami listę liczb do użycia jako krawędzie pojemnika w polu tekstowym + Rozdzielane przecinkami. Wartości oznaczają punkt, który dzieli pojemniki, dlatego jeśli wpiszesz jedną wartość krawędzi bin, zostaną wygenerowane dwa pojemniki; Jeśli wpiszesz dwie wartości krawędzi bin, zostaną wygenerowane trzy pojemniki itd.

    Wartości muszą być posortowane w celu utworzenia pojemników od najniższego do najwyższego.

  9. Jeśli używasz opcji Równa szerokość z niestandardowym rozpoczęciem i zatrzymywaniem, musisz określić granice pojemników.

    Zdefiniuj dolną granicę pierwszego pojemnika, wpisując wartość w polu tekstowym Pierwszy położenie krawędzi .

    Zdefiniuj dolną granicę ostatniego pojemnika, wpisując wartość w polu tekstowym Ostatnia pozycja krawędzi .

  10. Oznacz kolumny jako kategorialne: wybierz tę opcję, aby automatycznie dodać flagę metadanych do kolumny wartości binned. Flaga metadanych wskazuje, że kwantyzowane kolumny powinny być obsługiwane jako zmienne kategorii.

  11. Uruchom eksperyment lub wybierz ten moduł, a następnie kliknij pozycję Uruchom wybrane.

Wyniki

Moduł Grupuj dane do pojemników zwraca zestaw danych, w którym każdy element został odsunął zgodnie z określonym trybem.

Zwraca również transformację binning, która jest funkcją, którą można przekazać do modułu Zastosuj transformację , aby binować nowe próbki danych przy użyciu tego samego trybu i parametrów kwantowania.

Aby zobaczyć, jak dobrze metoda kwantowania działa jako predyktor, możesz kliknąć dane wyjściowe zestawu danych z kolumny Grupuj dane do Pojemników i porównać kolumnę etykiety z kolumną binned. Jeśli grupowanie do pojemników jest predykcyjne, wartości w macierzy krzyżowej powinny się skoncentrować w kilku komórkach.

Porada

Pamiętaj, że jeśli używasz kwantowania danych treningowych, musisz użyć tej samej metody kwantowania dla danych używanych do testowania i przewidywania. Obejmuje to metodę kwantowania, lokalizacje pojemnika i szerokość pojemnika.

Aby upewnić się, że dane są zawsze przekształcane przy użyciu tej samej metody kwantowania, zalecamy zapisanie przydatnych przekształceń danych, a następnie zastosowanie ich do innych zestawów danych przy użyciu modułu Zastosuj transformację .

Przykłady

Przykłady zastosowania kwantyzacji w scenariuszach uczenia maszynowego można znaleźć w galerii sztucznej inteligencji platformy Azure:

Uwagi techniczne

Ta sekcja zawiera szczegóły implementacji, porady i odpowiedzi na często zadawane pytania.

Efekty różnych metod normalizacji

W przypadku wybrania opcji normalizacja quantile wartości są przekształcane przed kwantowaniem. W związku z tym metoda wybrana do normalizacji ma silny wpływ na wartości liczbowe.

Na przykład poniższa tabela ilustruje, w jaki sposób wartości w jednej kolumnie , fLengthz zestawu danych teleskopu są przekształcane przy użyciu każdej z metod normalizacji. Kolumna , fLengthzostała wybrana losowo na ilustrację wartości wyjściowych z każdej opcji i nie ma normalnego rozkładu.

Źródło (fLength) pQuantile QuantileIndex Procent
28.7967 0.363636 4 36.363636
31.6036 0.454545 5 45.454545
162.052 0.909091 10 90.909091
23.8172 0.272727 3 27.272727

Wyniki kwantowania są podobne dla każdej metody.

Poniższa grafika przedstawia rozkład wartości w kolumnie przed i po kwantowania przy użyciu wartości domyślnej 10 pojemników.

Comparison of Normalization Methods for Binning

Szczegóły implementacji

  • Podczas kwantyzacji każda liczba jest mapowana na pojemnik, porównując jej wartość z wartościami krawędzi pojemnika.

    Jeśli na przykład wartość to 1,5, a krawędzie pojemnika to 1, 2 i 3, element zostanie zamapowany na liczbę bin 2. Wartość 0,5 zostanie zamapowana na numer pojemnika 1 (pojemnik pod przepływem), a wartość 3,5 zostanie zamapowana na numer bin 4 (pojemnik przepełnienia).

  • Jeśli kolumna do przedziału (kwantyzowanie) jest rozrzedzonych, wówczas przesunięcie indeksu bin (przesunięcie kwantylu) jest używane podczas wypełniania wynikowej kolumny. Przesunięcie jest wybierane tak, aby rozrzedżone 0 zawsze trafiało do pojemnika z indeksem 0 (innymi słowy kwantylem o wartości 0).

  • Rozrzedzone zera są propagowane z danych wejściowych do kolumny wyjściowej.

  • Przetwarzanie gęstych kolumn zawsze generuje wyniki z minimalnym indeksem bin równym 1; oznacza to, że minimalna wartość kwantylu jest równa wartości minimalnej w kolumnie. Jednocześnie przetwarzanie kolumny rozrzedliwej generuje wynik ze zmiennym minimalnym indeksem bin (minimalna wartość kwantylu).

  • Wszystkie wartości NaN i brakujące są propagowane z kolumny wejściowej do kolumny wyjściowej. Jedynym wyjątkiem jest sytuacja, gdy moduł zwraca indeksy kwantylu. W takim przypadku wszystkie sieci NaN są promowane do brakujących wartości.

  • Indeksy bin są oparte na 1. Jest to naturalna konwencja kwantyli (1 kwantyl, 2 kwantyl itd.). Jedynym wyjątkiem jest przypadek, gdy kolumna do pojemnika jest rozrzedliona.

Oczekiwane dane wejściowe

Nazwa Typ Opis
Zestaw danych Tabela danych Zestaw danych do przeanalizowania

Parametry modułu

Nazwa Zakres Typ Domyślny Opis
Tryb kwantowania Lista KwantyzacjaMode Kwantyle Wybieranie metody kwantowania
Kolumny do pojemnika dowolny KolumnaWybieranie NumeryczneWszystkie Wybieranie kolumn do kwantyzacji
Tryb danych wyjściowych dowolny Wyprowadźdo Wskazuje, jak kwantyzowane kolumny powinny być danymi wyjściowymi
Tagowanie kolumn jako kategorii dowolny Wartość logiczna true Wskazuje, czy kolumny wyjściowe powinny być oznaczone jako kategorialne
Liczba pojemników >=1 Liczba całkowita 10 Określ żądaną liczbę pojemników
Normalizacja kwantylu dowolny KwantowanieNormalizacja Wybierz metodę normalizacji kwantyli
Położenie pierwszej krawędzi dowolny Float 0,0 Określanie wartości dla pierwszej krawędzi pojemnika
Szerokość pojemnika dowolny Float 0,5 Określanie niestandardowej szerokości pojemnika
Położenie ostatniej krawędzi dowolny Float 1.0 Określ wartość ostatniej krawędzi pojemnika
Rozdzielona przecinkami lista krawędzi pojemnika dowolny Ciąg Wpisz rozdzielaną przecinkami listę liczb do użycia jako krawędzie pojemnika

Dane wyjściowe

Nazwa Typ Opis
Kwantyzowany zestaw danych Tabela danych Zestaw danych z kwantyzowanymi kolumnami
Przekształcanie kwantowania ITransform, interfejs Przekształcanie, które stosuje kwantyzację do zestawu danych

Wyjątki

Wyjątek Opis
Błąd 0003 Wyjątek występuje, jeśli co najmniej jeden z danych wejściowych ma wartość null lub jest pusty.
Błąd 0004 Wyjątek występuje, jeśli parametr jest mniejszy lub równy określonej wartości.
Błąd 0011 Wyjątek występuje, jeśli przekazany argument zestawu kolumn nie ma zastosowania do żadnej kolumny zestawu danych.
Błąd 0021 Wyjątek występuje, jeśli liczba wierszy w niektórych zestawach danych przekazanych do modułu jest za mała.
Błąd 0024 Wyjątek występuje, jeśli zestaw danych nie zawiera kolumny etykiety.
Błąd 0020 Wyjątek występuje, jeśli liczba kolumn w niektórych zestawach danych przekazanych do modułu jest zbyt mała.
Błąd 0038 Wyjątek występuje, jeśli oczekiwana liczba elementów powinna być dokładną wartością, ale nie.
Błąd 0005 Wyjątek występuje, jeśli parametr jest mniejszy niż określona wartość.
Błąd 0002 Wyjątek występuje, jeśli nie można przeanalizować ani przekonwertować jednego lub większej liczby parametrów z określonego typu na wymagany przez typ metody docelowej.
Błąd 0019 Wyjątek występuje, jeśli kolumna ma zawierać posortowane wartości, ale nie.
Błąd 0039 Wyjątek występuje, jeśli operacja nie powiodła się.
Błąd 0075 Wyjątek występuje, gdy podczas kwantyzacji zestawu danych jest używana nieprawidłowa funkcja kwantowania.

Aby uzyskać listę błędów specyficznych dla modułów programu Studio (wersja klasyczna), 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
Normalizowanie danych
Obcinanie wartości