8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

KaggleAdvent Calendar 2019

Day 5

Kaggle初心者に向けたタイタニックコンペの課題

Last updated at Posted at 2019-12-04

先日、Kaggleのタイタニックコンペを課題とした社内研修を行いました。
その際の説明資料と参加者にやってもらった演習を共有します。
資料と課題はKaggleのNotebookとなっていますので、興味のある方はそちらも合わせてご確認ください。

ちなみにQiita初投稿です。

はじめに

なぜKaggleを選んだか

研修だけで全てを教える(学ぶ)ことはできないため、各個人で継続して取り組んでもらう必要があると考えました。
何かを学ぼうとしたときに環境構築で躓くこともあるため、それが不要となるKaggleを利用することにしました。

想定した参加者

  • 機械学習に興味を持っている
  • Kaggleを利用したことがない
  • Python未経験

研修について

研修の目標

  • 機械学習の流れを体験する
  • 『自分でもプログラムが書けそう』と感じてもらう

説明資料、演習課題

Kaggleを使用するので、説明資料もKaggleのNotebookとして作成しました。

###進め方

説明と演習をバランスよく組み合わせようと思い、下記の流れで進めました。

  1. 資料を使ってデータ分析まで説明
  • Pythonの基本
  • Kaggleの使い方、用語説明
  • 機械学習の流れを確認(データ読込,データ分析)
  1. データ分析の演習

  2. 資料を使って予測まで説明

  • 前処理
  • モデル作成、学習、予測
  1. 予測精度向上の課題

用意した演習

下記内容は演習用のNotebookにも記載していますが、一応こちらの記事にも記載しておきます。

データ分析

step1) データの概要を確認

  • トレーニングデータとテストデータの行数、列数を確認しましょう
  • トレーニングデータの先頭5件を表示してみましょう
  • テストデータの先頭5件を表示してみましょう
  • トレーニングデータとテストデータの違いは何でしょうか?
    機械学習で生存者を予測するとは、具体的にどのようなことでしょうか?

step2) データの詳細を確認

  • infoメソッドでトレーニングデータの情報を表示してみましょう
  • トレーニングデータの欠損値状況を確認しましょう
  • テストデータの欠損値状況を確認しましょう
  • ターゲット変数 Survived の値毎の件数を確認してみましょう
  • 変数 Pclass にはどんな値が設定されているか確認してみましょう
  • 変数 Age の分布をヒストグラムで確認してみましょう
  • 変数 Age の最大値、平均値、中央値を確認してみましょう
  • 変数 Sex の分布をvalue_counts+棒グラフで確認してみましょう
  • pd.crosstabを使って、【Survived毎】の 変数 Sex の件数を確認してみましょう

Step3) 相関関係があるのか可視化

  • 【Survived毎】の 変数 Sex の件数を棒グラフで確認してみましょう
    相関関係はありそうですか?あるとしたらどのような傾向がありますか?
  • 【Survived毎】の 変数 Pclass の件数を棒グラフで確認してみましょう
    相関関係はありそうですか?あるとしたらどのような傾向がありますか?

特徴量作成および予測

前提)Age(欠損値0埋め)、Sexを使用してRandomForestで予測する流れは作成済み

  • Age の欠損値を中央値で埋めてみましょう
  • Fare を予測に使ってみましょう
  • Embarked を予測に使ってみましょう
  • SibSp+Parch+1 を FamilySize として追加してみましょう
  • FamilySize<=1 を IsAlone として追加してみましょう
  • Cabin の1文字目を特徴量として追加してみましょう

振り返っての反省

今回の研修は5時間で行いました。
最後に用意していた予測精度を上げる課題を進めるのに、思った以上に時間かかり、
結果として難しかったという印象を持たれてしまいました。
後日、追加研修という形で再度実施しましたが、演習多めで1つ1つじっくりと進めるのが良いと感じました。

おわりに

タイタニックコンペについて書かれた記事は多く、色々と参考にさせて頂きました。
Python初心者向けの研修課題にしようとした時に、資料としてまとめることが多かったので、私も皆さんのお役に立てればと共有しました。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?