ブック・インサイド―『Python機械学習プログラミング』学び方ガイド
『Python機械学習プログラミング』とは
書籍『Python機械学習プログラミング』は、Sebastian Raschka氏によるPythonを用いた機械学習の入門書"Python Machine Learning"の翻訳書です。著者はミシガン州立大学の博士課程で生物統計学(計算生物学)の研究を行っており、scikit-learnなど多数の機械学習やデータサイエンスのライブラリの開発にも携わっています。
本書の特徴は、Pythonによる実装、ライブラリの使用方法、機械学習の考え方の説明をバランスよく織り交ぜ、機械学習の登山口から実務で使用できるレベルまで連れて行ってくれる点にあります。以降では、本書を通してより効果的に機械学習を学べるように、必要な前提知識、本書の構成と読み方のプラン等について説明します。
なお、著者はデータ解析に用いる言語についてエッセイを執筆しており、言語間に優劣はないとしながらも著者にとってはPythonがベストだったと説明しています。読み物として面白いので、お時間のあるときに一読されるとよいのではないかと思います。
■著者によるエッセイ
◎Python, Machine Learning, and Language Wars. A Highly Subjective Point of View
http://sebastianraschka.com/blog/2015/why-python.html
◎和訳版: Pythonや機械学習、そして言語の競争について – 極めて主観的な見地から
http://postd.cc/python-machine-learning-and-language-wars-a-highly-subjective-point-of-view/
本書の前提知識
本書を読むのに必要な基礎知識は、Pythonの基礎的な文法、データ解析ライブラリの基本的な使用方法、数学の基礎(微積分、線形代数)の3つです。
Pythonの基礎的な文法
Pythonの文法については、リスト、タプル、ディクショナリなどの基本的なデータ構造、forループ、print関数、zip関数、enumerate関数、関数やクラスの作成方法などが理解できていれば十分です。例えば以下の書籍の該当箇所を読んでおくとよいでしょう。
■『みんなのPython 第3版』(ソフトバンククリエイティブ、2012年)
データ解析ライブラリの基本的な使用方法
本書の複数箇所で使用されているPythonのデータ解析ライブラリは、主にNumPy/SciPy、pandas、matplotlib、seaborn、scikit-learnです。これらをタスクで大別すると表1のようになります。
これらのライブラリのうち、SciPy、pandas、seabornは使用する機能が多くなく、該当箇所で丁寧に説明されています。そのため、前提知識はほとんど必要ないと思います。また、scikit-learnも丁寧な説明があるので、予備知識は特に不要でしょう。
残りのNumPy、matplotlibについては多少の知識が必要です。matplotlibの基本的な使用方法は付録Bに追加していますので、必要があれば参照してください。NumPyについては、知識があまりなくても通読できるようになっていますが、以下の資料等を読んであらかじめ知識をつけておくと理解が深まるでしょう。
◎朱鷺の杜Wiki「Numpyの概要」
http://ibisforest.org/index.php?python%2Fnumpy#q38168ab
◎機械学習のPythonとの出会い
http://www.kamishima.net/mlmpyja/
なお、NumPy/SciPy、matplotlib、scikit-learnの導入的な説明は以下の書籍がまとまっています。一読しておくと本書の理解が深まると思います。
■『データサイエンティスト養成読本 機械学習入門編 (Software Design plus)』(技術評論社、2015年)
第II部 特集2 Pythonによる機械学習入門
この書籍は機械学習の入門に適しているので、他の章も合わせてお読みください。
以下の書籍は、NumPy/SciPy、pandas、matplotlibについて詳しく説明しています。
■『Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理』(オライリー・ジャパン、2013年)
数学の基礎
数学の基礎知識として、微積分と線形代数が必要になります。
微積分については偏微分や連鎖律、ヤコビ行列等の知識が必要になります。以下の書籍等で学習するとよいと思います。
■『キーポイント微分積分 (理工系数学のキーポイント 1))』(岩波書店、1996年)
■『キーポイント多変数の微分積分 (理工系数学のキーポイント (7))』(岩波書店、1996年)
線形代数については、行列の積、逆行列、固有値と固有ベクトル(固有分解または固有値分解)などの知識が必要になります。本書内でも挙げましたが、以下の書籍がまとまっていてわかりやすいので一読をお勧めします。
■『プログラミングのための線形代数』(オーム社、2004年)
本書を読み進めるうえでは、以下の箇所を読めば十分です。
第0章 動機
第1章 ベクトル・行列・行列式
第2章 ランク・逆行列・一次方程式
第4章 固有値・対角化・Jordan標準形
「4.5 固有値・固有ベクトル」まで
また、行列の積、固有値と固有ベクトル(固有分解)については導入的な内容になりますが、それぞれ本書の2章、付録Cに説明があるので適宜参照して下さい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- AIとRPAの連携
- Pythonの利用実態調査「Python Developers Survey 2018」発表、データ分析目的の利用が急増
- Pythonの利用実態調査「Python Developers Survey 2018」発表、データ分析目的の利用が急増
- 基礎から始める!Python初心者におすすめの本10選
- さらに進化を遂げたInterSystems IRIS data platform Pythonのネイティブサポートが広げる可能性とは
- 機械学習とアルゴリズム
- Notebook Serversを使って機械学習モデルを作成する
- ブック・インサイド『Python機械学習プログラミング』―パーセプトロンを読み解く
- OpenShiftでデータサイエンティストとアプリ開発者が協調する流れをデモを交えて紹介
- ライセンスからDevOps、AIまで幅広いトピックを紹介 Open Developers Conference 2017 Tokyo