Pythonによるデータ分析① タイタニックの生存予測をしよう!



データ分析を学びたいけど、なにから勉強を始めればいいのかな?

この記事では、Python初心者でもできるように、タイタニック生存予測をレクチャーしていきます!

記事にでてくるコードは配布しております。下記LINE@からダウンロードください。

メッセージにて、「データ分析」とお送りいただければダウンロードができます。

友だち追加

このシリーズを読むとわかること

  • Python初心者でも、そもそもデータ分析とはなにかをざっくりと理解できる
  • ランダムフォレストを用いて、タイタニックの生存予測を分析することができる

今回は、

  • そもそもデータ分析とはなにかざっくり理解する
  • サンプルデータを用いて、簡単な分析をおこなう

という流れをサンプルコードとともに解説をします!

ここ最近、「AIが仕事を奪う」や「機械学習は学んだほうが良い」などデータを使って何かをするプログラミングについて爆発的に叫ばれるようになりました。

それもそのはず、データを使ったモノは数多く身の回りにあるためです。

身近なところでは、Googleによる「自動翻訳」やAmazonショッピングの「オススメ(レコメンデーション)」などです。

このように、今後もデータを使って社会のインフラが変わっていくことが言うまでもありません。

しかし、データを使うこと(データ分析)がなぜ社会のインフラを変えうるのか、そもそもデータ分析は何なのか、を分かってないと、社会の変化に取り残されてしまったり、将来を見据えて行動することができなくなってしまいます。

そこで、本シリーズでは機械学習の資格(G検定)を保有している筆者が、「データ分析をざっくり解説」し、実践として「タイタニックの生存予測」をPythonを使いレクチャーしていこうと思います!

それでは一緒にまなんでいきましょう!

データ分析とはなにか理解しよう

人間 脳

実践へ入る前に、必要な知識としてデータ分析についてかんたんに解説をします。

そもそもの「データ分析とは」という内容から、データ分析が注目されている理由、データ分析の種類について学びます。

そして最後に、「データ分析の流れ」を確認し実践へ備えます。

それでは見ていきましょう。

データ分析とは

データ分析とは
あるデータから傾向や特徴などを求めることを通して、課題解決に取り組むことです。

ここでいうデータとは、

  • ある時間を固定して、色んな項目を整理したデータの「クロスセクションデータ」
  • ある項目と時間の経過をまとめたデータの「時系列データ」
  • クロスセクションデータと時系列データを組み合わせた「パネルデータ」

などがあります。

こうした、様々なデータに対して、課題を解決するのにふさわしい手法やモデルを考え、分析していくことが「データ分析」です!

データ分析が伸びている理由

ここでは、そうしたデータ分析がなぜ伸びてきているのかについて取り上げます。

データ分析が伸びている理由は、データがこれから”社会のインフラ”になるとされているためです。

これまで人類は、火や電気、インターネットなどが時代とともに様々なモノが必要不可欠なモノ(社会インフラ)となってきました。

そんな中、最近では人工知能の発展により、”データ”を利用することで、作業の効率化や意思決定の最適化など、世の中に今まで必要経費だったコストを更に削ることが可能となりました。

そうしたことから、社会の新たなインフラにデータが求められ、データ分析が伸びています!

why
もし詳しく知りたい方は、「第四次産業革命 」とネットで検索し調べてみてね。

データ分析の種類

ここで、データ分析の種類について大まかにまとめます。

データ分析は以下の図のように種類が分類されます。

データ分析種類 図

「人工知能」「機械学習」「統計学」「ディープラーニング」の順でみていきます。

人工知能とは

人工的につくられた人間のような知能、ないしはそれをつくる技術。 (松尾 豊)

上の説明は一例で、人工知能の定義は学者によっても様々なので、今回は分析作業をプログラムで自動化しているもの全般としています。

データ分析全般を人工知能と定義し、人工知能(AI)を一番大きな枠としています。

機械学習とは

与えられた情報から自動的にパターンを抽出(学習)して特定の処理を効率的に実行するプログラムを作成するための技術。

人工知能の中でも、データの特徴を分析し特定の処理を効率的に実行するプログラムを機械学習といいます。

統計学とは

 経験的に得られたバラツキのあるデータから、応用数学の手法を用いて数値上の性質や規則性あるいは不規則性を見いだす学問。

機械学習の中でも、統計学を知識を利用しプログラムを実行するものもあります。

ディープラーニングとは

機械学習手法の一つのニューラルネットワークを多層化した技術。

機械学習の中でも、ニューラルネットワークと呼ばれる機械学習技術を強化したものをディープラーニングと呼びます。

why
今回はざっくりとした説明だけど、データ分析にはいろんな種類がある、というということが分かればOKだよ!

データ分析の流れ

次に、データ分析の流れを説明していきます。

データ分析の流れはざっくり以下の通りです。

  1. なにを課題とし解決したいのかを考える
  2. その課題にたいして方法でデータを集分析をがしていくことが適切か考える
  3. データを収集する
  4. データを処理する
  5. データを分析する
  6. 分析結果から課題解決のための提案や説明をおこなう

ここで大事なのは、まずそもそも何を解決したいのかです。

たとえば、「ある歌手が出している歌詞で一番多い単語を求めたい」という課題があるとします。

この場合、一番多い単語を求めることが解決であるため、

  1. 歌詞を読み込む
  2. 歌詞を単語ごとで分ける
  3. 集計をし単語が多いものを表示する。

といった方法が考えられます。

この方法は、テキストマイニングとよばれる手法を使っていますが、また別の課題の場合、解決方法が異なります。

ここでお伝えしたいことは『データの分析方法に優劣はなく、課題をもとに分析方法を考える必要がある』ということです。

why
「とりあえずディープラーニングをやっとけばいい」みたいなことにはならないように注意しよう!だから、最初の「課題が何か」が一番大事だよ!



Pythonで、簡単なデータ分析をしよう!

ここで、タイタニックの生存予測をレクチャーする前に簡単な分析を行いたいと思います。

まずはデータ分析をおこなう流れに慣れ、タイタニック予測を次回おこなう際の知識をつけていくためです。

環境構築をし、次に実際にデータ分析を行います。

今回おこなうデータ分析は、機械学習的手法の一つである「重回帰分析」を使い「出生率を予測する」分析をしていきます!

データ分析に慣れることが目的ですので詳しい分析方法の解説は割愛します。

こちらの記事にて解説していますので、興味がある方はご覧ください。

Pythonによる財務分析⑧ -バフェットコードを用いて完全レクチャー! (全8回)

Jupyter Notebook(ジュピター・ノートブック)を使う

今回、Pythonでデータ分析をおこなうに当たって、Jupyter Notebook(ジュピター・ノートブック)を開発環境として分析を行います。

<span>ジュピター・ノートブックとは</span>

ブラウザ上で動作するプログラム実行ツールです。

教育機関や研究機関でも広く使われており、Pythonデータ分析を行うには欠かせないツールとなっています。

why
why
環境構築は下記記事をご参考にしてみてね。
pc mac

【Anaconda】 Pythonの環境構築 |mac編|

pc mac

【Anaconda】 Pythonの環境構築 |Windows編|

分析するデータを読みこむ

ジュピターノートブックが準備できたら、下記LINE@から「データ分析第1回」のファイルと「csv_data」のフォルダをダウンロードします。

メッセージにて、「データ分析」とお送りいただければダウンロードができます。

友だち追加

その後「データ分析第1回」を開きます。

python フォルダ

データ分析のファイルのコードを実行し、ファイルデータを読み込みます。

その際、まだインポートをしていないライブラリがあればアナコンダから取得しましょう!

python コード

今回読み込むデータは以下のようなデータです。今回の分析の課題は、「様々な項目から出生率を予測する」というもので考えています!

python コード python コード

データを加工し分析する

今回は「出生率を予測する」ことが求められています。

そのため、予測(分析)できるように、下記のようにまずデータを加工していきます。

その後、分析をします。

python コード

予測値がでました、詳しい内容は省きますが、とりあえず重回帰分析では「予測値が出る」ということを抑えましょう!

統計量を確認する

予測値が出ることが分かった後、その予測値が正しいのか確認します。

確認の際は統計量をつかいます。

why
why
統計量の説明(決定係数やP値)についてはPython財務分析シリーズ第7回の『統計量を確認する』を読んでね!
python コード

 

python コード

様々な項目がありますが、単回帰分析と同様に「決定係数」と「Pをみます。

決定係数をみると、0.7と表示されています。

これは、出生率のデータがどういった要因で説明されているかが70パーセント分かった、という意味で、かなりデータ分析のモデルが当てはまりが良いです。

また、P値(P >|t|)をみると、0.05以上の数値をもつ要因(説明変数)が1つみられます。

P値に関しては、0.05以上の場合m別の要因によって出生率に影響を与えている可能性があるため、適切でないP値をもつデータを除いて再度統計量を出す必要があります。

データ処理をおこない再度統計量を表示する

さきほどの統計量から、P値に問題がある指標がみつかりました。これをもとに、データ処理をおこない再度統計量を出していきます!

P値をみるに、  ” ×2 “の指標が問題の指標となっています。

なので、”×2″の指標である”Examination”という指標を削除し、再度統計量を求めます。

python コードpython コード

これをみると、P値の問題が解消されていることがわかり、データが正しく分析できていることが分かります!

重回帰分析が慣れていない人は難しかったかもしれませんが、ここでは「分析結果が正しいかどうか判断する」ということを抑えましょう!

多重共線性によるデータ処理が必要か確認する

多重共線性が起こると分析結果にバグが生じてしまい、正確な分析ができなくなってしまいます。

なので、多重共線性が起きているか確認する必要があります。

why
why
多重共線性の説明についてはPython財務分析シリーズ第8回の『統計量を確認する』を読んでね!

説明変数間で相関係数が高いかどうか調べます。

pyrhon コード

結果をみるに、説明変数間の相関係数がひくいことから多重共線性は起きていないことがわかります。

python 図

なので、P値によりデータ処理をおこなった分析は、正しく結果が出ていることがわかります!

もし、多重共線性に問題がありデータ処理をおこなったさいに、P値に問題が発生した場合はP値によるデータ処理を行って統計量を確認しましょう!

 

今回の流れが、課題に対して、データを加工し分析する、という流れです。

その後、予測をもとに課題に沿った提案や解決をおこないます!

今回は割愛しますが、なんとなくデータ分析の流れがつかめれば大丈夫です!



まとめ

今回は、

      • そもそもデータ分析とはなにかざっくり理解する
      • サンプルデータを用いて、簡単な分析をおこなう

      という流れをサンプルコードとともに解説をしました!

      次回からは、いよいよ「タイタニックの生存予測」に入っていきます!

      この予測課題は、kaggleと呼ばれる機械学習のコンテストで入門とされる課題です。

      タイタニック予測を通し、データ分析の世界を楽しんで頂ければと思います!!

      記事にでてくるコードはLINE@にて配布をしております!
      LINEのメッセージ欄に「データ分析」とお送りいただければ、ダウンロードリンクを送付いたします!

      コード配布はLINE@にて!

      友だち追加

      コメントを残す

      メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

      CAPTCHA