Table des matières:
- Comment charger vos données
- Line 1 importe la bibliothèque qui vous permet de diviser l'ensemble de données en deux parties.
- Exécution des données de test
- Alors, comment le modèle de régression logistique avec le paramètre C = 150 se compare-t-il à cela? Eh bien, vous ne pouvez pas battre 100 pour cent. Voici le code pour créer et évaluer le classificateur logistique avec C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> prédit = logClassifier_2. prévoir (X_test) >>> les métriques. precision_score (y_test, prédit) 0. 93333333333333335 >>> métriques. confusion_matrix (y_test, prédit) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Vidéo: Méthodes d’apprentissage supervisé: linéaire discriminante et Régression logistique 2024
Après avoir construit votre premier modèle prédictif de classification pour l'analyse des données, créer plus de modèles comme c'est une tâche très simple dans scikit. La seule vraie différence d'un modèle à l'autre est que vous devrez ajuster les paramètres de l'algorithme à l'algorithme.
Comment charger vos données
Cette liste de code va charger le jeu de données iris dans votre session: >>>> à partir de sklearn. datasets import load_iris >>> iris = load_iris ()
Comment créer une instance du classificateur
Notez le paramètre (paramètre de régularisation) dans le constructeur. Le paramètre
de régularisation
est utilisé pour empêcher le surajustement. Le paramètre n'est pas strictement nécessaire (le constructeur fonctionnera correctement sans lui car il aura par défaut la valeur C = 1). La création d'un classificateur de régression logistique en utilisant C = 150 crée un meilleur tracé de la surface de décision. Vous pouvez voir les deux parcelles ci-dessous.
Line 1 importe la bibliothèque qui vous permet de diviser l'ensemble de données en deux parties.
La ligne 2 appelle la fonction de la bibliothèque qui divise l'ensemble de données en deux parties et affecte les ensembles de données maintenant divisés à deux paires de variables.
La ligne 3 prend l'instance du classificateur de régression logistique que vous venez de créer et appelle la méthode d'ajustement pour entraîner le modèle avec l'ensemble de données d'apprentissage.
Comment visualiser le classificateur
En regardant la surface de décision sur le tracé, il semble que certains réglages doivent être faits. Si vous regardez près du milieu de la parcelle, vous pouvez voir que beaucoup de points de données appartenant à la zone centrale (Versicolor) se trouvent dans la zone à droite (Virginica).
Cette image montre la surface de décision avec une valeur C de 150. Il semble visuellement meilleur, donc choisir d'utiliser ce paramètre pour votre modèle de régression logistique semble approprié.
Exécution des données de test
Dans le code suivant, la première ligne envoie le jeu de données de test au modèle et la troisième ligne affiche la sortie: >>>> predicted = logClassifier. predict (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
Comment évaluer le modèle < Vous pouvez croiser la sortie de la prédiction avec le tableau y_test. Par conséquent, vous pouvez voir qu'il a correctement prédit tous les points de données de test. Voici le code: >>>> de sklearn import metrics >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> métriques. precision_score (y_test, prédit) 1. 0 # 1. 0 est 100% précision >>> prédit == y_testarray ([Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai], dtype = bool)
Alors, comment le modèle de régression logistique avec le paramètre C = 150 se compare-t-il à cela? Eh bien, vous ne pouvez pas battre 100 pour cent. Voici le code pour créer et évaluer le classificateur logistique avec C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> prédit = logClassifier_2. prévoir (X_test) >>> les métriques. precision_score (y_test, prédit) 0. 93333333333333335 >>> métriques. confusion_matrix (y_test, prédit) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Nous nous attendions à mieux, mais c'était pire. Il y avait une erreur dans les prédictions. Le résultat est le même que celui du modèle SVM (Support Vector Machine).
Voici la liste complète du code pour créer et évaluer un modèle de classification de régression logistique avec les paramètres par défaut: >>>> de sklearn. jeux de données import load_iris >>> depuis sklearn import linear_model >>> depuis sklearn import cross_validation >>> depuis sklearn import metrics >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris., iris. target, test_size = 0, 10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier. fit (X_train, y_train) >>> prédit = logClassifier. predict (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> métriques. precision_score (y_test, prédit) 1. 0 # 1. 0 est 100% précision >>> prédit == y_testarray ([Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai, Vrai], dtype = bool)