[PYTHON] Essayez le machine learning à la légère avec Kaggle

Cet article est l'article du 23ème jour du Calendrier de l'Avent PONOS 2019. Kaggle_logo.png

introduction

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.

Inscrivez-vous avec Kaggle

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.

Essai utilisant les données de l'accident de naufrage du Titanic

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.

Participez au concours

Vous pouvez rejoindre en appuyant sur Rejoindre la compétition.

Faire un cahier

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.

Afficher les données

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]]

Formater les données

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])

apprendre

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)

Soumettre à Kaggle

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).

Et à la concurrence réelle ...

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.

Recommended Posts

Essayez le machine learning à la légère avec Kaggle
SVM essayant l'apprentissage automatique avec scikit-learn
L'apprentissage automatique appris avec Pokemon
Essayez l'apprentissage en profondeur avec TensorFlow
Apprentissage automatique avec Python! Préparation
Commencer avec l'apprentissage automatique Python
Essayez de prédire le taux de change (FX) avec un apprentissage automatique non approfondi
Apprentissage automatique
Essayez le Deep Learning avec les concombres FPGA-Select
Renforcer l'apprentissage 13 Essayez Mountain_car avec ChainerRL.
[Apprentissage automatique] Étudions l'arbre de décision
J'ai essayé l'apprentissage automatique avec liblinear
Apprentissage automatique par python (1) Classification générale
Les débutants en apprentissage automatique essaient la régression linéaire
Essayez l'apprentissage de la représentation commune avec le chainer
Machine learning d'inspiration quantique avec des réseaux de tenseurs
Démarrez avec l'apprentissage automatique avec SageMaker
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
[Apprentissage automatique] Démarrez Spark avec iPython Notebook et essayez MLlib
Recommandation de manga par machine learning Partie 1 Commençons par diviser sans penser à rien
Prédire la demande de puissance avec l'apprentissage automatique, partie 2
Amplifiez les images pour l'apprentissage automatique avec Python
[Apprentissage automatique] Essayez d'exécuter Spark MLlib avec Python et faites des recommandations
Sklearn de données déséquilibrées avec apprentissage automatique k-NN
Apprentissage automatique avec python (2) Analyse de régression simple
J'ai essayé d'apprendre avec le Titanic de Kaggle (kaggle②)
Une histoire sur l'apprentissage automatique avec Kyasuket
Essayez les prévisions de prix Bitcoin avec Deep Learning
Essayez avec Chainer Deep Q Learning - Lancement
Essayez l'apprentissage profond de la génomique avec Kipoi
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
[Python] Première analyse de données / apprentissage automatique (Kaggle)
Apprentissage automatique avec Pytorch sur Google Colab
[Memo] Apprentissage automatique
Classification de l'apprentissage automatique
Construction d'environnement AI / Machine Learning avec Python
Exemple d'apprentissage automatique
Renforcer l'apprentissage 11 Essayez OpenAI acrobot avec ChainerRL.
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Apprentissage automatique à partir de Python Personal Memorandum Part2
Essayez de prédire la demande de puissance par l'apprentissage automatique
Apprentissage automatique à partir de Python Personal Memorandum Part1
[Python] Analyse de données, pratique du machine learning (Kaggle) -Prétraitement des données-
J'ai commencé l'apprentissage automatique avec le prétraitement des données Python
Essayez d'utiliser le bloc-notes Jupyter à partir d'Azure Machine Learning
Créer un environnement d'apprentissage automatique Python avec des conteneurs
Résumé du didacticiel d'apprentissage automatique
Essayez de gratter avec Python.
Apprendre Python avec ChemTHEATER 03
"Orienté objet" appris avec python
Apprentissage automatique sur le surapprentissage
Apprendre Python avec ChemTHEATER 05-1
Apprentissage automatique: supervisé - AdaBoost
Régression logistique d'apprentissage automatique
Machine de vecteur de support d'apprentissage automatique
Apprendre Python avec ChemTHEATER 02
Régression linéaire d'apprentissage automatique