Udostępnij za pośrednictwem


Przygotowywanie danych do regresji

W tym artykule opisano, jak rozwiązanie AutoML przygotowuje dane do trenowania regresji i opisuje konfigurowalne ustawienia danych. Te opcje można dostosować podczas konfigurowania eksperymentu w interfejsie użytkownika rozwiązania AutoML.

Aby skonfigurować te ustawienia przy użyciu interfejsu API automatycznego uczenia maszynowego, zapoznaj się z dokumentacją interfejsu API języka Python rozwiązania AutoML.

Obsługiwane typy funkcji danych

Obsługiwane są tylko typy funkcji wymienione poniżej. Na przykład obrazy nieobsługiwane.

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

  • Numeryczne (ByteType, , ShortTypeIntegerType, LongType, FloatTypei DoubleType)
  • Wartość logiczna
  • Ciąg (tekst kategorii lub angielski)
  • Znaczniki czasu (TimestampType, DateType)
  • ArrayType[Numeric] (Databricks Runtime 10.4 LTS ML i nowsze)
  • DecimalType (Databricks Runtime 11.3 LTS ML i nowsze)

Uzupełnij brakujące values

W środowisku Databricks Runtime 10.4 LTS ML i nowszym można określić, w jaki sposób są imputowane wartości null values. W interfejsie użytkownika wybierz metodę select z listy rozwijanej Impute zcolumn w tableschema. W interfejsie API użyj parametru imputers . Aby uzyskać więcej informacji, zobacz AutoML Python API reference (Dokumentacja interfejsu API języka Python rozwiązania AutoML).

Domyślnie AutoML wybiera metodę imputacji na podstawie typu column i zawartości.

Uwaga

Jeśli określisz metodę imputacji innej niż domyślna, rozwiązanie AutoML nie wykonuje wykrywania typów semantycznych.

wybór Column

W środowisku Databricks Runtime 10.3 ML i nowszym można określić, który columns AutoML powinien być użyty do trenowania. Aby wykluczyć column w interfejsie użytkownika, usuń zaznaczenie go w Uwzględnijcolumn. W interfejsie API użyj parametru exclude_cols . Aby uzyskać więcej informacji, zobacz AutoML Python API reference (Dokumentacja interfejsu API języka Python rozwiązania AutoML).

Nie można usunąć wybranego column jako celu przewidywania lub czasu column, aby podzielić dane.

Domyślnie wszystkie columns są uwzględniane.

Dzielenie danych na zestawy trenowania, walidacji i testowania

Rozwiązanie AutoML dzieli dane na trzy podziały na potrzeby trenowania, walidacji i testowania. W zależności od typu problemu z uczeniem maszynowym masz różne opcje dzielenia danych.

Użyj następujących metod, aby podzielić dane na zestawy trenowania, walidacji i testowania:

(Ustawienie domyślne) Podział losowy: jeśli strategia podziału danych nie jest określona, zestaw danych jest losowo podzielony na 60% podział pociągu, podział weryfikacji 20% i podział testu 20%. W przypadku klasyfikacji warstwowy podział losowy gwarantuje, że każda klasa jest odpowiednio reprezentowana w zestawach trenowania, walidacji i testowania.

Chronologiczny podział: w środowisku Databricks Runtime 10.4 LTS ML i nowszym można select czas column tworzenia chronologicznego trenowania, weryfikowania i testowania podziałów. Podziały chronologiczne używają najwcześniejszych punktów danych do trenowania, następnego najwcześniejszego sprawdzania poprawności i najnowszych punktów do testowania. column może być znacznikiem czasu, liczbą całkowitą lub ciągiem znaków column.

Ręczny podział: W środowisku Databricks Runtime 15.3 ML lub nowszym, można użyć interfejsu API, aby przeprowadzić set ręcznego podziału. Określ podział column i użyj valuestrain, validatelub test, aby zidentyfikować wiersze, których chcesz użyć do zestawów danych do trenowania, walidacji i testowania. Wszystkie wiersze z podziałem columnvalues inne niż train, testlub validate są ignorowane i zgłaszany jest odpowiedni alert.

Próbkowanie dużych zestawów danych

Mimo że rozwiązanie AutoML dystrybuuje próby dostrajania hiperparametrów w węzłach roboczych klastra, każdy model jest trenowany w jednym węźle roboczym.

Rozwiązanie AutoML automatycznie szacuje pamięć wymaganą do załadowania i wytrenowania zestawu danych oraz przykładów zestawu danych w razie potrzeby.

Wersja środowiska Uruchomieniowego usługi Databricks Zachowanie próbkowania
9.1 LTS ML — 10,4 LTS ML Ułamek próbkowania jest stały i nie zależy od typu węzła klastra ani pamięci na węzeł.
11.x ML Ułamek próbkowania zwiększa się dla węzłów roboczych z większą ilością pamięci na rdzeń. Aby zwiększyć rozmiar próbki:

— Użyj typu wystąpienia zoptymalizowanego pod kątem pamięci.
— Dostosuj spark.task.cpus konfigurację platformy Spark. Wartość domyślna to 1, a maksymalna wartość to liczba procesorów CPU w węźle roboczym. Maksymalna wartość to liczba procesorów CPU w węźle procesu roboczego. Po zwiększeniu tej wartości rozmiar próbki jest większy, ale mniej prób jest uruchamianych równolegle.

Przykład: na maszynie z 4 rdzeniami i 64 GB pamięci RAM:

— W przypadku spark.task.cpus=1programu cztery wersje próbne są uruchamiane dla każdego procesu roboczego, z których każda korzysta z 16 GB pamięci RAM.
— W przypadku spark.task.cpus=4programu jedna wersja próbna jest uruchamiana dla każdego procesu roboczego, przy użyciu wszystkich 64 GB pamięci RAM.
11.3 LTS ML i nowsze Jeśli rozwiązanie AutoML próbkuje zestaw danych, ułamek próbkowania jest wyświetlany na karcie Przegląd w interfejsie użytkownika.
12.2 LTS ML i nowsze Rozwiązanie AutoML może obsługiwać większe zestawy danych, przydzielając więcej rdzeni procesora CPU na zadanie trenowania. Zwiększ rozmiar próbki, wybierając wystąpienie z większą ilością całkowitej pamięci.

W przypadku problemów klasyfikacji rozwiązanie AutoML używa metody PySpark sampleBydo próbkowania warstwowego w celu zachowania rozkładu etykiet docelowych.

W przypadku problemów z regresją rozwiązanie AutoML używa metody PySpark.sample

Wykrywanie typów semantycznych

Uwaga

  • Rozwiązanie AutoML nie wykonuje wykrywania typów semantycznych dla , które mają określone metody niestandardowej imputacji .

Od Databricks Runtime 9.1 LTS ML i nowszych, AutoML próbuje wykryć, czy columns ma typ semantyczny inny niż typ danych Spark lub pandas w tableschema. Rozwiązanie AutoML traktuje te columns jako wykryty typ semantyczny. Te wykrycia są najlepszym rozwiązaniem i czasami pomijają istnienie typów semantycznych. Można również ręcznie set semantyczny typ column lub poinformować AutoML, aby nie stosować wykrywania typu semantycznego do columnprzy użyciu adnotacji.

W szczególności rozwiązanie AutoML wprowadza następujące korekty:

  • Ciąg znaków i liczba całkowita columns, które reprezentują dane daty lub znacznika czasu, są traktowane jako typ znacznika czasu.
  • Ciąg columns reprezentujący dane liczbowe są traktowane jako typ liczbowy.

W przypadku środowiska Databricks Runtime 10.1 ML i nowszego rozwiązanie AutoML wprowadza również następujące korekty:

  • Parametry numeryczne columns zawierające identyfikatory kategorii są traktowane jako cecha kategoryczna.
  • Ciąg columns, które zawierają tekst angielski, są traktowane jako funkcja tekstowa.

Adnotacje typu semantycznego

W środowisku Databricks Runtime 10.1 ML i nowszym można ręcznie kontrolować przypisany typ semantyczny, umieszczając adnotację typu semantycznego na column. Aby ręcznie oznaczyć typ semantyczny column<column-name> jako <semantic-type>, użyj następującej składni:

metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)

<semantic-type> może być jednym z następujących elementów:

  • categorical: column zawiera kategoryczne values (na przykład liczby values, które powinny być traktowane jako identyfikatory).
  • numeric: column zawiera numeryczne values (na przykład ciąg values, który można zinterpretować jako liczby).
  • datetime: column zawiera znacznik czasu values (ciąg, liczbę lub datę values, które można przekonwertować na znaczniki czasu).
  • text: ciąg column zawiera tekst w języku angielskim.

Aby wyłączyć wykrywanie typów semantycznych w column, użyj specjalnej adnotacji słowa kluczowego native.