Défi : Résoudre la Tâche en Utilisant un Classificateur de Stacking
Tâche
Swipe to start coding
Le jeu de données 'blood-transfusion-service-center'
est un ensemble de données qui contient des informations relatives au don de sang. Il est souvent utilisé comme une tâche de classification binaire pour prédire si un donneur de sang fera un nouveau don. Le jeu de données comprend plusieurs caractéristiques qui fournissent des informations sur l'historique et les caractéristiques du donneur.
Votre tâche est de résoudre une tâche de classification en utilisant le jeu de données 'blood-transfusion-service-center'
:
- Utilisez 3 modèles différents de
LogisticRegression
comme modèles de base. Chaque modèle doit avoir des paramètres de régularisation différents :0.1
,1
et10
, respectivement. - Utilisez
MLPClassifier
comme méta-modèle d'un ensemble. - Créez une liste
base_models
contenant tous les modèles de base de l'ensemble. - Enfin, créez un modèle
StackingClassifier
avec les modèles de base spécifiés et le méta-modèle.
Solution
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import numpy as np
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import StackingClassifier
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import f1_score
# Load the "blood-transfusion-service-center" dataset
blood_transfusion = fetch_openml('blood-transfusion-service-center', version=1, as_frame=True, parser='auto')
X, y = blood_transfusion.data, blood_transfusion.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create base models with different parameters
# Logistic Regression parameters:
# max_iter - max number of iterations for optimization,
# C - inverse of regularization strength
logreg_model_1 = LogisticRegression(max_iter=200, C=0.1)
logreg_model_2 = LogisticRegression(max_iter=200, C=1)
logreg_model_3 = LogisticRegression(max_iter=200, C=10)
# Create meta-model (MLP)
meta_model = MLPClassifier(hidden_layer_sizes=(100, 50), max_iter=200)
# Create stacking classifier
base_models = [
('logreg_model_1', logreg_model_1),
('logreg_model_2', logreg_model_2),
('logreg_model_3', logreg_model_3)
]
stacking_clf = StackingClassifier(base_models, meta_model)
# Train stacking classifier
stacking_clf.fit(X_train, y_train)
# Predict on the test set
Tout était clair ?
Merci pour vos commentaires !
Section 4. Chapitre 2
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import numpy as np
from sklearn.datasets import fetch_openml
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import StackingClassifier
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import f1_score
# Load the "blood-transfusion-service-center" dataset
blood_transfusion = fetch_openml('blood-transfusion-service-center', version=1, as_frame=True, parser='auto')
X, y = blood_transfusion.data, blood_transfusion.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Create base models with different parameters
# Logistic Regression parameters:
# max_iter - max number of iterations for optimization,
# C - inverse of regularization strength
logreg_model_1 = LogisticRegression(max_iter=200, C=___)
logreg_model_2 = LogisticRegression(max_iter=200, C=___)
logreg_model_3 = LogisticRegression(max_iter=200, C=___)
# Create meta-model (MLP)
meta_model = ___(hidden_layer_sizes=(100, 50), max_iter=200)
# Create stacking classifier
___ = [
('logreg_model_1', logreg_model_1),
('logreg_model_2', logreg_model_2),
('logreg_model_3', logreg_model_3)
]
stacking_clf = ___(___, ___)
# Train stacking classifier
stacking_clf.fit(X_train, y_train)
# Predict on the test set
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion