▶ まだデータ分析の環境構築が済んでいない方は、まず環境構築からはじめましょう。以下の記事を参考にしてください。(以前はAnacondaによるインストールをおススメしていましたが、Python公式からインストールする方法をおススメに変更しました)
はじめに
今回はPythonを使ってデータ分析をするために必要な知識を最速で身につける学習ステップをご紹介します。まずは目の前にあるテーブルデータをいろんな見方ができるようになりましょう。
いろんな学び方があると思いますが、最初は細部にこだわらず、概要を把握したらどんどん端折って実際にデータを扱ってみるのがよいです。実際にデータを扱ってみると、細部を知らないとできないことに遭遇するので、その都度、調べて問題を解決していく方法が結局早く学ぶことにもなりますし、定着もしやすいです。
逆にはじめからすべてを完璧に学ぼうとすると、時間もかかりますしなかなか実践に取り組めないため、知識の定着も期待できません。
EXCELやPowerPointなどのOfficeアプリケーションもすべての機能を知っているわけではないですよね?もしかしたらこれらの機能の半分も知らないかもしれません。それでも日常の業務で利用できていますし、必要なことはその都度調べているかと思います。
データ分析の学習についても特別なことはありません。同じように「実践」することを重視して進めると結果的に早く身に着けることができるでしょう。必要なのは「最低限」の知識です。学習の初段階では深く学ぼうとせずに概要の把握と最低限の知識を意識するようにしてください。
データ分析の基礎知識を学ぶ学習ステップ
-
Step1Pythonの基本文法を学ぶ
-
Step2データ分析に必須のライブラリを学ぶ
-
Step3データ分析の流れの確認する
-
Step4データ分析の各ステップの基本を学ぶ
-
step5実践する
-
Step6興味が沸いたものを掘り下げて学ぶ
Pythonの基本文法
まずはデータ構造と基本構文を押さえましょう。といっても構える必要はありません。データ構造については、「リスト型」「辞書型」「文字列型」「集合」があって、それぞれどのようにデータを追加・削除・抽出するかがわかれば十分です。
▶ リスト型についてはこの記事で基本をおさえましょう。たったこれだけです。
▶ 辞書型については以下の記事をご覧ください。まずはこれだけ抑えておけばよいです。
▶ 文字列型については以下の記事をご覧ください。まずはこれだけ抑えておけばよいです。
次に実際にこれらを扱うにあたって、基本的な構文として「if文」「for文」を学びましょう。「if文」を知ることで、条件分岐ができるようになり、処理の幅が広がります。また、「for文」を学ぶことで繰り返し行う処理ができるようになります。
▶ if文を基本から解説した記事はこちらです。これで誰でもif文を書くことができるようになります。
▶ for文による繰り返し処理の仕方は、この記事をご覧ください。
これだけでも「リストに格納されているデータを順番に取り出し、条件に合致しているものだけを新しいリストの要素にする」といったことができます。
データ分析に必須のライブラリを学ぶ
テーブルデータを分析するにはpandasライブラリ、可視化するためにmatplotlibライブラリが必須になります。数値計算を効率的におこなうnumpyライブラリも機械学習をするには必須のライブラリとなりますが、必要に迫られるまでは飛ばしてしまってもよいです。
pandasには「Series」と「DataFrame」というデータ構造があります。まず、この概要を学びましょう。これでテーブルデータを扱うことができるようになります。
▶ pandasのデータ構造「Series」と「DataFrame」の基本は次の記事をどうぞ
データは表形式でみていてもなかなか概要をつかむことができません。そこで可視化する方法も初期の段階で学んでおくのがおすすめです。可視化することで数値を眺めるだけでは見つけられなかった特徴を見つけることができるようになります。ただ、細部にこだわると、なかなか奥が深いので初期の段階では「基本的な描画」ができればよいです。きれいに描けなくてもデータの特徴やパターンがわかればよい、と割り切って次のステップに進む方が結果的に早く身につけることができます。
データ分析の流れの確認
いろんな意見がありますが、データ分析は大体次のような流れになります。
-
Step3-1目的の確認
-
Step3-2データの概要把握
-
Step3-3仮説・問いの設定
-
Step3-4データの詳細を調査
-
Step3-5モデル構築
-
Step3-6評価
-
Step3-7施策
まずはやみくもにデータと向き合うのではなく、データ分析の目的を明らかにすることが大切です。はじめにこれをしっかり設定しておくことで、迷いが生じたときにこの「目的」にたちかえって、やるべきことの再構築を行います。
次にデータの概要把握です。いきなりデータの詳細を見るのではなく、大体このようなデータなんだな、と理解することで、「次に調べてみたいこと(問いの設定)」や「いまこのような結果になっているのはこれが原因なのではないか?」「こうすれば、こうなるのではないか?」(仮説)を設定しましょう。一番はじめに「目的」を設定していますが、この「問い」や「仮説」は最終的な「目標」を達成するための「小目標」のようなものになります。いくつかの仮説をたてて次の」ステップに取り組むのがよいでしょう。
「問い」「仮説」を設定したらその検証作業をおこないます。これが「データの詳細を調査」の工程です。この工程ではいろんなデータの処理をするため、「前処理」を学ぶ必要があります。
データの詳細調査で実行可能な「施策」を打ち出すことができればモデル構築などのステップは飛ばしてしまって構いません。機械学習のタスクとなる場合には「モデル構築」のステップに進みます。この「モデル構築」のステップには「機械学習としての前処理」が必要となります。このあとに「モデル構築」「評価」をおこないます。これらは、機械学習のフレームワークを学ぶことでセットでみにつけることができます。
データ分析の各ステップの基本を学ぶ
データの概要を把握する
ここではデータの読み込み方法、読み込んだ後のデータの概要把握を学びます。ここでも網羅的に考えずに、基本パターンのみ押させておけばよいでしょう。実践の時に、基本パターンでは処理できないものが出てきたときに、その部分を調べて解決していく、というのがよいでしょう。
このブログでもデータの読み込み方法についてはいくつかの解説記事があります。
データを読み込めたらデータの概要を把握します。これもデータの型が欠損値の数、基本統計量などまず把握しておきたい項目にはパターンがあります。この情報を確認する方法をみにつけておきましょう。以下の記事を参考にしてください。
データの詳細を調査する
データを詳細に見るプロセスでは様々な処理をすることになります。その時々の問い・仮説によって処理は異なるので、これも初めから網羅的に学ぼうとするのはお勧めしません。最近では前処理のみをまとめた書籍も発行されているので、これらを傍らにおいて必要になったタイミングで学ぶとよいでしょう。以下がおすすめです。
機械学習のフレームワークを学ぶ
機械学習については、フレームワークの前に機械学習を分類したものに目を通して、どのようなものがあるのかを知っておいた方がよいでしょう。そのうえで、それぞれの特徴などを押さえてフレームワークでの実装をどのようにおこなうのかを学びましょう。
機械学習の概要をつかむには「見て試してわかる機械学習のアルゴリズムの仕組み 機械学習図鑑」がおすすめとなります。
実際にモデルを構築する前に、「機械学習用の前処理」が必要となります。こちらも一つ辞書的に書籍を用意しておくとよいでしょう。繰り返しますが、はじめからすべてを学ぼうとしないことが大切です。示されているコードを理解して、動作確認しておく程度で十分です。
次に「Python 実践データ分析100本ノック」もおすすめです。これは経験豊富な著者が、データ分析の実際の現場で経験したことをもとにノウハウをまとめたものなので大変参考になります。
100本ノックという問題集形式で楽しんで取り組めるかと思います。これらは答えのコードと異なっていてもよいので、自分でコーディングしてみることが大切です。そのうえで、著者はどのようなコードを書いているのかも合わせて学びましょう。
次に機械学習のフレームワークについてです。機械学習のフレームワークは他にもありますが、まずはscikit-learnを学んでおくとよいでしょう。学習が進んでくると、他のフレームワークを使いたくなってくると思いますので、必要に迫られた時にこれらに取り組むとよいでしょう。scikit-learnを学ぶにあたっては「Pythonではじめる機械学習 scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎」がおすすめの書籍です。
実践する
実践に関しては、「自分事」として真剣に取り組めるものは挫折しにくいので、いま直面している課題があるのであれば、それに取り組むのが一番です。教科書や問題集的なものをこなしてもあまり身につかないでしょう。学ぶ範囲は限られても、深く濃い学びになる、「自分事」のデータを扱うのが一番です。これからいくつものテーマに取り組めば、学ぶ範囲は広がりますし、これらをこなしていく中で、興味が沸いたものを掘り下げて学ぶとよいでしょう。
いま現在、「自分事」とするデータがないのであれば、KaggleやSignateといったデータ分析コンペティションに取り組むのがよいです。これらは期間も区切られており、サンプルコードが公開されていたりするので、深く学ぶことができます。参加者同士でディスカッションできる掲示板のような機能もあります。楽しみながらデータ分析コンペティションに取り組む工夫が随所にされているので、是非チャレンジしてみましょう。
Kaggleにいきなり挑戦するのが難しいと感じたら、以下の書籍が大変参考になるでしょう。Kaggleの登録の仕方から丁寧に解説してくれています。
興味が沸いたものを掘り下げて学ぶ
これは記載する必要がないかもしれませんね。ここまでの取り組みで興味が沸いたことを自由に次の学ぶことに設定して掘り下げることで、これまで広く浅く学んできたものを、興味を原動力にして集中的に深く学ぶようにします。
これらは一例ですが、このように学びにサイクルを持たせて、これらを何周もすると、広く浅く学んでいたものが、だんだん広く深い知識になってきます。
まとめ
いかがでしたか?これが絶対だ、というものではありませんが、参考にしていただけると幸いです。ポイントはまずは、「広く浅く」学んで、いち早く「実践」に移り、少しずつ「深い」知識にする、というサイクルです。
コメント