Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megtudhatja, hogyan készítheti elő az adatokat az AutoML használatával a besoroláshoz.
Ez a cikk bemutatja, hogyan készíti elő az AutoML az adatokat a besorolási betanításhoz, és ismerteti a konfigurálható adatbeállításokat. Ezeket a beállításokat az AutoML felhasználói felületén a kísérlet beállítása során módosíthatja.
Ezeknek a beállításoknak az AutoML API-val történő konfigurálásához tekintse meg az AutoML Python API-referenciát.
Támogatott adatfunkció-típusok
Csak az alább felsorolt szolgáltatástípusok támogatottak. A képek például nem támogatottak.
A következő szolgáltatástípusok támogatottak:
- Numerikus (
ByteType,ShortType,IntegerType,LongType,FloatTypeésDoubleType) - logikai
- Sztring (kategorikus vagy angol szöveg)
- Időbélyegek (
TimestampType,DateType) - ArrayType[Numerikus] (Databricks Runtime 10.4 LTS ML és újabb)
- DecimalType (Databricks Runtime 11.3 LTS ML és újabb)
Hiányzó értékeket pótolni
A Databricks Runtime 10.4 LTS ML és újabb verziókban megadhatja a null értékek imputálásának módját. A felhasználói felületen válasszon egy módszert a Kitöltési mód oszlop legördülő listájából a táblázatsémában. Az API-ban használja a paramétert imputers . További információ: AutoML Python API-referencia.
Alapértelmezés szerint az AutoML kiválaszt egy számítási módszert az oszloptípus és a tartalom alapján.
Feljegyzés
Ha nem alapértelmezett számítási módszert ad meg, az AutoML nem végez szemantikai típusészlelést.
Kiegyensúlyozatlan adathalmazok támogatása besorolási problémák esetén
A Databricks Runtime 11.3 LTS ML és újabb verzióiban, ha az AutoML azt észleli, hogy egy adathalmaz kiegyensúlyozatlan, a főosztály(ok) leskálázásával és az osztálysúlyok hozzáadásával próbálja csökkenteni a betanítási adathalmaz egyensúlyhiányát. Az AutoML csak a betanítási adatkészletet egyensúlyozza, és nem egyensúlyozza ki a tesztelési és érvényesítési adatkészleteket. Ezzel biztosítja, hogy a modell teljesítménye mindig a nem bővített adathalmazon legyen kiértékelve a valódi bemeneti osztályeloszlással.
A kiegyensúlyozatlan betanítási adatkészletek egyensúlyba hozásához az AutoML olyan osztálysúlyokat használ, amelyek inverz módon kapcsolódnak ahhoz a mértékhez, amellyel egy adott osztály le van skálázva. Ha például egy 100 mintával rendelkező betanítási adatkészlet 95 mintával rendelkezik az A osztályhoz, és öt minta a B osztályhoz tartozik, az AutoML az A osztályt 70 mintára csökkenti, azaz az A osztályt 70/95 vagy 0,736 arányban csökkenti, miközben a B osztályban lévő minták száma 5-nél marad. Annak érdekében, hogy a végső modell megfelelően legyen kalibrálva, és a modell kimenetének valószínűségeloszlása megegyezik a bemenetéval, az AutoML az A osztály súlyát 1/0,736 vagy 1,358 arányban skálázza fel, miközben a B osztály súlyát 1-nek tartja. Az AutoML ezután ezeket az osztálysúlyokat használja a modell betanítása során paraméterként, hogy az egyes osztályokból származó minták megfelelően legyenek súlyozással a modell betanítása során.
Oszlop kijelölése
A Databricks Runtime 10.3 ML és újabb verziókban megadhatja, hogy az AutoML mely oszlopokat használja a betanításhoz. Ha ki szeretne zárni egy oszlopot a felhasználói felületen, törölje a jelölését a Belefoglalás oszlopból. Az API-ban használja a paramétert exclude_cols . További információ: AutoML Python API-referencia.
Az előrejelzési célként vagy időoszlopként kijelölt oszlopot nem lehet elvetni az adatok felosztásához.
Alapértelmezés szerint a rendszer minden oszlopot tartalmaz.
Adatok felosztása betanítási, érvényesítési és tesztelési halmazokra
Az AutoML három részre osztja az adatokat a betanításhoz, az ellenőrzéshez és a teszteléshez. Az ML-probléma típusától függően különböző lehetőségek állnak rendelkezésre az adatok felosztására.
Az adatok betanítási, érvényesítési és tesztelési csoportokra oszthatók az alábbi módszerekkel:
(Alapértelmezett) Véletlenszerű felosztás: Ha nincs megadva adatfelosztási stratégia, az adathalmaz véletlenszerűen 60% felosztásra, 20% érvényesítési felosztásra és 20% tesztfelosztásra lesz felosztva. A besoroláshoz a rétegzett véletlenszerű felosztás biztosítja, hogy minden osztály megfelelően jelen legyen a betanítási, ellenőrzési és tesztkészletekben.
Időrendi felosztás: A Databricks Runtime 10.4 LTS ML és újabb verzióiban kiválaszthat egy időoszlopot, hogy időrendi betanítási, érvényesítési és tesztelési felosztásokat hozzon létre. Az időrendi felosztások a legkorábbi adatpontokat használják a betanításhoz, a következő legkorábbit az ellenőrzéshez, és a legújabb tesztpontokat. Az időoszlop lehet időbélyeg, egész szám vagy sztringoszlop.
Manuális felosztás: A Databricks Runtime 15.3 ML-es és újabb verziókban az API-val manuális felosztást állíthat be. Adjon meg egy felosztott oszlopot, és használja az értékeket train, validate, vagy test azokon a sorokon, amelyeket a betanításhoz, érvényesítéshez és teszteléshez kíván használni az adathalmazokban. Azok a sorok, amelyek osztott oszlopértékei nem train, test vagy validate, figyelmen kívül lesznek hagyva és a megfelelő riasztás ki lesz adva.
Nagy adathalmazok mintavételezése
Bár az AutoML elosztja a hiperparaméter-finomhangolási kísérleteket a fürt munkavégző csomópontjai között, minden modell egyetlen munkavégző csomóponton van betanítva.
Az AutoML automatikusan megbecsüli az adathalmaz betöltéséhez és betanásához szükséges memóriát, és szükség esetén mintát vesz az adatkészletből.
| Databricks Runtime verzió | Mintavételezési viselkedés |
|---|---|
| 9.1 LTS ML - 10,4 LTS ML | A mintavételezési tört állandó, és nem függ a fürt csomóponttípusától vagy csomópontonkénti memóriájától. |
| 11.x ML | A mintavételezési törtszám nő a munkacsomópontok esetében, amelyek több memóriával rendelkeznek magonként. A minta méretének növelése:
Példa: 4 maggal és 64 GB RAM-mal rendelkező gépen:
|
| 11.3 LTS ML és újabb | Ha az AutoML mintát vesz az adathalmazból, a mintavételezési tört a felhasználói felület Áttekintés lapján jelenik meg. |
| 12.2 LTS ML és újabb | Az AutoML képes kezelni a nagyobb adathalmazokat úgy, hogy betanítási feladatonként több processzormagot allokál. A mintaméret növeléséhez válasszon ki egy nagyobb memóriával rendelkező példányt. |
Besorolási problémák esetén az AutoML a PySpark sampleBymetódust használja a rétegzett mintavételezéshez a célcímke eloszlásának megőrzése érdekében.
Regressziós problémák esetén az AutoML a PySpark samplemetódust használja.
Szemantikai típusészlelés
Feljegyzés
- Az AutoML nem végez szemantikai típusészlelést az egyéni számítási módszerekkel rendelkező oszlopok esetében.
A Databricks Runtime 9.1 LTS ML és újabb verziók esetén az AutoML megpróbálja észlelni, hogy az oszlopok szemantikai típusa eltér-e a Táblaséma Spark- vagy Pandas-adattípusától. Az AutoML ezeket az oszlopokat észlelt szemantikai típusként kezeli. Ezek az észlelések a lehető legjobb próbálkozások, de néha kihagyhatják a szemantikai típusok meglétét. Manuálisan is beállíthatja az oszlopok szemantikai típusát, vagy megadhatja az AutoML-nek, hogy ne alkalmazza a szemantikai típusészlelést egy oszlopra széljegyzetekkel.
Az AutoML a következő módosításokat hajtja végre:
- A dátum- vagy időbélyegadatokat képviselő karakterlánc- és egész számoszlopok időbélyegtípusként vannak kezelve.
- A numerikus adatokat ábrázoló sztringoszlopokat numerikus típusként kezeli a rendszer.
A Databricks Runtime 10.1 ML-es és újabb verziója esetén az AutoML a következő módosításokat is végrehajtja:
- A kategorikus azonosítókat tartalmazó numerikus oszlopok kategorikus funkcióként vannak kezelve.
- Az angol szöveget tartalmazó sztringoszlopok szövegfunkcióként lesznek kezelve.
Szemantikai típusú széljegyzetek
A Databricks Runtime 10.1 ML-es és újabb verziója esetén manuálisan szabályozhatja a hozzárendelt szemantikai típust úgy, hogy egy szemantikai típusú széljegyzetet helyez egy oszlopra. Az oszlop <column-name><semantic-type>szemantikai típusának manuális megjegyzéséhez használja az alábbi szintaxist:
metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)
<semantic-type> az alábbiak egyike lehet:
-
categorical: Az oszlop kategorikus értékeket tartalmaz (például numerikus értékeket, amelyeket azonosítóként kell kezelni). -
numeric: Az oszlop numerikus értékeket (például számba elemezhető sztringértékeket) tartalmaz. -
datetime: Az oszlop időbélyegértékeket tartalmaz (sztring, numerikus vagy dátumértékek, amelyek időbélyegekké alakíthatók). -
text: A sztringoszlop angol szöveget tartalmaz.
Ha le szeretné tiltani a szemantikai típusészlelést egy oszlopon, használja a speciális kulcsszójegyzetet native.