6ステップでマスターする機械学習
書籍情報
発売日 : 2022/10/25
著者/編集 : Manohar Swamynathan/菊地 弘晶
出版社 : 共立出版
発行形態 : 単行本
ページ数 : 368p
書籍説明
内容紹介
実務に適用できるレベルまで機械学習手法を習熟するためには、統計的学習・推論をコンピュータ上で実行するためのプログラミング、回帰や分類など機械学習アルゴリズムを構成する理論や方法論、データや解決したい問題の特性に応じた手法の選択とチューニング技法、適用する業界や専門領域での実例まで広く学ぶ必要があるが、体系的に効率よくこれらの項目を学習することは容易ではない。
本書では多くの実践者がデファクトスタンダードとして使用しているPythonおよびAnaconda、Keras、TensorFlowといったプログラミング言語・ツール・フレームワークを用いて、画像やテキスト、時系列データといった多種多様なデータに対して、機械学習を適用する前準備としてのデータ処理から、機械学習手法の選択および実装、結果の可視化と効果測定までのアプローチを豊富なサンプルコードとともにハンズオンを通して実践的に学ぶことができる。
取り上げられている機械学習の手法も、ロジスティック回帰・サポートベクターマシンをはじめとした定石として確立されたものから深層学習・強化学習といった近年注目を浴びているものまで、バラエティに富みつつも実用上有効なものにフォーカスしている。また、各手法を一から実装をするのではなく、可能な限りオープンソースライブラリなど既存の資産を活用している点も実務者にとって有用であろう。
データサイエンティストや機械学習エンジニアへのキャリアチェンジ、スキルアップを目指すITエンジニアや、機械学習の適用例を確立された技術から新しいものまで効率よく広く俯瞰したい初学者にとって、機械学習の実務適用の全体像を効果的に把握するために、手元に置いておきたい良書である。
[原著: Mastering Machine Learning with Python in Six Steps: A Practical Implementation Guide to Predictive Data Analytics Using Python, 2nd Edition, Apress, 2019]
本書では多くの実践者がデファクトスタンダードとして使用しているPythonおよびAnaconda、Keras、TensorFlowといったプログラミング言語・ツール・フレームワークを用いて、画像やテキスト、時系列データといった多種多様なデータに対して、機械学習を適用する前準備としてのデータ処理から、機械学習手法の選択および実装、結果の可視化と効果測定までのアプローチを豊富なサンプルコードとともにハンズオンを通して実践的に学ぶことができる。
取り上げられている機械学習の手法も、ロジスティック回帰・サポートベクターマシンをはじめとした定石として確立されたものから深層学習・強化学習といった近年注目を浴びているものまで、バラエティに富みつつも実用上有効なものにフォーカスしている。また、各手法を一から実装をするのではなく、可能な限りオープンソースライブラリなど既存の資産を活用している点も実務者にとって有用であろう。
データサイエンティストや機械学習エンジニアへのキャリアチェンジ、スキルアップを目指すITエンジニアや、機械学習の適用例を確立された技術から新しいものまで効率よく広く俯瞰したい初学者にとって、機械学習の実務適用の全体像を効果的に把握するために、手元に置いておきたい良書である。
[原著: Mastering Machine Learning with Python in Six Steps: A Practical Implementation Guide to Predictive Data Analytics Using Python, 2nd Edition, Apress, 2019]
目次
訳者まえがき
はじめに
STEP 1 Python3入門
1.1 人生で最高のものはお金では手に入らない
1.2 新星の登場
1.3 Python 2.xかPython 3.xの選択
1.3.1 Windows
1.3.2 macOS
1.3.3 Linux
1.3.4 公式サイトからインストール
1.3.5 Pythonの実行
1.4 キーコンセプト
1.4.1 Pythonの識別子
1.4.2 キーワード
1.4.3 最初のPythonプログラム
1.4.4 コードブロック
1.4.5 基本的なオブジェクト型
1.4.6 リスト,タプル,セット,辞書を使用する場合
1.4.7 Pythonにおけるコメント
1.4.8 複数行ステートメント
1.4.9 1行での複数のステートメント表現
1.4.10 基本的な演算子
1.4.11 制御構造
1.4.12 リスト
1.4.13 タプル
1.4.14 セット
1.4.15 辞書
1.4.16 ユーザー定義関数
1.4.17 モジュール
1.4.18 ファイルの入出力
1.4.19 ファイルを開く
1.4.20 例外処理
1.5 まとめ
STEP 2 機械学習入門
2.1 歴史と進化
2.2 人工知能の進化
2.2.1 様々な形態
2.3 機械学習のカテゴリー
2.3.1 教師あり学習
2.3.2 教師なし学習
2.3.3 強化学習
2.4 MLシステム構築のためのフレームワーク
2.4.1 データベースにおける知識発見
2.4.2 データマイニングのための業界横断的標準プロセス
2.5 SEMMA
2.6 機械学習用Pythonパッケージ
2.6.1 データ解析パッケージ
2.6.2 NumPy
2.6.3 Pandas
2.6.4 matplotlib
2.6.5 機械学習用コアライブラリ
2.7 まとめ
STEP 3 機械学習の基礎
3.1 機械学習におけるデータ
3.1.1 測定の尺度
3.2 特徴量エンジニアリング
3.2.1 欠損値の取り扱い
3.2.2 カテゴリカルデータの取り扱い
3.2.3 データの正規化
3.2.4 特徴量の構築と生成
3.3 教師あり学習:回帰
3.3.1 相関と因果関係
3.3.2 傾きの当てはめ
3.3.3 良いモデルとは
3.3.4 多項式回帰
3.3.5 多変量回帰
3.3.6 正則化
3.3.7 非線形回帰
3.4 教師あり学習:分類
3.4.1 ロジスティック回帰
3.4.2 分類モデルの性能評価
3.4.3 ROC曲線
3.4.4 モデルの当てはめ
3.4.5 確率的勾配降下法
3.4.6 正則化
3.4.7 多クラスのロジスティック回帰
3.5 教師あり学習:プロセス
3.5.1 決定木
3.5.2 サポートベクターマシン
3.5.3 k近傍法
3.5.4 時系列予測
3.6 教師なし学習の流れ
3.6.1 クラスタリング
3.6.2 主成分分析
3.7 まとめ
STEP 4 モデルの診断とチューニング
4.1 最適な確率の閾値
4.1.1 どちらの間違いの損失が大きいのか
4.2 希少なケースあるいは不均衡なデータセット
4.2.1 どのリサンプリング手法がベストか
4.3 偏りと分散
4.3.1 偏り
4.3.2 分散
4.4 k分割交差検証
4.4.1層化k分割交差検証
4.5 アンサンブル法
4.5.1 バギング
4.5.2 特徴量の重要度
4.5.3 ランダムフォレスト
4.5.4 エクストラツリー
4.5.5 決定境界はどのように可視化されるか
4.5.6 バギングにおける重要なチューニングパラメーター
4.6 ブースティング
4.6.1 アダブーストの例
4.6.2 勾配ブースティング
4.6.3 ブースティングに必要なチューニング項目
4.6.4 XGBoost
4.6.5 アンサンブル投票:機械学習最大のヒーロー軍団
4.6.6 スタッキング
4.7 ハイパーパラメーターの調整
4.7.1 グリッドサーチ
4.7.2 ランダムサーチ
4.7.3 ベイズ最適化
4.7.4 時系列IoTデータのノイズ除去
4.8 まとめ
STEP 5 テキストマイニングと推薦システム
5.1 機械学習におけるデータテキストマイニング処理の概観
5.2 (テキスト)データの構築
5.2.1 ソーシャルメディア
5.3 データ(テキスト)の前処理
5.3.1 小文字変換とトークン化
5.3.2 ノイズ除去
5.3.3 品詞タグ付け
5.3.4 ステミング
5.3.5 レンマ化処理
5.3.6 Nグラム
5.3.7 バッグ・オブ・ワード
5.3.8 TF-IDF
5.4 (テキスト)データの探索
5.4.1 頻度チャート
5.4.2 ワードクラウド
5.4.3 語彙的分散プロット
5.4.4 共起行列
5.5 モデルの構築
5.5.1 テキスト類似度
5.5.2 テキストクラスタリング
5.5.3 トピックモデル
5.5.4 テキスト分類
5.5.5 センチメント分析
5.5.6 「深い」自然言語処理
5.6 Word2Vec
5.7 推薦システム
5.7.1 内容(コンテンツ)ベースフィルタリング
5.7.2 協調フィルタリング
5.8 まとめ
STEP 6 深層学習と強化学習
6.1 人工ニューラルネットワーク
6.1.1 コンピューターが画像を見るとき,その背後には何があるのか
6.1.2 パーセプトロン:単層人工ニューロン
6.1.3 多層パーセプトロン
6.1.4 制限付きボルツマンマシン
6.1.5 KerasによるMLP
6.1.6 オートエンコーダー
6.1.7 畳み込みニューラルネットワーク
6.1.8 MNISTデータセットでのCNN
6.1.9 再帰型ニューラルネットワーク
6.1.10 転移学習
6.2 強化学習
6.3 まとめ
6.A 付録:敵対的生成ネットワーク
おわりに
索 引
はじめに
STEP 1 Python3入門
1.1 人生で最高のものはお金では手に入らない
1.2 新星の登場
1.3 Python 2.xかPython 3.xの選択
1.3.1 Windows
1.3.2 macOS
1.3.3 Linux
1.3.4 公式サイトからインストール
1.3.5 Pythonの実行
1.4 キーコンセプト
1.4.1 Pythonの識別子
1.4.2 キーワード
1.4.3 最初のPythonプログラム
1.4.4 コードブロック
1.4.5 基本的なオブジェクト型
1.4.6 リスト,タプル,セット,辞書を使用する場合
1.4.7 Pythonにおけるコメント
1.4.8 複数行ステートメント
1.4.9 1行での複数のステートメント表現
1.4.10 基本的な演算子
1.4.11 制御構造
1.4.12 リスト
1.4.13 タプル
1.4.14 セット
1.4.15 辞書
1.4.16 ユーザー定義関数
1.4.17 モジュール
1.4.18 ファイルの入出力
1.4.19 ファイルを開く
1.4.20 例外処理
1.5 まとめ
STEP 2 機械学習入門
2.1 歴史と進化
2.2 人工知能の進化
2.2.1 様々な形態
2.3 機械学習のカテゴリー
2.3.1 教師あり学習
2.3.2 教師なし学習
2.3.3 強化学習
2.4 MLシステム構築のためのフレームワーク
2.4.1 データベースにおける知識発見
2.4.2 データマイニングのための業界横断的標準プロセス
2.5 SEMMA
2.6 機械学習用Pythonパッケージ
2.6.1 データ解析パッケージ
2.6.2 NumPy
2.6.3 Pandas
2.6.4 matplotlib
2.6.5 機械学習用コアライブラリ
2.7 まとめ
STEP 3 機械学習の基礎
3.1 機械学習におけるデータ
3.1.1 測定の尺度
3.2 特徴量エンジニアリング
3.2.1 欠損値の取り扱い
3.2.2 カテゴリカルデータの取り扱い
3.2.3 データの正規化
3.2.4 特徴量の構築と生成
3.3 教師あり学習:回帰
3.3.1 相関と因果関係
3.3.2 傾きの当てはめ
3.3.3 良いモデルとは
3.3.4 多項式回帰
3.3.5 多変量回帰
3.3.6 正則化
3.3.7 非線形回帰
3.4 教師あり学習:分類
3.4.1 ロジスティック回帰
3.4.2 分類モデルの性能評価
3.4.3 ROC曲線
3.4.4 モデルの当てはめ
3.4.5 確率的勾配降下法
3.4.6 正則化
3.4.7 多クラスのロジスティック回帰
3.5 教師あり学習:プロセス
3.5.1 決定木
3.5.2 サポートベクターマシン
3.5.3 k近傍法
3.5.4 時系列予測
3.6 教師なし学習の流れ
3.6.1 クラスタリング
3.6.2 主成分分析
3.7 まとめ
STEP 4 モデルの診断とチューニング
4.1 最適な確率の閾値
4.1.1 どちらの間違いの損失が大きいのか
4.2 希少なケースあるいは不均衡なデータセット
4.2.1 どのリサンプリング手法がベストか
4.3 偏りと分散
4.3.1 偏り
4.3.2 分散
4.4 k分割交差検証
4.4.1層化k分割交差検証
4.5 アンサンブル法
4.5.1 バギング
4.5.2 特徴量の重要度
4.5.3 ランダムフォレスト
4.5.4 エクストラツリー
4.5.5 決定境界はどのように可視化されるか
4.5.6 バギングにおける重要なチューニングパラメーター
4.6 ブースティング
4.6.1 アダブーストの例
4.6.2 勾配ブースティング
4.6.3 ブースティングに必要なチューニング項目
4.6.4 XGBoost
4.6.5 アンサンブル投票:機械学習最大のヒーロー軍団
4.6.6 スタッキング
4.7 ハイパーパラメーターの調整
4.7.1 グリッドサーチ
4.7.2 ランダムサーチ
4.7.3 ベイズ最適化
4.7.4 時系列IoTデータのノイズ除去
4.8 まとめ
STEP 5 テキストマイニングと推薦システム
5.1 機械学習におけるデータテキストマイニング処理の概観
5.2 (テキスト)データの構築
5.2.1 ソーシャルメディア
5.3 データ(テキスト)の前処理
5.3.1 小文字変換とトークン化
5.3.2 ノイズ除去
5.3.3 品詞タグ付け
5.3.4 ステミング
5.3.5 レンマ化処理
5.3.6 Nグラム
5.3.7 バッグ・オブ・ワード
5.3.8 TF-IDF
5.4 (テキスト)データの探索
5.4.1 頻度チャート
5.4.2 ワードクラウド
5.4.3 語彙的分散プロット
5.4.4 共起行列
5.5 モデルの構築
5.5.1 テキスト類似度
5.5.2 テキストクラスタリング
5.5.3 トピックモデル
5.5.4 テキスト分類
5.5.5 センチメント分析
5.5.6 「深い」自然言語処理
5.6 Word2Vec
5.7 推薦システム
5.7.1 内容(コンテンツ)ベースフィルタリング
5.7.2 協調フィルタリング
5.8 まとめ
STEP 6 深層学習と強化学習
6.1 人工ニューラルネットワーク
6.1.1 コンピューターが画像を見るとき,その背後には何があるのか
6.1.2 パーセプトロン:単層人工ニューロン
6.1.3 多層パーセプトロン
6.1.4 制限付きボルツマンマシン
6.1.5 KerasによるMLP
6.1.6 オートエンコーダー
6.1.7 畳み込みニューラルネットワーク
6.1.8 MNISTデータセットでのCNN
6.1.9 再帰型ニューラルネットワーク
6.1.10 転移学習
6.2 強化学習
6.3 まとめ
6.A 付録:敵対的生成ネットワーク
おわりに
索 引
著者情報
Manohar Swamynathan
菊地 弘晶
竹之内 隆夫
新田 慧
兼村 厚範