0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonとRのデータ分析実践書5選

0
Posted at

はじめに

自分が初めてデータ分析らしい仕事をしたとき、やっていたのは現場から届くCSVを手で結合してExcelで集計する作業だった。ファイルは毎月数十個。列の並びは送り主によって微妙に違う。コピペを三時間続けた最後に合計がずれていることに気づいて、また最初からやり直す。あの徒労感はいまでもよく覚えている。

同僚から「それコードで書けるよ」と言われたのをきっかけに、言語を一つ覚えることにした。ところが入口で別の壁に当たる。PythonとRのどちらから始めるか、文法を覚えた次に何を読むか、機械学習にはいつ手を出せばいいのか。検索すれば断片的な情報は無限に出てくるが、取り組む順番までは書かれていない。

そこで自分は本を順番に読む方法に切り替えた。書籍には著者が設計した順路がある。その順路に乗るだけで、自分で地図を描く手間が省ける。結果として、遠回りしたつもりが一番早かった。

この記事では、手作業の自動化から始めて、前処理、可視化と統計、機械学習、深層学習まで、自分が実際に通った順に5冊を並べる。PythonとRを混ぜているのは、片方しか使わない人にも相手側の発想が効いてくるからだ。

① 退屈なことはPythonにやらせよう 第2版 ―ノンプログラマーにもできる自動化処理プログラミング — Al Sweigart

Amazonで見る

著者のAl Sweigartは入門者向けPython書籍を何冊も書いている開発者で、原書をWebで無料公開している教育者でもある。説明の順番が徹底して初学者寄りだ。

内容は文法の基礎から始まり、リストや辞書、文字列操作、正規表現へと進む。後半はファイルの読み書き、ExcelやPDF、Wordの操作、Webスクレイピング、キーボードとマウスの自動操作まで扱う。どの章にもすぐ動くコードが載っている。

自分に効いたのは正規表現とExcel操作の章だった。読んだ週末に集計スクリプトを書いて、三時間の作業が数十秒になった。学習効果よりも先に、時間が返ってくる実感があった。

一方で、クラス設計やアルゴリズムの話はほとんど出てこない。ソフトウェアとして保守する段階に入ったら別の本が必要になる。

こんな人に: 毎週発生する定型作業を、まず手元から消したい人。

② Pythonによるデータ分析入門 第3版 ―pandas、NumPy、Jupyterを使ったデータ処理 — Wes McKinney

Amazonで見る

著者のWes McKinneyはpandasの作者だ。ライブラリを設計した本人が書いているので、なぜこのAPIがこの形なのかという背景まで読める。

NumPyの配列操作から入り、Seriesとデータフレームの構造、読み込みと書き出し、欠損値処理、結合、整形、グループ集計へと進む。後半では時系列データとpandasの応用的な使い方を扱う。

第3版はPython 3.10とpandas 1.4以降に対応している。インデックスの挙動やコピーの扱いといった、つまずきやすい部分の説明が丁寧だ。自分はgroupbyとmergeの章を何度も開き直した。

分析の前処理に時間の大半を取られるのは、どんな現場でも変わらない。そこを速くする投資としては効率がいい。

こんな人に: pandasを雰囲気で書いていて、毎回エラーの原因が分からない人。

③ Rではじめるデータサイエンス — Hadley Wickham、Garrett Grolemund

Amazonで見る

Hadley Wickhamはggplot2やdplyrを含むtidyverse群の設計者、Garrett Grolemundは同じチームの教育担当として知られる。R界で最も読まれている入門書の一つだ。

特徴は可視化から教え始めるところにある。ggplot2でグラフを描き、dplyrで絞り込み、tidyrで形を整え、その往復のなかで探索的分析の型を身につける流れになっている。rmarkdownによる再現可能なレポートまで扱う。

「整然データ」という考え方は、Pythonしか使わない人にも効く。1行が1観測、1列が1変数という原則を頭に入れてからは、pandasでの設計判断も迷わなくなった。

グラフを文法として組み立てるggplot2の発想は、matplotlibに慣れた目には新鮮だった。可視化の試行回数が増えると、データを見る解像度が上がる。

こんな人に: 探索的分析と可視化のやり方を、感覚でなく型として覚えたい人。

④ Rによる機械学習 [第3版] (Programmer's SELECTION) — Brett Lantz

Amazonで見る

著者のBrett Lantzは社会学の研究者としてキャリアを始め、データサイエンティストとして実務に移った人物だ。アルゴリズムの説明に例え話が多く、数式の前に直感が来る。

k近傍法、ナイーブベイズ、決定木とルール学習、回帰、ニューラルネットワークとSVM、ランダムフォレストと、主要なアルゴリズムを一章ずつ実データで動かしていく。各手法の長所と短所が表で整理されているのが地味に便利だ。

後半は交差検証やモデル評価、過学習への対処、不均衡データの扱いに踏み込む。SparkやH2Oといった大規模データ側の話題にも触れている。

Rの本だが、価値の大半はアルゴリズムの選び方と評価設計にある。scikit-learnで同じ流れを再実装すると理解が定着する。自分はそれで決定木とランダムフォレストの違いが腹に落ちた。

こんな人に: モデルを動かせるが、手法の選択理由と評価設計に自信がない人。

⑤ PythonとKerasによるディープラーニング — François Chollet

Amazonで見る

著者のFrançois CholletはKerasの作者で、現在も深層学習フレームワークの設計に関わっている。説明の軸が一貫して「何を表現しているか」に置かれている。

テンソルと勾配降下法の説明から始まり、画像分類、畳み込みネットワーク、テキストとシーケンスの処理、生成モデルへと進む。コードはKerasなので短く、ネットワーク構造の意図がそのまま読める。

自分が一番得をしたのは、過学習と正則化の章だった。層を増やす前に、データ量とモデル容量の関係を見る癖がついた。精度が出ない原因を構造のせいにしなくなったのは大きい。

日本語版は原書初版にあたるため、Transformerや最新のAPIは扱っていない。基礎概念を固める目的なら今でも通用するが、最新手法は別の資料で補う前提で読むといい。R派の人には同じ著者によるDeep Learning with Rがある。

こんな人に: 深層学習を写経で済ませず、各層の役割を説明できるようになりたい人。

まとめ

ステップ 読む本 得られるもの
1 自動化 退屈なことはPythonにやらせよう 手作業を消すスクリプトと基礎文法
2 前処理 Pythonによるデータ分析入門 pandasとNumPyの正しい使い方
3 可視化と探索 Rではじめるデータサイエンス 整然データの考え方と探索の型
4 予測モデル Rによる機械学習 手法の選び方と評価設計
5 深層学習 PythonとKerasによるディープラーニング ネットワーク構造を読む力

今の課題から1冊を選ぶなら、こう考えるといい。

  • Excelの手作業に毎週時間を取られている → 退屈なことはPythonにやらせよう
  • pandasのエラーで毎回検索している → Pythonによるデータ分析入門
  • グラフを描いても何も読み取れない → Rではじめるデータサイエンス
  • モデルの精度が上がらず打ち手が思いつかない → Rによる機械学習
  • 深層学習のコードを写すだけで終わっている → PythonとKerasによるディープラーニング

5冊を一気に読む必要はない。自分は2か月に1冊くらいのペースで進めた。手元の困りごとに一番近い本から始めると、読んだ分だけ仕事が軽くなる。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?