Förberedelse av data för regression
Den här artikeln beskriver hur AutoML förbereder data för regressionsträning och beskriver konfigurerbara datainställningar. Du kan justera de här alternativen under experimentkonfigurationen i AutoML-användargränssnittet.
Information om hur du konfigurerar dessa inställningar med autoML-API:et finns i Referens för AutoML Python API.
Datafunktionstyper som stöds
Endast de funktionstyper som anges nedan stöds. Bilder stöds till exempel inte .
Följande funktionstyper stöds:
- Numeriska (
ByteType
,ShortType
,IntegerType
,LongType
,FloatType
ochDoubleType
) - Booleskt
- Sträng (kategorisk eller engelsk text)
- Tidsstämplar (
TimestampType
,DateType
) - ArrayType[Numerisk] (Databricks Runtime 10.4 LTS ML och senare)
- DecimalType (Databricks Runtime 11.3 LTS ML och senare)
Imputera saknade värden
I Databricks Runtime 10.4 LTS ML och senare kan du ange hur null-värden ska imputeras. I användargränssnittet väljer du en metod i listrutan i kolumnen Impute med i tabellschemat. Använd parametern i API:et imputers
. Mer information finns i AutoML Python API-referens.
Som standard väljer AutoML en imputationsmetod baserat på kolumntyp och innehåll.
Kommentar
Om du anger en imputationsmetod som inte är standard utför AutoML inte semantisk typidentifiering.
Kolumnmarkering
I Databricks Runtime 10.3 ML och senare kan du ange vilka kolumner AutoML ska använda för träning. Om du vill exkludera en kolumn i användargränssnittet avmarkerar du den i kolumnen Inkludera. Använd parametern i API:et exclude_cols
. Mer information finns i AutoML Python API-referens.
Du kan inte ta bort den valda kolumnen som förutsägelsemål eller som tidskolumn för att dela upp datan.
Som standard ingår alla kolumner.
Dela upp data i tränings-, validerings- och testuppsättningar
AutoML delar upp dina data i tre delar för träning, validering och testning. Beroende på typen av ML-problem har du olika alternativ för att dela upp data.
Använd följande metoder för att dela in data i tränings-, validerings- och testuppsättningar:
(Standard) Slumpmässig delning: Om en strategi för datadelning inte har angetts delas datamängden slumpmässigt upp i 60 % träningsdelning, 20 % verifierar delning och 20 % testdelning. För klassificering säkerställer en stratifierad slumpmässig uppdelning att varje klass är tillräckligt representerad i tränings-, validerings- och testuppsättningarna.
kronologisk delning: I Databricks Runtime 10.4 LTS ML och senare kan du välja en tidskolumn för att skapa kronologiska tränings-, validerings- och testdelningar. Kronologiska delningar använder de tidigaste datapunkterna för träning, den näst tidigaste för validering och de senaste testpunkterna. Tidskolumnen kan vara en tidsstämpel, heltal eller strängkolumn.
Manuell delning: I Databricks Runtime 15.3 ML och senare kan du använda API:et för att konfigurera en manuell delning. Ange en delad kolumn och använd värdena train
, validate
eller test
för att identifiera rader som du vill använda för träning, validering och testning av datauppsättningar. Alla rader med andra delade kolumnvärden än train
, test
eller validate
ignoreras och en motsvarande avisering aktiveras.
Sampling av stora datamängder
Även om AutoML distribuerar hyperparameterjusteringsförsök över arbetsnoderna i ett kluster tränas varje modell på en enda arbetsnod.
AutoML uppskattar automatiskt det minne som krävs för att läsa in och träna datauppsättningen och tar datamängden exempel vid behov.
Databricks Runtime-version | Samplingsbeteende |
---|---|
9.1 LTS ML - 10.4 LTS ML | Samplingsfraktionen är konstant och är inte beroende av klustrets nodtyp eller minne per nod. |
11.x ML | Samplingsfraktionen ökar för arbetsnoder med mer minne per kärna. Så här ökar du exempelstorleken: – Använd en minnesoptimerad instanstyp. – Justera spark.task.cpus i Spark-konfigurationen. Standardvärdet är 1 och det maximala värdet är antalet processorer på arbetsnoden. Det maximala värdet är antalet processorer på arbetsnoden. När du ökar det här värdet är exempelstorleken större, men färre utvärderingsversioner körs parallellt.Exempel: På en dator med 4 kärnor och 64 GB RAM-minne: – Med spark.task.cpus=1 kör fyra utvärderingsversioner per arbetare, var och en med 16 GB RAM-minne.– Med spark.task.cpus=4 , körs en utvärderingsversion per arbetare med alla 64 GB RAM-minne. |
11.3 LTS ML och senare | Om AutoML tar exempel på datamängden visas samplingsfraktionen på fliken Översikt i användargränssnittet. |
12.2 LTS ML och senare | AutoML kan hantera större datamängder genom att allokera fler CPU-kärnor per träningsuppgift. Öka exempelstorleken genom att välja en instans med mer totalt minne. |
För klassificeringsproblem använder AutoML PySpark-metoden sampleBy
för stratifierad sampling för att bevara måletikettfördelningen.
För regressionsproblem använder AutoML PySpark-metoden sample
.
Identifiering av semantisk typ
Kommentar
- AutoML utför inte semantisk typidentifiering för kolumner som har anpassade imputation angivna metoder.
Med Databricks Runtime 9.1 LTS ML och senare försöker AutoML identifiera om kolumner har en semantisk typ som skiljer sig från Spark- eller Pandas-datatypen i tabellschemat. AutoML behandlar dessa kolumner som den identifierade semantiska typen. Dessa identifieringar är bästa möjliga och kan ibland missa förekomsten av semantiska typer. Du kan också ange den semantiska typen av en kolumn manuellt eller be AutoML att inte tillämpa semantisk typidentifiering på en kolumn med hjälp av anteckningar.
Mer specifikt gör AutoML dessa justeringar:
- Sträng- och heltalskolumner som representerar datum- eller tidsstämpeldata behandlas som en tidsstämpeltyp.
- Strängkolumner som representerar numeriska data behandlas som en numerisk typ.
Med Databricks Runtime 10.1 ML och senare gör AutoML även dessa justeringar:
- Numeriska kolumner som innehåller kategoriska ID:n behandlas som en kategorisk funktion.
- Strängkolumner som innehåller engelsk text behandlas som en textfunktion.
Anteckningar av semantisk typ
Med Databricks Runtime 10.1 ML och senare kan du manuellt styra den tilldelade semantiska typen genom att placera en semantisk typanteckning i en kolumn. Om du vill kommentera den semantiska typen av kolumn manuellt <column-name>
som <semantic-type>
använder du följande syntax:
metadata_dict = df.schema["<column-name>"].metadata
metadata_dict["spark.contentAnnotation.semanticType"] = "<semantic-type>"
df = df.withMetadata("<column-name>", metadata_dict)
<semantic-type>
kan vara något av följande:
-
categorical
: Kolumnen innehåller kategoriska värden (till exempel numeriska värden som ska behandlas som ID:n). -
numeric
: Kolumnen innehåller numeriska värden (till exempel strängvärden som kan parsas i tal). -
datetime
: Kolumnen innehåller tidsstämpelvärden (sträng-, numeriska eller datumvärden som kan konverteras till tidsstämplar). -
text
: Strängkolumnen innehåller engelsk text.
Om du vill inaktivera identifiering av semantisk typ i en kolumn använder du den särskilda nyckelordsanteckningen native
.