Gegevens voorbereiden voordat u voorspellingen genereert

Voltooid

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.

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 of False)
  • 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 dfwilt 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.