Aller au contenu

Scikit-learn

Introduction

Scikit-learn est la bibliothèque Python de référence pour le Machine Learning. Elle propose des algorithmes de classification, régression, clustering et réduction de dimension.


Installation

pip install scikit-learn

Structure Générale

from sklearn import ensemble, model_selection, metrics

# 1. Préparer les données
X_train, X_test, y_train, y_test = model_selection.train_test_split(
    X, y, test_size=0.2
)

# 2. Choisir un modèle
model = ensemble.RandomForestClassifier(n_estimators=100)

# 3. Entraîner
model.fit(X_train, y_train)

# 4. Prédire
y_pred = model.predict(X_test)

# 5. Évaluer
accuracy = metrics.accuracy_score(y_test, y_pred)

Modèles Courants

Type Modèle Use case
Classification LogisticRegression Classification binaire
Classification RandomForest Classification multi-classes
Régression LinearRegression Prédiction de valeurs
Régression RandomForestRegressor Régression non-linéaire
Clustering KMeans Regroupement non-supervisé

Exemple: Iris Dataset

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# Charger les données
iris = load_iris()
X, y = iris.data, iris.target

# Split
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# Entraîner
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)

# Évaluer
y_pred = clf.predict(X_test)
print(f"Accuracy: {accuracy_score(y_test, y_pred):.2f}")

Validation Croisée

from sklearn.model_selection import cross_val_score

scores = cross_val_score(clf, X, y, cv=5)
print(f"Scores: {scores}")
print(f"Moyenne: {scores.mean():.2f}")

Préprocessing

from sklearn.preprocessing import StandardScaler, LabelEncoder

# Normalisation (pour les distances)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Encodage des labels
encoder = LabelEncoder()
y_encoded = encoder.fit_transform(y)

Pour Aller Plus Loin

  • Deep Learning: PyTorch, TensorFlow
  • XGBoost: Pour des performances optimisées
  • Feature Engineering: Créer de nouvelles features

Exercice Interactif

Essayer scikit-learn directement:

Ouvrir avec Basthon