hodaです。以前も機械学習関連の書籍をご紹介しましたが、今回も機械学習の書籍について書いていきたいと思います。
今回、著者の明治大学 金子弘昌 准教授からコメントをいただきました。金子先生、ありがとうございます!
著者の金子弘昌です。本書は、私の化学・化学工学の分野における研究や学生に対する教育の経験を生かして、データ解析や機械学習の初学者やプログラミング未経験者でも、データ解析や機械学習をする上で必要な知識や Python プログラミングの技術を効果的に身につけていただくことを想定して執筆いたしました。Python やソフトウェアの使い方およびデータ解析・機械学習を効率的に学ぶためのサンプルプログラムも同封しております。本書を通して、データの前処理・データの可視化・クラスタリング・回帰分析・クラス分類・モデルの解析や逆解析・実験計画法が皆さまの手でできるようになり、データを最大限に活用して皆さまの研究・開発・設計・運転を促進することを期待しております。
概要
化学・化学工学分野に特化したデータ解析・機械学習の入門書
みなさんは研究室やお手元にデータをお持ちではないですか? データ解析・機械学習を応用して,蓄積してきたデータを最大限に活用することで,これまでとは違った角度から研究や開発を加速させることができます.
本書では,化学・化学工学の分野特有の話題やノウハウにスポットをあてて,Pythonを使ったデータ解析・機械学習を丁寧に解説します.サンプルプログラムを使って実際に手を動かしながら学習できるので,プログラミングをやったことがない方も気軽に取り組むことができます.
これからデータ解析・機械学習を活用していきたいと考えている研究者や技術者,学生におすすめの1冊です.(引用元:丸善出版HP)
対象者
・機械学習初学者
・実際に手を動かして機械学習に取り組んでみたい人
・機械学習を基本的なところから一通り学んでみたい人、特に化学系
構成
機械学習に必要な環境の構築から機械学習の概要、予測する前のデータ処理、化学構造情報をPython上で扱うための方法などまでが180ページ・全12章に詰まっています。
1~2章ではプログラミングの環境構築や慣れることに重点が置かれています。
Anacondaという必要なソフトウェアをインストールする方法や、Jupyter Notebook上でプログラミングするためにJupyter Notebookの使い方や起動、終了方法など、プログラミングの環境を構築についての説明があります(1章)。機械学習においてよく使われる言語であり、今回の書籍でも用いるPythonの基礎についても初学者向けの説明が多くされています(2章)。
3~7章はデータセットの処理方法についてです。
Jupyter Notebook上でのデータセットの読み込み、データセットの中身を確認する方法、処理したデータセットを保存する方法について説明されています(3章)。そして行列形式によるデータセットの表現やヒストグラムによるデータの分布の確認などデータセットのサンプルの比較、そしてデータセットの特徴量間の比較などを通してデータセットの特徴をつかむ方法が記載されています(4章)。特徴量のスケールの統一化、ばらつきの小さい特徴量の削除、類似した特徴量の組における一方の特徴量の削除といったデータセットの前処理の説明もあります(5章)。データの可視化に便利な方法として主成分分析(PCA)とt-distributed Stochastic Neighbor Embedding (t-SNE)の紹介(6章)、データセットを類似するサンプルごとにグループ化するクラスタリングのうち、階層的クラスタリングについて詳しく学びます(7章)。
8~10章には適切なモデルを構築して物性値などを予測する方法があります。
モデルy=f (x) を構築して、新たなサンプルのyを推定するのに必要な方法が記載されています。K-NNなどを用いてクラス分類と回帰分析を行い、モデルの評価方法や適切なモデルを効率よく構築する方法が説明されています(8章)。モデルの推定結果の信頼性を考えるために、目的変数の推定に用いる最終的なモデルやモデルの適用範囲、One-Class Support Vector Machine (OCSVM)について記載されています(9章)。仮想サンプルの生成と予測および候補の選択を通してモデルを用いてy からx を推定する手法についても学びます(10章)。
また、目標達成に向けて実験条件・製造条件を提案するための実験計画法、応答曲面法、適応的実験計画法が紹介されています(11章)。
最後はRDKit のインストールから、化学構造の表現方法・数値化、化合物群の扱い、化学構造のデータセットを扱うときの注意点など機械学習において化学構造を扱うための説明があります(12章)。
サンプルコードもダウンロードして入手することが可能です。
正誤表
明治大学・金子研のホームページに正誤表がありました。
感想
本書籍の著者である金子先生は本書籍の前に『化学のためのPythonによるデータ解析・機械学習入門』も書かれていますが、本書籍の方がより入門の書籍だと感じました。
環境構築のAnacondaのインストールからコードを動かすためのJupyter Notebookの使い方も詳しく記載されており、特に書籍冒頭部分は機械学習初めての方も取り組みやすくなっているのではないでしょうか。
本書籍は、特に機械学習を始めたばかりの人に重点をおいて説明がされていると感じました。
その一方で、実際にPCの中でどのような計算・処理が行われているか数式を用いて説明されている部分も少なくなく、初学者以外も勉強になる部分が多いと思います。発展と書かれている部分も書籍内にあるので、読んでみるなり飛ばしてみるなり、各自のレベルに合わせて使いやすいようになっています。どのような計算が行われているのか数式を用いながら説明されている部分も多いので、詳しく知ることができると思います。
ここからは私の個人的印象に残ったポイントを書いていきたいと思います。
サンプルコードにはJupyter Notebookにおけるショートカットキーが紹介されています。ショートカットキーはこれまで特に学ぶことがなかったのでとても勉強になりました。8章での適切なモデルを効率よく構築する方法についての部分が特にわかりやすいと思いました。
おすすめはサンプルコードを動かしながら、本書を読み進めていくことです。本書の中にもコードに対する説明がありますが、サンプルコードにおいてもその都度説明されているので、実際にコードを実行することによって理解が深まると思います。
さらにサンプルコードには練習問題もあって、しかも答え付きです!筆者もサンプルコードを動かして、練習問題にも挑戦してみました。各コードに対する解説が詳しいため、自分の持っているデータセットでも大変使いやすいと思います。
関連書籍
化学のための Pythonによるデータ解析・機械学習入門(ケムステでの書籍レビュー)
Pythonで学ぶ実験計画法入門 ベイズ最適化によるデータ解析(ケムステでの書籍レビュー)
関連リンク
企業研究者のためのMI入門①:MI導入目的の明確化と使う言語の選定が最初のポイント!
企業研究者のためのMI入門②:Pythonを学ぶ上でのポイントとおすすめの参考書ご紹介
果たして作ったモデルはどのくらいよいのだろうか【化学徒の機械学習】
本書の画像は丸善出版HPから引用しました。