[PYTHON] Une histoire postée sur Kaggle par un amateur qui ne connaît pas le terminal depuis 3 semaines

introduction

Cet article partage mon expérience de Kaggle basée sur les difficultés. Explique l'enregistrement des compétitions Kaggle et la soumission des pronostics. Cependant, il n'est probablement pas nécessaire de l'expliquer à la plupart des gens. (Vraiment) Veuillez me pardonner d'avoir fait un gâchis.

Du défi Kaggle à la publication d'articles

Visant la voie de la science des données, j'ai commencé à étudier à partir du 7 décembre ce mois-ci. Cependant, y compris mon emploi précédent **, je n'ai jamais traité de programmation de ma vie **.

Je n'utilise Word, Excel et Powerpo que dans le but de créer du matériel, et pour dire les choses franchement, la frappe est un peu plus rapide grâce à mon expérience d'être accro aux jeux en ligne.

En empruntant la place de Qiita et en conservant des registres d'apprentissage détaillés, pendant les deux premières semaines après le début des études, j'ai essayé de comprendre et de bien comprendre les bases en utilisant des livres et Progate, mais après tout ** Je pensais que la sortie pratique était indispensable pour le mastering **, j'ai donc décidé de l'afficher au concours Kaggle, et bien que ce soit à moitié forcé, j'ai réussi à publier les livrables dans la troisième semaine par essais et erreurs. C'est fait.

Cependant, Kaggle est uniquement en anglais, et pour moi, qui comprend peu l'apprentissage automatique, chaque passage de l'inscription à la soumission était un gâchis, et je ne savais pas quoi faire. (Ce n'était pas une journée de gaspillage parce que j'ai pu apprendre beaucoup tout en faisant des recherches.)

Cependant, il est également vrai que s'il y avait du matériel que je pourrais comprendre à mon niveau, je pourrais poster plus facilement.

Sur la base de cette idée, j'espère que cela sera utile pour ceux qui vont défier le concours Kaggle et ceux qui ont un niveau similaire (le cas échéant), alors enregistrez le concours et soumettez la valeur prévue aussi facilement que possible. J'ai expliqué.

Si vous trouvez quelque chose de difficile à comprendre, je vous serais très reconnaissant de bien vouloir nous donner des conseils et des suggestions.

Inscrivez-vous aux compétitions Kaggle

    1. Accédez à Kaggle Official
  1. Cliquez sur "Compétitions". Trier par "Récemment créé" trie les compétitions dans l'ordre dans lequel elles ont commencé le plus récemment. qiita1-1.png

    1. Cette fois, je participerai au concours entouré d'un cadre rouge. (Classification en 2 classes, traitement du langage naturel) qiita1-2.png
  2. Après avoir confirmé le contenu de «Rule», participez à «Join Competition». Le contenu du règlement varie en fonction de la compétition, mais il existe une description du nombre maximum d'équipes et de la date limite de soumission. qiita1-3.png

  3. Obtenez l'ensemble de données à utiliser pour le concours à partir de "Tout télécharger" dans "Données". train.csv est pour l'apprentissage, test.csv est pour la prédiction, sample_submission.csv est le format de soumission. qiita1-4.png

  4. La compétition a commencé. Vous pouvez également créer et soumettre à l'aide de la fonction "Notebooks" de Kaggle, mais je l'ai fait en utilisant le Jupyter Notebook. Si vous installez Anaconda, il sera livré avec vous, il est donc recommandé.

Analyse / prédiction (apprentissage automatique)

Le flux général est le suivant.


1. 1. Importer divers modules
   pandas, numpy, scipy etc...

2. Lire les données
   read_Lisez l'ensemble de données avec csv.

3. 3. Prétraitement
Comprendre les valeurs manquantes: remplacer par des valeurs représentatives, moyenne ou supprimer. )
Répartition des données: train.csv et test.Divisez le csv en deux, un pour l'apprentissage et un pour la prédiction.(X et Y)

4. La modélisation
Linéaire, arbre de décision, réseau neuronal, etc....

5. Apprendre avec un modèle
Données d'apprentissage divisées par 3 termes(X_train et y_Train) pour former (adapter) le modèle.

6. Calcul de la valeur prédite
L'une des données de prédiction (X) utilisant le modèle à 5 termes_test)Prédire(predict)Et calculez la valeur prévue.

7. Évaluation
En utilisant la valeur prédite calculée au point 6, y_Faites correspondre la réponse avec le test. (La précision de Sklearn_Utiliser le score)

8. Réglage des modèles, paramètres, etc. (si nécessaire)

Comme mentionné au début, la partie apprentissage automatique est omise dans cet article en raison des règles du concours auquel j'ai participé et la méthode d'analyse diffère selon la compétition.

Il existe de nombreux articles utiles sur l'apprentissage automatique, y compris l'explication de Titanic Passenger Survival Prediction, veuillez donc le rechercher. Comme ce concours est déjà terminé, il n'y a pas de prix, etc., mais c'est l'un des concours qui est souvent recommandé comme tutoriel pour les débutants en apprentissage automatique, et ce sera très pédagogique de simplement bouger les mains une fois en regardant l'article de commentaire. Je vais.

Soumettre des prédictions

Une fois que vous avez créé un modèle satisfaisant grâce à une série d'apprentissage automatique, créez un fichier de soumission. Chaque ensemble de données de chaque compétition doit avoir un échantillon à soumettre, alors façonnez-le en conséquence. Je pense qu'il y a différentes façons de le faire, mais je l'ai fait avec ** le résultat de la prédiction de test.csv (colonne cible) et la méthode de remplacement de la colonne cible de sample.csv **. Bien entendu, le traitement diffère en fonction de la nature de la concurrence, mais le traitement du langage naturel a les formes suivantes.

python


# "test.csv"de"text"列deみ抜き出す。
presub1 = test["text"]

#Vectoriser. (Pour les tâches de traitement du langage naturel.)
tfidf_vect = TfidfVectorizer()
presub2 = tfidf_vect.transform(presub1)

#Prédisez avec le modèle créé.
presub3 = model.predict(presub2)

# "sample.csv"Colonne cible et résultat prévu(Remplacez la colonne cible).
sample["target"] = presub3

#Confirmez qu'il peut être remplacé. Cette fois, j'utilise l'impression.
#Toutes les colonnes cibles avant exécution"0"Depuis, s'il a changé, on considère qu'il a été remplacé.
print(sample)

#Sortie dans un fichier csv. Comme il a un index (numéro de série), il est défini sur False cette fois.
#Le premier argument est le nom du fichier de sortie. J'espère que je me connais.
sample.to_csv('submission.csv', index = False)

En conséquence, "soumission.csv" est affiché dans le répertoire courant. Accédez à la page du concours de participation et soumettez comme suit

    1. Cliquez sur "Soumettre les prévisions" en haut à droite de l'écran qiita2-1.png
  1. Faites glisser et déposez le fichier CSV de sortie à soumettre dans ①, puis cliquez sur ② pour soumettre une fois le téléchargement terminé. S'il n'y a pas d'anomalies, il sera enregistré dans le "Leaderboard". qiita2-2.png

Ceci termine la publication sur Kaggle. Après la publication, nous essaierons de faire des erreurs en visant une plus grande précision et en concurrence avec les autres participants. De nombreux points peuvent être élaborés, tels que la conception du prétraitement, la modification des modèles, la superposition de modèles et le réglage des paramètres. Certains ont publié leurs propres noyaux, tandis que d'autres recherchent la précision en utilisant des techniques étonnantes.

Malheureusement, il semble y avoir une fuite dans les résultats de cette compétition l'autre jour, et le classement est rempli avec le score 1.0 (score parfait) ... Parce qu'il y a aussi de telles choses.

en conclusion

Traitez un peu l'ensemble de données, entraînez le modèle existant, sortez la valeur prédite, renvoyez-la dans le fichier csv et soumettez-la. Avec le recul, ce n'est pas vraiment un gros problème, mais pour moi, qui a commencé à étudier en n'ayant pas d'expérience en code ou en écriture et en ne sachant pas ce qu'était le terminal, la route jusqu'à ce point a été une série de difficultés. ..

Les scores ne sont pas bons à ce stade, et ils ne devraient pas être intelligents sur la façon d'écrire du code. Cependant, j'ai pu beaucoup porter en publiant par essais et erreurs. Bien sûr, il reste encore beaucoup à apprendre, je vais donc continuer à travailler dur pour m'améliorer.

C'était un contenu enfantin, mais j'espère que cet article sera utile aux personnes occupant des postes similaires. Merci pour la lecture.

Recommended Posts

Une histoire postée sur Kaggle par un amateur qui ne connaît pas le terminal depuis 3 semaines
Une histoire sur un ingénieur venu uniquement du côté serveur a créé un portfolio
Parlez de la probabilité d'évasion d'une marche aléatoire sur une grille entière
[Python] Une barre de progression sur le terminal