Accueil Finances personnelles Comment créer un modèle d'apprentissage supervisé avec régression logistique - mannequins

Comment créer un modèle d'apprentissage supervisé avec régression logistique - mannequins

Table des matières:

Vidéo: Méthodes d’apprentissage supervisé: linéaire discriminante et Régression logistique 2025

Vidéo: Méthodes d’apprentissage supervisé: linéaire discriminante et Régression logistique 2025
Anonim

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

Les deux lignes de code suivantes créent une instance du classificateur. La première ligne importe la bibliothèque de régression logistique. La deuxième ligne crée une instance de l'algorithme de régression logistique. >>>> à partir de sklearn import linear_model >>> logClassifier = linear_model. LogisticRegression (C = 1, random_state = 111)

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.

Comment exécuter les données d'apprentissage

Vous devez diviser l'ensemble de données en ensembles d'apprentissage et de formation avant de pouvoir créer une instance du classificateur de régression logistique. Le code suivant accomplira cette tâche: >>>> à partir de sklearn import cross_validation >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (iris, iris, target, test_size = 0, 10, random_state = 111) >>> logClassifier. fit (X_train, y_train)

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)
Comment créer un modèle d'apprentissage supervisé avec régression logistique - mannequins

Le choix des éditeurs

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Pour les seniors: Comment travailler avec Windows dans Microsoft Windows - les nuls

Windows, avec un W majuscule, tire son nom de sa caractéristique principale: Windows, avec un w minuscule. Se familiariser avec Windows signifie apprendre à ouvrir, fermer, redimensionner, déplacer et basculer entre les fenêtres, ce qui est la clé pour jongler avec succès avec plusieurs activités. Chaque programme que vous exécutez occupe sa propre fenêtre. Une fenêtre peut occuper une partie de ...

Comment accepter ou rejeter les cookies dans Safari - dummies

Comment accepter ou rejeter les cookies dans Safari - dummies

Un cookie est un petit fichier qu'un site Web enregistre automatiquement sur le disque dur de votre Mac. Il contient des informations, telles que vos préférences ou votre date de naissance, que le site utilisera lors de vos prochaines visites. Dans Mac OS X Snow Leopard, Safari vous permet de choisir d'accepter ou non tous les cookies ...

Le choix des éditeurs

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Construire des boîtes et des lignes Bézier dans QuarkXPress - des nuls

Pour créer une boîte ou une ligne dans QuarkXPress plus complexe qu'un simple rectangle, ovale ou starburst, vous entrez dans le domaine du chemin de Bézier. Si vous avez utilisé l'outil Plume dans Adobe Illustrator ou Photoshop, vous comprenez déjà les chemins de Bézier. Il faut un peu de pratique et un esprit détendu ...

Création d'un rapport avec Crystal Reports 10 - témoins

Création d'un rapport avec Crystal Reports 10 - témoins

Lorsque vous démarrez Crystal Reports 10, généralement l'une des trois choses suivantes: créer un rapport, modifier un rapport ou exécuter un rapport sur les données de votre base de données. Les rapports prennent des données à partir d'une base de données, les traitent, les formatent et les affichent ensuite sur une imprimante, un écran d'ordinateur ou un site Web. Crystal Reports ...

Traitant des commentaires Javadoc dans Eclipse - mannequins

Traitant des commentaires Javadoc dans Eclipse - mannequins

Lorsque vous utilisez Eclipse pour écrire du code Java, n'oubliez pas de éditez les commentaires de Javadoc (les choses qui commencent par / **). Vous pouvez ajouter des informations utiles lorsque vous modifiez les commentaires Javadoc et lorsque vous les modifiez, l'aide au code d'Eclipse propose des suggestions. N'oubliez pas ces astuces lorsque vous modifiez vos commentaires Javadoc: Ajouter un commentaire Javadoc: ...

Le choix des éditeurs

Les connexions cachées sur le Nikon D5600 - les nuls

Les connexions cachées sur le Nikon D5600 - les nuls

Ouvrent les couvercles sur les côtés gauche et droit du Nikon D5600 caméra, et vous verrez plusieurs ports de connexions cachées. Les ports de connexion suivants sont indiqués sur cette image: Terminal d'accessoires: ce terminal accepte les accessoires suivants: câble déclencheur à distance Nikon MC-DC2; Télécommandes sans fil WR-1 et WR-R10; et les unités GPS GP-1 / GP-1A. I ...

Les connexions cachées sur votre Nikon D5200 - les nuls

Les connexions cachées sur votre Nikon D5200 - les nuls

ÉParpillés sur l'extérieur de votre appareil photo sont nombreuses commandes que vous utilisez pour changer d'image -prend des paramètres, revoir et modifier vos photos, et effectuer diverses autres opérations. Caché sous le couvercle sur le côté gauche de la caméra, vous trouverez les quatre ports de connexion suivants, étiquetés dans cette figure: Borne accessoire: Vous pouvez brancher le Nikon en option ...

Des boutons et autres commandes du Nikon D7500 - mannequins

Des boutons et autres commandes du Nikon D7500 - mannequins

C'est génial d'avoir une carte pour le boutons et commandes sur votre appareil photo, mais ce n'est pas beaucoup d'aide si vous ne pouvez pas vous rappeler quel bouton appuyer sur quand (et pourquoi). Alors, voici un aperçu des fonctions des contrôles les plus importants. (Certains contrôles ont des fonctions supplémentaires pendant certaines opérations, mais la table ...