Comment faire pour exécuter les données d'essai et d'évaluer un modèle d'apprentissage supervisé svm

L'apprentissage supervisé

Sommaire

est une tâche d'apprentissage qui apprend à la machine à partir de données d'analyse de prédiction qui ont été marqués. Une façon de penser à propos de l'apprentissage supervisé est que l'étiquetage des données se fait sous la supervision de l'modeler- apprentissage non supervisé, en revanche, ne nécessite pas de données étiquetées. L'apprentissage supervisé est généralement réalisée en utilisant un algorithme de classification.

Comment faire pour exécuter les données de test

Utilisation de 10 pour cent des 150 cas de l'ensemble de données vous donne 15 points de données de test à courir à travers le modèle. Voyons comment votre modèle prédictif sera performant. Tapez le code suivant dans la liste de l'interprète:

>>> SvmClassifier.predict prédite = (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2])

La prédire fonction dans la première ligne de code est ce qui fait la prédiction, comme vous l'aurez deviné. Elle prend les données de test en entrée et délivre en sortie les résultats avec la variable prédit. La deuxième ligne affiche la sortie.

La dernière ligne dans la section de code est la sortie, ou prédiction: un réseau de 15 - qui est, 10 pour cent de l'échantillon de données, qui est la taille de l'ensemble de données d'essai. Les chiffres dans le tableau représentent les classes fleur d'iris.

Comment évaluer le modèle

Pour évaluer la précision de votre modèle, vous pouvez comparer le tableau de sortie avec le y_test tableau. Pour ce petit ensemble de données de l'échantillon, vous pouvez facilement dire comment il effectué en voyant que le tableau de sortie de la fonction prédire est presque le même que le y_test tableau. La dernière ligne du code est un chèque de la simple égalité entre les deux réseaux, suffisante pour ce cas de test simple.

Voici le code:




>>> Predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>> y_testarray ([0, 0, 2, 2 , 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> prédit y_testarray == ([Vrai, vrai, vrai, vrai, vrai, vrai, vrai, vrai, vrai , True, True, True, False, True, True], dtype = bool)

En regardant le tableau de sortie avec tous les Boolean (Vrai et Faux) Des valeurs, vous pouvez voir que le modèle prédit tous, mais un résultat. Sur le point de données treizième, il prédit 1 (versicolor) alors qu'il aurait été 2 (Virginica). La Faux valeur (s) indiquent que le modèle prédit la classe incorrecte Iris pour ce point de données. Le pourcentage de prédictions correctes déterminera la précision du modèle prédictif.

Dans ce cas, vous pouvez simplement utiliser division fondamentale et obtenir la précision:

résultats corrects / taille de test => 14/15 => 0.9333 ou 93,33 pour cent

Il est pas surprenant que le modèle n'a pas de prédire ou Virginica Versicolor- ils sont clairement pas séparables par une ligne droite. Une incapacité à prédire Setosa, cependant, serait surprenant parce Setosa est clairement linéairement séparables. Pourtant, la précision était de 14 sur 15, ou 93,33 pour cent.

Pour une installation d'essai avec plus de points de données, vous pouvez utiliser la métrique module pour faire vos mesures. Le code suivant obtiendra la précision du modèle:

>>> De mesures d'importation sklearn >>> metrics.accuracy_score (y_test, prédit) 0,93333333333333335

Un autre outil de mesure utile est le matrice de confusion. Oui, il est vrai. Il est une matrice (format tabulaire) qui montre que les prédictions du modèle effectuée sur les données d'essai. Voici le code qui affiche la matrice de confusion:

>>> Metrics.confusion_matrix (y_test, prédit) Array ([[5, 0, 0], 
[0, 2, 0],
[0, 1, 7]])

La ligne diagonale du coin supérieur gauche au coin en bas à droite est le nombre de prédictions correctes pour chaque rangée. Chaque ligne correspond à une classe d'Iris.

Par exemple: La première ligne correspond à la classe de Setosa. Le modèle prédit cinq points de données de test correcte et a eu aucune erreur de prédiction de la classe Setosa. Si cela avait été une erreur, un nombre différent de zéro serait présent dans l'une des colonnes de cette ligne.

La seconde ligne correspond à la classe versicolor. Le modèle prédit deux points de données de test correctes et sans erreurs. La troisième ligne correspond à la classe Virginica. Le modèle prédit sept points de données de test correctes mais a également eu un erreur.

Le modèle prédit à tort une observation de Virginica pour une versicolor. Vous pouvez dire que en regardant la colonne où l'erreur se profile. Colonne 1 appartient à versicolor.

La précision des résultats d'un modèle prédictif affectera directement la décision de déployer cette modélisation plus la précision, le soutien plus facilement vous pouvez vous réunir pour le déploiement du modèle.

Lors de la création d'un modèle prédictif, commencer par construire une solution de travail simple, rapide - et puis continuer à construire de manière itérative jusqu'à ce que vous obtenez le résultat souhaité. Passer mois à construire un modèle prédictif - et ne pas être en mesure de montrer vos parties prenantes les résultats - est un moyen sûr de perdre l'attention et le soutien de vos parties prenantes.

Voici la liste complète du code pour créer et évaluer un modèle de classification SVM:

>>> From sklearn.datasets importer load_iris >>> from sklearn.svm importation LinearSVC >>> from sklearn importation cross_validation >>> de mesures d'importation sklearn >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation.train_test_split (iris.data, iris.target, test_size = 0,10, random_state = 111) >>> svmClassifier = LinearSVC (random_state = 111) >>> svmClassifier.fit (X_train, y_train) >>> prédit = svmClassifier. prédire (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>> y_testarray ([0, 0 , 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> metrics.accuracy_score (y_test, prévue) 0,93333333333333335 >>> prédite == y_testarray ([Vrai , true, true, true, true, true, true, true, true, true, true, True, False, True, True], dtype = bool)

» » » » Comment faire pour exécuter les données d'essai et d'évaluer un modèle d'apprentissage supervisé svm