Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Naučte se používat AutoML k přípravě dat na klasifikaci.
Tento článek popisuje, jak AutoML připravuje data pro trénování klasifikace a popisuje konfigurovatelná nastavení dat. Tyto možnosti můžete upravit během nastavení experimentu v uživatelském rozhraní AutoML.
Informace o konfiguraci těchto nastavení pomocí rozhraní API AutoML najdete v referenčních informacích k rozhraní Python API autoML.
Podporované datové typy funkcí
Podporují se jenom níže uvedené typy funkcí. Obrázky se například nepodporují .
Podporují se následující typy funkcí:
- Číselné (
ByteType,ShortType,IntegerType,LongType,FloatTypeaDoubleType) - logický
- Řetězec (kategorický nebo anglický text)
- Časové razítka (
TimestampType,DateType) - Datový typ ArrayType[Numeric] (Databricks Runtime 10.4 LTS ML a vyšší)
- DecimalType (Databricks Runtime 11.3 LTS ML a vyšší)
Imputovat chybějící hodnoty
V Databricks Runtime 10.4 LTS ML a novějších můžete určit, jak jsou imputovány hodnoty null. V uživatelském rozhraní vyberte metodu z rozevíracího seznamu ve sloupci Imputovat s ve schématu tabulky. V rozhraní API použijte imputers parametr. Další informace najdete v referenci rozhraní Python API pro AutoML.
AutoML ve výchozím nastavení vybere metodu imputace na základě typu sloupce a obsahu.
Poznámka:
Pokud zadáte metodu bez výchozí imputace, AutoML neprovádí detekci sémantických typů.
Podpora nevyvážených datových sad pro úlohy klasifikace
Pokud AutoML v Databricks Runtime 11.3 LTS ML a vyšší zjistí, že datová sada je nevyvážená, pokusí se snížit nerovnováhu trénovací datové sady tak, že převzorkuje hlavní třídy a přidá váhy tříd. AutoML vyrovnává pouze trénovací datovou sadu a nevyrovná testovací a ověřovací datové sady. Tím zajistíte, že výkon modelu se vždy vyhodnotí u neobohacené datové sady se skutečnou distribucí vstupní třídy.
K vyvážení nevyrovnané trénovací datové sady používá AutoML třídní váhy, které jsou nepřímo úměrné stupni, kterým je daná třída podvzorkována. Pokud má například trénovací datová sada s 100 vzorky 95 vzorků patřících do třídy A a pět vzorků patřících do třídy B, AutoML tuto nerovnováhu sníží snížením převzorkování třídy A na 70 vzorků, tj. o převzorkování třídy A o poměr 70/95 nebo 0,736 a současně zachová počet vzorků ve třídě B na 5. Aby se zajistilo, že je konečný model správně kalibrován a rozdělení pravděpodobnosti výstupu modelu je stejné jako u vstupu, AutoML vertikálně navyšuje váhu třídy pro třídu A poměrem 1/0,736 nebo 1,358 při zachování hmotnosti třídy B jako 1. AutoML pak použije tyto váhy tříd v trénování modelu jako parametr, aby se zajistilo, že vzorky z každé třídy budou při trénování modelu správně vážené.
výběr sloupce
Ve službě Databricks Runtime 10.3 ML a vyšší můžete určit, které sloupce AutoML se mají použít pro trénování. Pokud chcete sloupec v uživatelském rozhraní vyloučit, zrušte jeho zaškrtnutí ve sloupci Zahrnout. V rozhraní API použijte exclude_cols parametr. Další informace najdete v referenci rozhraní Python API pro AutoML.
Sloupec vybraný jako cíl předpovědi nebo jako časový sloupec nelze odstranit, aby se rozdělila data.
Ve výchozím nastavení jsou zahrnuty všechny sloupce.
Rozdělení dat do trénovacích, ověřovacích a testovacích sad
AutoML rozdělí data do tří rozdělení pro trénování, ověřování a testování. V závislosti na typu problému ML máte různé možnosti rozdělení dat.
Pomocí následujících metod rozdělte data do trénovacích, ověřovacích a testovacích sad:
(Výchozí) Náhodné rozdělení: Pokud není specifikována strategie rozdělení dat, datová sada se náhodně rozdělí na 60% rozdělení tréninkové, 20% rozdělení validační a 20% rozdělení testovací. Pro klasifikaci stratifikovaný náhodný rozdělení zajišťuje, aby každá třída byla odpovídajícím způsobem reprezentována v trénovacích, ověřovacích a testovacích sadách.
Chronologické rozdělení: Ve službě Databricks Runtime 10.4 LTS ML a vyšší můžete vybrat časový sloupec pro vytvoření chronologických trénovacích, ověřovacích a testovacích částí. Chronologické rozdělení používají nejstarší datové body pro trénování, další nejstarší pro ověření a nejnovější body pro testování. Časový sloupec může být časové razítko, celé číslo nebo řetězcový sloupec.
ruční rozdělení: V Databricks Runtime 15.3 ML a novějším můžete pomocí rozhraní API nastavit ruční rozdělení. Zadejte rozdělený sloupec a pomocí hodnot train, validatenebo test identifikujte řádky, které chcete použít pro trénování, ověřování a testování datových sad. Všechny řádky s jinými hodnotami rozděleného sloupce než train, testnebo validate jsou ignorovány a vyvolá se odpovídající výstraha.
Vzorkování velkých datových sad
I když AutoML distribuuje pokusy o ladění hyperparametrů napříč pracovními uzly clusteru, každý model se vytrénuje na jednom pracovním uzlu.
AutoML automaticky odhaduje paměť potřebnou k načtení a trénování datové sady a vzorkuje ji v případě potřeby.
| Verze Databricks Runtime | Vzorkovací chování |
|---|---|
| 9.1 LTS ML - 10.4 LTS ML | Zlomek vzorkování je konstantní a nezávisí na typu uzlu clusteru nebo paměti na každém uzlu. |
| 11.x ML | Podíl vzorkování se zvyšuje u pracovních uzlů s větší pamětí na jádro. Zvětšení velikosti vzorku:
Příklad: Na počítači se 4 jádry a 64 GB RAM:
|
| 11.3 LTS ML a vyšší verze | Pokud AutoML ukázkuje datovou sadu, zlomek vzorkování se zobrazí na kartě Přehled v uživatelském rozhraní. |
| 12.2 LTS ML a vyšší | AutoML dokáže zpracovat větší datové sady přidělením více jader procesoru na trénovací úlohu. Zvětšete velikost vzorku výběrem instance s větší celkovou pamětí. |
Pro problémy klasifikace používá AutoML metodu sampleByPySpark pro stratifikované vzorkování k zachování distribuce cílového štítku.
Pro regresní problémy používá AutoML metodu PySpark sample.
Detekce sémantických typů
Poznámka:
- AutoML neprovádí detekci sémantických typů pro sloupce, které mají zadané metody vlastní imputace.
S modulem Databricks Runtime 9.1 LTS ML a novějším se AutoML pokusí zjistit, jestli mají sloupce sémantický typ odlišný od datového typu Spark nebo pandas ve schématu tabulky. AutoML považuje tyto sloupce za rozpoznaný sémantický typ. Tyto detekce jsou pokusem dosáhnout co nejlepšího výsledku a někdy mohou nezaznamenat existenci sémantických typů. Můžete také ručně nastavit sémantický typ sloupce nebo pomocí poznámekříct AutoML, aby u sloupce
AutoML konkrétně provádí tyto úpravy:
- Řetězcové a celočíselné sloupce představující datum nebo časové razítko jsou považovány za typ časového razítka.
- Řetězcové sloupce, které představují číselná data, se považují za číselný typ.
S modulem Databricks Runtime 10.1 ML a novějším provádí AutoML také tyto úpravy:
- Číselné sloupce, které obsahují kategorické ID, se považují za kategorickou funkci.
- Řetězcové sloupce, které obsahují anglický text, se považují za textovou funkci.
Sémantické poznámky k typu
S modulem Databricks Runtime 10.1 ML a novějším můžete ručně řídit přiřazený sémantický typ přiřazením anotace sémantického typu ke sloupci. Pokud chcete ručně anotovat sémantický typ sloupce <column-name> jako <semantic-type>, použijte následující syntaxi:
metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)
<semantic-type> může být jedna z následujících možností:
-
categorical: Sloupec obsahuje kategorické hodnoty (například číselné hodnoty, které by se měly považovat za ID). -
numeric: Sloupec obsahuje číselné hodnoty (například řetězcové hodnoty, které lze analyzovat na čísla). -
datetime: Sloupec obsahuje hodnoty časového razítka (řetězcové, číselné nebo datové hodnoty, které lze převést na časové razítko). -
text: Řetězcový sloupec obsahuje anglický text.
Chcete-li zakázat detekci sémantických typů ve sloupci, použijte speciální poznámku klíčového slova native.