Adatok előkészítése a regresszióhoz

Ez a cikk bemutatja, hogyan készíti elő az AutoML az adatokat a regressziós 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, és DoubleType)
  • 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 az annál újabb verziók)

Hiányzó értékek pótlása

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 az Impute with legördülő listából a táblázat séma oszlopá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.

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. Egy oszlop kizárásához a felhasználói felületen, vegye ki a pipát a Belefoglalás oszlopból. Az API-ban használja a paramétert exclude_cols . További információ: AutoML Python API-referencia.

Nem lehet kidobni az oszlopot, amely előrejelzési célként lett kijelölve, vagy időoszlopként 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-ben és az újabb verziókban kiválaszthat egy időoszlopot, amely időrendi tanítási, érvényesítési és tesztelési felosztásokat hoz 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 és újabb verzióiban az API használatával manuális felosztást állíthat be. Adjon meg egy felosztott oszlopot, és használja a train, validatevagy test értékeket az adathalmazok betanításához, érvényesítéséhez és teszteléséhez használni kívánt sorok azonosításához. A rendszer figyelmen kívül hagyja a train, testvagy validate ki nem osztott oszlopértékekkel rendelkező sorokat, és riasztást ad ki.

Nagy adathalmazok mintavételezése

Bár az AutoML elosztja a hiperparaméter-finomhangolási kísérleteket a fürt feldolgozó csomópontjai között, minden modell be van tanítva egyetlen feldolgozó csomóponton.

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 azoknál a munkavégző csomópontoknál, amelyek több memóriát tartalmaznak magonként. A minta méretének növelése:
  • Használjon memóriaoptimalizált-példánytípust.
  • Módosítsa spark.task.cpus a Spark-konfigurációban. Az alapértelmezett érték 1, a maximális érték pedig a feldolgozó csomópont processzorainak száma. A maximális érték a feldolgozó csomópont processzorainak száma. Ha növeli ezt az értéket, a minta mérete nagyobb, de kevesebb próba fut párhuzamosan.

Példa: 4 maggal és 64 GB RAM-mal rendelkező gépen:
  • A spark.task.cpus=1esetén feldolgozónként négy próba fut, mindegyik 16 GB RAM-ot használ.
  • A spark.task.cpus=4esetén egy próba fut munkavállalónként, az összes 64 GB RAM-ot használva.
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 azon oszlopok esetében, amelyeknél egyéni számítási metódus van megadva.

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 legjobb próbálkozások, és néha elmulaszthatják felismerni 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éljegyzetekhasználatával.

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. A <column-name> oszlop szemantikai típusának kézi <semantic-type>megjelölé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 tartalmaz (például számba elemezhető sztringértékeket).
  • 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.