Vidéo: Machine Learning with Oracle 2024
Avant de pouvoir alimenter le classificateur SVM (Support Vector Machine) avec les données qui ont été chargées pour l'analyse prédictive, vous devez scinder l'ensemble de données en un ensemble d'apprentissage. ensemble d'essai.
Heureusement, scikit-learn a implémenté une fonction qui vous aidera à diviser facilement l'ensemble de données. La fonction train_test_split prend en entrée un seul ensemble de données et une valeur en pourcentage. La valeur en pourcentage est utilisée pour déterminer la taille de l'ensemble de test. La fonction renvoie deux ensembles de données: l'ensemble de données de test (avec sa taille spécifiée) et l'ensemble de données d'apprentissage (qui utilise les données restantes).
En règle générale, 70 à 80% des données peuvent être utilisées comme ensemble d'apprentissage et utiliser les données restantes comme ensemble de test. Mais le jeu de données Iris est très petit (seulement 150 instances), vous pouvez donc en utiliser 90% pour former le modèle et utiliser les 10% restants comme données de test pour voir comment va fonctionner votre modèle prédictif.
Tapez le code suivant pour diviser votre jeu de données: >>>> à 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)
La première ligne importe la bibliothèque de validation croisée dans votre session. La deuxième ligne crée l'ensemble de test à partir de 10% de l'échantillon.
y_train contiendra 135 étiquettes dans le même ordre que les 135 observations.
x_test contiendra 15 (ou 10%) observations et ses caractéristiques.
y_test contiendra 15 étiquettes dans le même ordre que les 15 observations.
Le code suivant vérifie que le split est ce que vous attendiez:
Beaucoup de débutants dans le domaine de l'analyse prédictive oublient de diviser les ensembles de données - ce qui introduit un sérieux défaut de conception dans le projet. Si les 150 instances complètes ont été chargées dans la machine en tant que données d'entraînement, cela ne laisserait aucune donnée invisible pour tester le modèle. Ensuite, vous devrez recourir à la réutilisation de certaines instances de formation pour tester le modèle prédictif.
Vous verrez que dans une telle situation, le modèle prédit toujours la bonne classe - parce que vous utilisez les mêmes données que vous avez utilisées pour former le modèle.Le modèle a déjà vu ce modèle auparavant; cela n'aura aucun problème à répéter ce que l'on voit. Un modèle prédictif fonctionnel doit faire des prédictions pour des données qu'il n'a pas encore vues.
Lorsque vous disposez d'une instance d'un classificateur SVM, d'un jeu de données d'apprentissage et d'un jeu de données de test, vous êtes prêt à former le modèle avec les données d'apprentissage. Taper le code suivant dans l'interpréteur fera exactement cela: >>>> svmClassifier. fit (X_train, y_train)
Cette ligne de code crée un modèle de travail pour faire des prédictions. Plus précisément, un modèle prédictif qui permettra de prédire à quelle classe de Iris appartient un nouveau jeu de données non étiqueté. L'instance svmClassifier aura plusieurs méthodes que vous pouvez appeler pour faire différentes choses.
Par exemple, après avoir appelé la méthode fit, la méthode la plus utile à appeler est la méthode predict. C'est la méthode à laquelle vous allez alimenter de nouvelles données; en retour, il prédit le résultat.