Mastering Python Machine Learning: Scikit-learn Complete Guide
Scikit-learn is the go-to Python library for machine learning. Here's everything you need.
Complete ML Pipeline
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.metrics import classification_report, confusion_matrix
import pandas as pd
import numpy as np
# Load and prepare data
df = pd.read_csv('data.csv')
X = df.drop('target', axis=1)
y = df['target']
# Split data
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
# Build pipeline
pipeline = Pipeline([
('scaler', StandardScaler()),
('classifier', RandomForestClassifier(n_estimators=100, random_state=42))
])
# Train
pipeline.fit(X_train, y_train)
# Evaluate
y_pred = pipeline.predict(X_test)
print(classification_report(y_test, y_pred))
# Cross validation
cv_scores = cross_val_score(pipeline, X, y, cv=5, scoring='f1_macro')
print(f"CV Score: {cv_scores.mean():.3f} (+/- {cv_scores.std() * 2:.3f})")
# Hyperparameter tuning
param_grid = {
'classifier__n_estimators': [50, 100, 200],
'classifier__max_depth': [None, 10, 20],
}
grid_search = GridSearchCV(pipeline, param_grid, cv=3, n_jobs=-1)
grid_search.fit(X_train, y_train)
print(f"Best params: {grid_search.best_params_}")
Feature Importance
import matplotlib.pyplot as plt
# Get feature importances
rf_model = pipeline.named_steps['classifier']
importances = pd.Series(
rf_model.feature_importances_,
index=X.columns
).sort_values(ascending=False)
# Plot
plt.figure(figsize=(10, 6))
importances[:10].plot(kind='bar')
plt.title('Top 10 Feature Importances')
plt.tight_layout()
plt.savefig('feature_importance.png')
Follow me for more ML tutorials! 🐍
Follow for more Python content!
💡 Related: **Content Creator Ultimate Bundle (Save 33%)* — $29.99*
Top comments (0)