Supervised Learning Example
# Python - Basic ML Pipeline
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
def ml_pipeline(X, y):
# Split data
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# Scale features
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Train model
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train_scaled, y_train)
# Make predictions
y_pred = model.predict(X_test_scaled)
# Evaluate model
report = classification_report(y_test, y_pred)
feature_importance = pd.DataFrame({
'feature': X.columns,
'importance': model.feature_importances_
}).sort_values('importance', ascending=False)
return {
'model': model,
'report': report,
'feature_importance': feature_importance
}
Cross-Validation
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import GridSearchCV
def optimize_model(X, y, model, param_grid):
# Cross-validation
cv_scores = cross_val_score(
model, X, y, cv=5, scoring='accuracy'
)
# Grid search
grid_search = GridSearchCV(
model,
param_grid,
cv=5,
scoring='accuracy',
n_jobs=-1
)
grid_search.fit(X, y)
return {
'cv_scores': cv_scores,
'best_params': grid_search.best_params_,
'best_score': grid_search.best_score_
}