Gegevens voorbereiden voordat u voorspellingen genereert
Wanneer u een model toepast op nieuwe gegevens, is het belangrijk om ervoor te zorgen dat het schema van de invoergegevens overeenkomt met de verwachtingen van het model van de invoergegevens.
Meer specifiek moet u controleren of de gegevenstypen van de invoerkolommen hetzelfde zijn als gedefinieerd in de handtekening van het model. Laten we eerst de gegevens ophalen waarop u voorspellingen wilt genereren.
Werken met gegevens in Delta-tabellen
Als u een model wilt toepassen op nieuwe gegevens in Microsoft Fabric, moet u de nieuwe gegevens opslaan als een Delta-tabel in een lakehouse.
Tip
Meer informatie over het opnemen van gegevens in een Microsoft Fabric Lakehouse.
U kunt een PySpark-dataframe df
opslaan als een Delta Lake new_table
in een lakehouse met behulp van de volgende code:
df.write.format("delta").save(f"Tables/new_table")
Wanneer u gegevens uit een Delta-tabel wilt lezen, kunt u de volgende code gebruiken:
df = spark.read.format("delta").load(f"Tables/new_table")
Inzicht in gegevenstypen in de handtekening van het model
Wanneer u een machine learning-model bijhoudt en de handtekening in het MLmodel
bestand definieert, hebt u twee opties om de verwachte invoer en uitvoer van een model te beschrijven. De handtekening van een model kan het volgende zijn:
- Op kolommen gebaseerd : ideaal voor tabelgegevens die zijn geordend op basis van kolommen.
- Op Tensor gebaseerd : ideaal voor invoergegevens die u als matrices wilt doorgeven, zoals afbeeldingen.
In Microsoft Fabric werkt u waarschijnlijk met tabelgegevens. Daarom is het gebruikelijker om te werken met handtekeningen op basis van kolommen. Als u handtekeningen op basis van kolommen hebt, kunt u de werkelijke invoerkolommen gemakkelijker uitlijnen met de verwachte invoerkolommen van het model.
Wanneer u de handtekening van het model definieert, moet u MLflow-gegevenstypen gebruiken om het schema van de gegevens op te geven. De meest gebruikte gegevenstypen zijn:
- Booleaanse waarde: logische gegevens (
True
ofFalse
) - Datum/tijd: 64b datum/tijd-gegevens (bijvoorbeeld
2023-10-23 14:30:00
). - Dubbel: 64b drijvendekommanummers (bijvoorbeeld
3.14159265359
). - Float: 32b drijvende-kommanummers (bijvoorbeeld
3.14
). - Geheel getal: 32b ondertekende gehele getallen (bijvoorbeeld
42
). - Lang: 64b ondertekende gehele getallen (bijvoorbeeld
1234567890
). - Tekenreeks: Tekstgegevens (bijvoorbeeld
Amsterdam
).
De gegevenstypen van de invoergegevens instellen
Nadat u de gegevens hebt opgenomen in een Delta Lake en de handtekening van het model hebt begrepen, moet u ervoor zorgen dat de gegevenstypen van de gegevens compatibel zijn met de verwachte invoer van het model.
U kunt met uw gegevens in een notebook werken om te controleren of de gegevenstypen van elke kolom naar verwachting zijn en zo nodig wijzigingen aanbrengen.
Als u de gegevenstypen van elke kolom van een dataframe df
wilt weergeven, gebruikt u de volgende code:
df.dtypes
Als u het gegevenstype van een specifieke kolom wilt wijzigen, kunt u de volgende code gebruiken:
from pyspark.sql.types import IntegerType, DoubleType
df = df.withColumn("S1", df["S1"].cast(IntegerType()))
df = df.withColumn("S2", df["S2"].cast(DoubleType()))
Wanneer u de gegevenstypen van de invoergegevens hebt ingesteld op overeenstemming met de verwachte invoer van het model, kunt u de gegevens opslaan in een nieuwe Delta-tabel. De nieuwe tabel is nu klaar om te worden gebruikt voor het genereren van batchvoorspellingen.