tkherox blog

データサイエンスおよびソフトウェア開発、たまに育児についての話を書いています

Pythonデータ分析100本ノックを実践【前半】

Pythonデータ分析100本ノックって?

Pythonデータ分析100本ノックとは秀和システムから出版されている書籍です.現場を想定したデータ分析に必要なスキルや処理方法を問題形式で習得することができる内容になっております.また,書籍内で扱うサンプルデータなどはWebからダウンロードすることができるので書籍を購入してすぐにデータ分析の問題を解くことが可能です.
今回は100本ノックの前半50本のノックを中心に書籍を実践してみた感想について記載していこうと思います.

書籍構成

書籍で扱う内容は大きく以下になっています.

ノック数の割合についてはデータ加工から機械学習の部分が大体半分を占めており,最適化問題が4分の1くらいで残りの4分の1で画像処理と自然言語処理といったボリューム感になっています.後半部分のそれぞれの項目をもっと深掘りして問題を解きながら理解したいという人には画像処理100本ノックや言語処理100本ノックといった有志で作成されているコンテンツがWeb上に公開されているのでそちらに取り組むのが良いと思います.

https://yoyoyo-yo.github.io/Gasyori100knock/yoyoyo-yo.github.io

http://www.cl.ecei.tohoku.ac.jp/nlp100/#ch1www.cl.ecei.tohoku.ac.jp

対象者はどれくらいの層なのか?

まずは前提となる必須スキルについて記載すると,Python操作に関する知識はマストで保有していないと厳しいと思います.
例えば,Pythonのインストール方法であったりとかPythonの基本文法などはデータ分析に関する書籍のため,書籍中では解説されておりません.いきなりライブラリをインポートする処理が最初から記載されているため,標準ライブラリ以外のデータ分析用のライブラリを利用したいことがない人が本書に取り組んだとしたらImportErrorで初めからつまづくと思います.

import numpy as np
import pandas as pd

次にあると好ましいスキルとしてはデータ分析関連のライブラリに関する知識です.PandasやNumpyといったデータ分析において基本的なライブラリについては事前にどういうものかはある程度は把握しておいた方がベターだと言えます.
例えば,以下のようなcsvデータをDataFrameオブジェクトとして読み込むためのコードはデータ分析では一般的だと思いますが,ライブラリを扱ったことがない人はライブラリが何をしているのかを調べながら書籍を進めることになるためデータ分析スキルに注力することが難しいと思います.

import pandas as pd

sample = pd.read_csv('test.csv', index_col=['number'])
sample.head()

また,データ分析における基本的な理論(教師あり学習教師なし学習強化学習,分析評価指標等)が全くわかっていない人にとっても本書を進めるのはなかなか難しいのかなと思います.理由としてはデータ分析における理論的な話は一部記載されておりますが,十分な解説は記載されていないためソースコードを実践して動いたという感覚だけで満足してしまう可能性があるからです.

以上を踏まえて「Pythonデータ分析100本ノック」がどのように人に適しているのかをまとめると,やはりデータ分析の基礎を身に付けた人がこれから本格的に学習したいという人や日常的にデータ分析に取り組んでおり知識の再確認をする人向けの書籍だと感じます.

前半部分を実践してみて

それでは「Pythonデータ分析100本ノック」を実践してみた前半の50本のノックにおける個人的な感想を記載します.

まず,よかった点を述べるとデータ加工における前処理について自身が普段実装する方法よりも効率的に実装する方法を知れたことです.リアルな世界におけるデータ分析においては各種データは時系列データとなることが多いです.その点でデータフレームにおける日付の扱いなどを綺麗なソースコードで丁寧に解説・実践できる内容は素晴らしいと思いました.また,前処理を重点的に取り扱っている内容についても良かったこととして挙げられます.異なるスケールのデータフレームを加工してジョインし,学習用のデータセットを作成する内容については現場でデータ分析を実践しているかのような錯覚さえありました.
一方で,ここは微妙だなと思った点としては機械学習の評価の観点です.例えば製品需要を予測する回帰問題を想定した場合には機械学習によって得られた結果をMAEやMSE,MAPEといった評価指標で精度を確認していきます.しかし,この書籍では評価指標に関する具体的な言及はされないまま内容が進んでいくため,実際に現場で活用できる学習モデルを評価するためのスキルを身につけるためには別の学習が必要だと感じました.

ここまでで散々個人的な意見を述べてはきましたが,限られたページ数で分かりやすくデータ分析の実践方法を学ぶことができる書籍であることは間違い無いです.特に,データ分析における実践で役立つプロセスを体系的に学ぶことができる内容は素晴らしいと思いますので興味がある方は購入してみることをお勧めします.

まとめ

今回は「Pythonデータ分析100本ノック」を実践してきた中での前半部分における感想について記載しました.データ分析をこれから本格的に学習する人やデータ分析はある程度実践していて知識を再確認するといった人にとっては有益な書籍だと思うので皆様も是非読んでみてください.
後半の残り50本ノックについてはまた後日まとめていこうと思います.