Cet article est l'article du 23ème jour du Calendrier de l'Avent PONOS 2019.
Cet article vise à vous donner un essai rapide de l'apprentissage automatique sans les tracas du travail préparatoire. Je n'aborderai pas les explications détaillées des méthodes ou les méthodes de résolution de problèmes.
Tout d'abord, inscrivez-vous sur Kaggle (Kaggle). Kaggle est une plate-forme où les scientifiques des données et les ingénieurs en apprentissage automatique du monde entier se rasent jour et nuit. L'environnement d'exécution de python est préparé sur le Web, et toutes les bibliothèques et données d'apprentissage nécessaires sont disponibles, vous pouvez donc l'essayer immédiatement sans créer l'environnement localement.
Des compétitions ont lieu tous les jours chez Kaggle, et vous pouvez toucher diverses données. Cette fois, nous utiliserons Titanic: Machine Learning from Disaster, qui est toujours ouvert sous forme de tutoriel, pas le concours organisé. Le but de ce concours est de déterminer si un passager sans information de survie a survécu, en utilisant la liste des passagers du Titanic (nom, âge, sexe, classe de cabine, etc.) et s'il a survécu ou non en tant que données de formation.
Vous pouvez rejoindre en appuyant sur Rejoindre la compétition.
Vous pouvez le créer en accédant à l'onglet Cahiers et en appuyant sur Nouveau bloc-notes. Accédez à l'écran des paramètres. Vous pouvez conserver la valeur par défaut, alors appuyez simplement sur Créer.
Voyons d'abord les données à apprendre. Effacez le code écrit depuis le début et écrivez le code suivant.
cell1
import pandas as pd
Vous pouvez exécuter le contenu de cette cellule en appuyant sur ctrl + entrée ou en appuyant sur le bouton de lecture sur la gauche. Rien ne change ici car nous ne faisons que charger la bibliothèque. Appuyez sur b ou sur le code + affiché en bas de la cellule pour ajouter une nouvelle cellule et écrivez le code suivant.
cell2
train = pd.read_csv('../input/titanic/train.csv')
test = pd.read_csv('../input/titanic/test.csv')
passenger_id = test.PassengerId #Enregistrer pour soumission
train.head(3)
Si vous l'exécutez et que le tableau est affiché, il réussit. Cette fois, j'utiliserai Survived, Pclass, Sex, Age, SibSp, Parch, Fare, Embarked.
cell2
train = train.iloc[:, [1, 2, 4, 5, 6, 7, 9, 11]]
test = test.iloc[:, [1, 3, 4, 5, 6, 8, 10]]
Des données numériques sont nécessaires pour l'apprentissage, nous allons donc formater les données. Tout d'abord, réparez la perte de données. Depuis train.Age, train.Embarked, test.Age et test.Fare ont des données manquantes, remplissez-les avec de bons nombres Shioume. Cette fois, Embarqué est rempli avec S, et les autres sont remplis avec la valeur médiane.
cell2
train.Age = train.Age.fillna(train.Age.median())
train.Embarked = train.Embarked.fillna('S')
test.Age = test.Age.fillna(test.Age.median())
test.Fare = test.Fare.fillna(test.Fare.median())
Ensuite, convertissez Sex and Embarked en nombres avec un encodage à chaud.
cell2
train = pd.get_dummies(train)
test = pd.get_dummies(test)
Enfin, convertissez l'âge et le tarif en valeurs discrètes. Puisqu'il utilise numpy, il charge la bibliothèque.
cell1
import numpy as np
cell2
train.Age = np.digitize(train.Age, bins=[10, 20, 30, 40, 50])
train.Fare = np.digitize(test.Fare, bins=[10, 20, 30])
test.Age = np.digitize(train.Age, bins=[10, 20, 30, 40, 50])
test.Fare = np.digitize(test.Fare, bins=[10, 20, 30])
Cette fois, nous utiliserons une forêt aléatoire. Il s'agit d'une méthode d'apprentissage d'arbres de décision légèrement différents et de leur moyenne. Commencez par charger la bibliothèque (scikit-learn).
cell1
from sklearn.ensemble import RandomForestClassifier
Séparez les survivants des données d'entraînement. Ajoutez une nouvelle cellule et écrivez le code suivant.
cell3
X = train.iloc[:, 1:]
y = train.iloc[:, 1]
Maintenant que les données d'entraînement sont prêtes, formons-nous.
cell3
forest = RandomForestClassifier(n_estimators=5, random_state=0)
forest.fit(X, y)
Maintenant que nous avons appris, nous allons faire des prédictions en utilisant des données de test.
cell3
predictions = forest.predict(test)
Enfin, enregistrez le résultat de la prédiction dans un fichier.
cell3
submission = pd.DataFrame({ 'PassengerId': passenger_id, 'Survived': predictions })
submission.to_csv('submission.csv', index=False)
Appuyez sur le bouton Valider pour afficher une fenêtre contextuelle. Appuyez sur le bouton Ouvrir la version lorsque vous avez terminé. Dans la colonne Sortie de l'écran nouvellement ouvert, il y a le fichier submit.csv enregistré précédemment et le bouton Soumettre au concours, alors appuyez dessus. Le score sera affiché une fois la soumission terminée. Je pense que ce sera autour de 0,76 (plus il est proche de 1, meilleur est le score).
Comme j'ai essayé cette fois, la partie apprentissage est principalement effectuée par la bibliothèque. La difficulté réelle était essentiellement la partie du moulage des données (plus difficile si vous vouliez améliorer la précision). Ceux qui maîtrisent ce type de travail peuvent souhaiter s'engager sur la voie de l'apprentissage automatique.