Durée: 12 mois
Rubrique: Ingénieur IA
Dans cette leçon, nous allons explorer la modélisation et l'évaluation dans le cadre du Machine Learning avec Scikitlearn. La modélisation consiste à créer un modèle qui peut faire des prédictions basées sur les informations qui lui sont fournies. L'évaluation, quant à elle, implique la mesure de la performance de ce modèle pour déterminer son efficacité.
Chargement des données : La première étape est de charger le jeu de données. Scikitlearn offre plusieurs jeux de données intégrés pour s'entraîner rapidement. Par exemple, pour charger le dataset iris :
python
from sklearn.datasets import loadiris
iris = loadiris()
X, y = iris.data, iris.target
Division des données : Diviser les données en un ensemble d'entraînement et un ensemble de test est crucial pour évaluer correctement le modèle.
python
from sklearn.modelselection import traintestsplit
Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.3, randomstate=42)
Choix du modèle : Scikitlearn propose une gamme de modèles, tels que les régressions linéaires, les machines à vecteurs de support (SVM), ou les forêts aléatoires. Par exemple, pour créer un modèle SVM :
python
from sklearn.svm import SVC
model = SVC()
model.fit(Xtrain, ytrain)
Après avoir entraîné notre modèle, nous devons évaluer ses performances sur l'ensemble de test. Les concepts clés ici incluent la précision, le rappel, la Fmesure, et la courbe ROC.
Précision et rappelle :
python
from sklearn.metrics import classificationreport
ypred = model.predict(Xtest)
print(classificationreport(ytest, ypred))
Exactitude et Matrice de Confusion :
python
from sklearn.metrics import accuracyscore, confusionmatrix
print(f"Exactitude: {accuracyscore(ytest, ypred)}")
print(f"Matrice de confusion:\n{confusionmatrix(ytest, ypred)}")
Courbe ROC (Receiver Operating Characteristic) : ```python from sklearn.metrics import roccurve, auc import matplotlib.pyplot as plt
yscores = model.decisionfunction(Xtest) fpr, tpr, thresholds = roccurve(ytest, yscores) rocauc = auc(fpr, tpr) plt.figure() plt.plot(fpr, tpr, color='darkorange', lw=2, label='Courbe ROC (aire = %0.2f)' % rocauc) plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='') plt.xlabel('Taux de faux positifs') plt.ylabel('Taux de vrais positifs') plt.title('Courbe ROC') plt.legend(loc="lower right") plt.show() ```
L'évaluation permet de s'assurer que notre modèle ne fait pas d'overfitting (surapprentissage) ou d'underfitting (sousapprentissage). Des techniques telles que la validation croisée aidant à garantir que notre modèle généralise bien sur de nouvelles données.
Modéliser et évaluer correctement sont des étapes cruciales du Machine Learning. En utilisant efficacement Scikitlearn, nous pouvons créer des modèles robustes et comprendre leur comportement à travers différentes métriques d'évaluation.