Automatisering 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
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.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 6.67
Automatisering 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
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.
Bedankt voor je feedback!