Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Automatisering van Modelhertraining | Sectie
Practice
Projects
Quizzes & Challenges
Quizzen
Challenges
/
Mlops Fundamentals

bookAutomatisering van Modelhertraining

Wanneer nieuwe gegevens beschikbaar komen, zorgt het hertrainen van ML-modellen ervoor dat voorspellingen accuraat en relevant blijven — een essentiële stap om de modelprestaties in de loop van de tijd te behouden. Met Apache Airflow kun je dit hertrainen automatisch plannen en orkestreren, waardoor handmatige stappen worden geëlimineerd en volledige reproduceerbaarheid wordt gegarandeerd.

In deze opzet definieert een Airflow DAG elke stap van het hertrainingsproces: het laden van data, preprocessing, training, evaluatie en logging. Airflow beheert de volgorde en planning, zodat het model up-to-date blijft met minimale inspanning.

Voorbeeld: Geautomatiseerde Retraining DAG

from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
import logging

def load_data():
    iris = load_iris(as_frame=True)
    df = iris.frame
    df.to_csv('/tmp/iris.csv', index=False)

def train_and_evaluate():
    df = pd.read_csv('/tmp/iris.csv')
    X = df.drop('target', axis=1)
    y = df['target']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    pipeline = Pipeline([
        ('scaler', StandardScaler()),
        ('clf', RandomForestClassifier(n_estimators=50, random_state=42))
    ])
    pipeline.fit(X_train, y_train)
    y_pred = pipeline.predict(X_test)
    acc = accuracy_score(y_test, y_pred)
    logging.info(f"Retrained model accuracy: {acc:.4f}")

default_args = {
    'owner': 'airflow',
    'start_date': datetime(2024, 1, 1),
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG(
    'retrain_ml_model',
    default_args=default_args,
    schedule_interval='@daily',
    catchup=False,
    tags=['ml', 'retraining'],
)

load_data_task = PythonOperator(
    task_id='load_data',
    python_callable=load_data,
    dag=dag,
)

train_and_evaluate_task = PythonOperator(
    task_id='train_and_evaluate',
    python_callable=train_and_evaluate,
    dag=dag,
)

load_data_task >> train_and_evaluate_task
Note
Opmerking

Het automatiseren van hertraining helpt modeldrift te beperken — de geleidelijke achteruitgang van prestaties naarmate datapatronen veranderen. Met Airflow kunnen hertrainingspijplijnen dagelijks, wekelijks of na data-updates worden uitgevoerd, zodat het gedeployde model accuraat en betrouwbaar blijft.

question mark

Wat is het belangrijkste voordeel van het automatiseren van modelhertraining met Airflow?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 12

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookAutomatisering van Modelhertraining

Veeg om het menu te tonen

Wanneer nieuwe gegevens beschikbaar komen, zorgt het hertrainen van ML-modellen ervoor dat voorspellingen accuraat en relevant blijven — een essentiële stap om de modelprestaties in de loop van de tijd te behouden. Met Apache Airflow kun je dit hertrainen automatisch plannen en orkestreren, waardoor handmatige stappen worden geëlimineerd en volledige reproduceerbaarheid wordt gegarandeerd.

In deze opzet definieert een Airflow DAG elke stap van het hertrainingsproces: het laden van data, preprocessing, training, evaluatie en logging. Airflow beheert de volgorde en planning, zodat het model up-to-date blijft met minimale inspanning.

Voorbeeld: Geautomatiseerde Retraining DAG

from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
import logging

def load_data():
    iris = load_iris(as_frame=True)
    df = iris.frame
    df.to_csv('/tmp/iris.csv', index=False)

def train_and_evaluate():
    df = pd.read_csv('/tmp/iris.csv')
    X = df.drop('target', axis=1)
    y = df['target']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    pipeline = Pipeline([
        ('scaler', StandardScaler()),
        ('clf', RandomForestClassifier(n_estimators=50, random_state=42))
    ])
    pipeline.fit(X_train, y_train)
    y_pred = pipeline.predict(X_test)
    acc = accuracy_score(y_test, y_pred)
    logging.info(f"Retrained model accuracy: {acc:.4f}")

default_args = {
    'owner': 'airflow',
    'start_date': datetime(2024, 1, 1),
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

dag = DAG(
    'retrain_ml_model',
    default_args=default_args,
    schedule_interval='@daily',
    catchup=False,
    tags=['ml', 'retraining'],
)

load_data_task = PythonOperator(
    task_id='load_data',
    python_callable=load_data,
    dag=dag,
)

train_and_evaluate_task = PythonOperator(
    task_id='train_and_evaluate',
    python_callable=train_and_evaluate,
    dag=dag,
)

load_data_task >> train_and_evaluate_task
Note
Opmerking

Het automatiseren van hertraining helpt modeldrift te beperken — de geleidelijke achteruitgang van prestaties naarmate datapatronen veranderen. Met Airflow kunnen hertrainingspijplijnen dagelijks, wekelijks of na data-updates worden uitgevoerd, zodat het gedeployde model accuraat en betrouwbaar blijft.

question mark

Wat is het belangrijkste voordeel van het automatiseren van modelhertraining met Airflow?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 12
some-alt