Meer informatie over het trainen van machine learning-modellen
Hoe u een machine learning-model traint, is afhankelijk van het type model dat u wilt trainen. Laten we enkele veelgebruikte frameworks verkennen die u kunt gebruiken om een machine learning-model te trainen in Microsoft Fabric.
Machine Learning-frameworks verkennen
Veel gegevenswetenschappers werken in Python en veel machine learning-bibliotheken zijn ontworpen om goed te werken met Python.
Sommige bibliotheken en hun populaire toepassingen waarmee u in Microsoft Fabric kunt werken, zijn:
- Scikit-learn: Train traditionele machine learning-modellen voor taken zoals classificatie, regressie en clustering.
- PyTorch en TensorFlow: Deep Learning-modellen trainen voor verwerking van natuurlijke taal of Computer Vision-taken.
- SynapseML: Hiermee kunt u schaalbare machine learning-pijplijnen maken voor optimale modeltraining.
Werken met notebooks in Microsoft Fabric
Wanneer u een model wilt trainen in Microsoft Fabric, kunt u notebooks gebruiken.
Als data scientist bent u mogelijk al bekend met Jupyter-notebooks. De notebooks die beschikbaar zijn in uw Microsoft Fabric-werkruimte, zijn vergelijkbaar met Jupyter-notebooks, zodat u uw code eenvoudig kunt uitvoeren zoals verwacht.
De notebooks in Microsoft Fabric worden mogelijk gemaakt door Spark Compute. Dit betekent dat u PySpark en Python kunt gebruiken. De meeste machine learning-frameworks zoals scikit-learn, PyTorch en TensorFlow werken met Python en Pandas DataFrames.
PySpark is een Python-bibliotheek die is gebouwd voor gedistribueerde gegevensverwerking. Wanneer u merkt dat u een meer schaalbare machinetrainingspijplijn nodig hebt, kunt u het gebruik van PySpark en SynapseML in uw projecten verkennen.
Een model trainen
Hoe u de training van een machine learning benadert, is afhankelijk van het type model dat u traint. Een veelvoorkomende benadering met traditionele modellen is het doorlopen van de volgende stappen:
- Laad de gegevens door deze beschikbaar te maken in het notebook als een DataFrame.
- Verken de gegevens door de gegevens te visualiseren en inzicht te krijgen in de relatie tussen de functies (modelinvoer) en hoe dit van invloed is op het label (modeluitvoer).
- Bereid de gegevens voor, ook wel functie-engineering genoemd.
- Splits de gegevens in een trainingsgegevensset en testgegevensset.
- Train het model.
- Evalueer het model door de metrische prestatiegegevens te controleren.
Laten we een voorbeeld bekijken en ervan uitgaan dat u al een gegevensset hebt die u hebt verkend en voorbereid voor modeltraining. Stel dat u een regressiemodel wilt trainen en dat u scikit-learn wilt gebruiken.
U kunt de voorbereide gegevensset splitsen met de volgende code:
from sklearn.model_selection import train_test_split
X, y = df[['feature1','feature2','feature3']].values, df['label'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)
Als gevolg van het splitsen van uw gegevensset hebt u vier DataFrames:
X_train
: Trainingsgegevensset inclusief alleen de functies.X_test
: Test de gegevensset, inclusief alleen de functies.y_train
: Trainingsgegevensset inclusief alleen het label.y_test
: Test de gegevensset met alleen het label.
Wanneer u een model wilt trainen, kunt u een van de algoritmen (bijvoorbeeld lineaire regressie) selecteren voor uw taak (bijvoorbeeld regressie) die beschikbaar zijn in het framework van uw keuze (bijvoorbeeld scikit-learn). De volgende code toont een voorbeeld van het trainen van een regressiemodel:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
Nadat u het model hebt aangepast, kunt u het model gebruiken om voorspellingen te genereren op de testgegevensset om metrische gegevens over modelprestaties te maken. Wanneer u MLflow gebruikt om uw model bij te houden, kunt u de metrische prestatiegegevens bijhouden die u berekent. U kunt ook metrische standaardprestaties voor MLflow voor u maken en bijhouden.
Bij het bijhouden met MLflow kunt u er ook voor zorgen dat uw model wordt opgeslagen in een indeling om het scoren van modellen in een later stadium mogelijk te maken.