Python機械学習クックブック

[cover photo]
TOPICS
クックブック , Programming , Python
発行年月日
PRINT LENGTH
368
ISBN
978-4-87311-867-3
原書
Machine Learning with Python Cookbook
FORMAT
PDF EPUB

Pythonによる機械学習を進める上で、頻繁に遭遇すると思われる200超の問題とその解決策を紹介。データ構造(ベクトル、行列、配列)、数値データ、カテゴリデータ、テキスト、画像、日時データの取り扱いといったデータ分析の基本から、特徴量抽出、次元削減、モデルの評価と選択、線形回帰、決定木、ランダムフォレスト、k-最近傍法、SVM、ナイーブベイズ、クラスタリング、ニューラルネットワーク、訓練済みモデルのセーブとロードなど、幅広い内容をカバー。巻末に日本語版付録「日本語テキストの取り扱い」を収録。「やりたいこと」「困っていること」に答えてくれる一冊です。

関連ファイル

目次

はじめに

1章 ベクトル、行列、配列
    レシピ1.0 はじめに
    レシピ1.1 ベクトルの作成
    レシピ1.2 行列の作成
    レシピ1.3 疎行列の作成
    レシピ1.4 要素の選択
    レシピ1.5 行列の性質を取得する
    レシピ1.6 要素に対する計算
    レシピ1.7 最大値と最小値を見つける
    レシピ1.8 平均値、分散、標準偏差の計算
    レシピ1.9 配列形状の変更
    レシピ1.10 ベクトル、行列の転置
    レシピ1.11 行列のフラット化
    レシピ1.12 行列のランク
    レシピ1.13 行列式の計算
    レシピ1.14 行列の対角要素の取得
    レシピ1.15 行列トレースの計算
    レシピ1.16 固有値と固有ベクトル
    レシピ1.17 内積の計算
    レシピ1.18 行列の加算、減算
    レシピ1.19 行列の乗算
    レシピ1.20 逆行列の算出
    レシピ1.21 乱数の生成

2章 データのロード
    レシピ2.0 はじめに
    レシピ2.1 サンプルデータセットのロード
    レシピ2.2 シミュレーションによるデータセットの生成
    レシピ2.3 CSVファイルのロード
    レシピ2.4 Excelファイルの読み込み
    レシピ2.5 JSONファイルの読み込み
    レシピ2.6 SQLデータベースの検索

3章 データラングリング
    レシピ3.0 はじめに
    レシピ3.1 データフレームの作成
    レシピ3.2 データの性質を取得
    レシピ3.3 DataFrameの操作
    レシピ3.4 条件を用いた行の選択
    レシピ3.5 値の置き換え
    レシピ3.6 列の名前を変更
    レシピ3.7 最小値、最大値、合計、平均値、カウント数の算出
    レシピ3.8 ユニークな値の算出
    レシピ3.9 欠損データの取り扱い
    レシピ3.10 列の削除
    レシピ3.11 行の削除
    レシピ3.12 重複した行の削除
    レシピ3.13 値による行のグループ分け
    レシピ3.14 時刻による行のグループ分け
    レシピ3.15 列に対するループ
    レシピ3.16 ある列のすべての要素に対して関数を適用する
    レシピ3.17 関数をグループに適用
    レシピ3.18 DataFrameの連結
    レシピ3.19 DataFrameのマージ

4章 数値データの取り扱い
    レシピ4.0 はじめに
    レシピ4.1 特徴量のスケール変換
    レシピ4.2 特徴量の標準化
    レシピ4.3 観測値の正規化
    レシピ4.4 多項式特徴量と交互作用特徴量
    レシピ4.5 特徴量の変換
    レシピ4.6 外れ値の検出
    レシピ4.7 外れ値の取り扱い
    レシピ4.8 特徴量の離散化
    レシピ4.9 クラスタリングによる観測値のグループ分け
    レシピ4.10 欠損値がある観測値を取り除く
    レシピ4.11 欠損値の補完

5章 カテゴリデータの取り扱い
    レシピ5.0 はじめに
    レシピ5.1 名義カテゴリ特徴量の数値化
    レシピ5.2 順序カテゴリ特徴量の数値化
    レシピ5.3 特徴量辞書の数値化
    レシピ5.4 欠損クラス値の補完
    レシピ5.5 不均等なクラスの取り扱い

6章 テキストの取り扱い
    レシピ6.0 はじめに
    レシピ6.1 テキストのクリーニング
    レシピ6.2 HTMLのパースとクリーニング
    レシピ6.3 句読点の除去
    レシピ6.4 テキストのトークン化
    レシピ6.5 ストップワードの除去
    レシピ6.6 語幹の抽出
    レシピ6.7 品詞タグ付け
    レシピ6.8 BoW(Bag of Words)によるテキストエンコード
    レシピ6.9 単語への重み付け

7章 日時データの取り扱い
    レシピ7.0 はじめに
    レシピ7.1 文字列の日時データへの変換
    レシピ7.2 タイムゾーンの取り扱い
    レシピ7.3 日付と時間による選択
    レシピ7.4 日付データを複数の特徴量に分解
    レシピ7.5 日付の差の算出
    レシピ7.6 曜日の算出
    レシピ7.7 時間遅れ特徴量の生成
    レシピ7.8 移動時間窓の利用
    レシピ7.9 時系列データ中の欠損値の取り扱い

8章 画像の取り扱い
    レシピ8.0 はじめに
    レシピ8.1 画像のロード
    レシピ8.2 画像の保存
    レシピ8.3 画像サイズの変更
    レシピ8.4 画像のクロップ
    レシピ8.5 画像のぼかし
    レシピ8.6 画像をくっきりさせる
    レシピ8.7 コントラストの強調
    レシピ8.8 色の分離
    レシピ8.9 画像の2値化
    レシピ8.10 背景除去
    レシピ8.11 エッジの検出
    レシピ8.12 コーナーの検出
    レシピ8.13 機械学習用の特徴量を作成
    レシピ8.14 平均色を特徴量にする
    レシピ8.15 色ヒストグラムをエンコード

9章 特徴量抽出による次元削減
    レシピ9.0 はじめに
    レシピ9.1 主成分を用いた特徴量削減
    レシピ9.2 データが線形分離不可能な際の特徴量削減
    レシピ9.3 クラスの分離性最大化による特徴量削減
    レシピ9.4 行列因子分解による特徴量削減
    レシピ9.5 疎データの特徴量削減

10章 特徴量選択による次元削減
    レシピ10.0 はじめに
    レシピ10.1 数値特徴量の分散による閾値処理
    レシピ10.2 2値特徴量の分散閾値処理
    レシピ10.3 強く相関した特徴量の取り扱い
    レシピ10.4 クラス分類に無関係な特徴量の削除
    レシピ10.5 再帰的な特徴量の除去

11章 モデルの評価
    レシピ11.0 はじめに
    レシピ11.1 交差検証
    レシピ11.2 ベースライン回帰モデルの作成
    レシピ11.3 ベースラインクラス分類モデルの作成
    レシピ11.4 2クラス分類器の評価
    レシピ11.5 2クラス分類器閾値の評価
    レシピ11.6 多クラス分類器による予測の評価
    レシピ11.7 クラス分類器性能の可視化
    レシピ11.8 回帰モデルの評価
    レシピ11.9 クラスタリングモデルの評価
    レシピ11.10 評価指標のカスタマイズ
    レシピ11.11 訓練セットサイズによる影響の可視化
    レシピ11.12 評価指標に関するテキストレポートの生成
    レシピ11.13 ハイパーパラメータの効果の可視化

12章 モデル選択
    レシピ12.0 はじめに
    レシピ12.1 全解探索による最良モデル選択
    レシピ12.2 ランダム探索による最良モデルの選択
    レシピ12.3 複数の学習アルゴリズムから最良のモデルを選択
    レシピ12.4 前処理がある場合の最良モデルの選択
    レシピ12.5 並列化によるモデル選択の高速化
    レシピ12.6 アルゴリズム固有の方法を用いたモデル選択の高速化
    レシピ12.7 モデル選択後の性能評価

13章 線形回帰
    レシピ13.0 はじめに
    レシピ13.1 直線によるフィッティング
    レシピ13.2 交互作用の影響の取り扱い
    レシピ13.3 非線形な関係の学習
    レシピ13.4 正則化によるバリアンスの低減
    レシピ13.5 Lasso回帰による特徴量削減

14章 決定木とフォレスト
    レシピ14.0 はじめに
    レシピ14.1 決定木を用いたクラス分類器の訓練
    レシピ14.2 決定木回帰器の訓練
    レシピ14.3 決定木モデルの可視化
    レシピ14.4 ランダムフォレストクラス分類器の訓練
    レシピ14.5 ランダムフォレスト回帰器の訓練
    レシピ14.6 ランダムフォレストにおける重要な特徴量の特定
    レシピ14.7 ランダムフォレストにおける重要な特徴量の選択
    レシピ14.8 不均等なクラスの処理
    レシピ14.9 決定木サイズの制御
    レシピ14.10 ブースティングによる性能の向上
    レシピ14.11 ランダムフォレストのOOBエラーによる評価

15章 k-最近傍法
    レシピ15.0 はじめに
    レシピ15.1 観測値の近傍の発見
    レシピ15.2 k-最近傍法クラス分類器の作成
    レシピ15.3 最適な近傍サイズの特定
    レシピ15.4 半径を用いた最近傍クラス分類器の作成

16章 ロジスティック回帰
    レシピ16.0 はじめに
    レシピ16.1 2クラス分類器の訓練
    レシピ16.2 多クラス分類器の訓練
    レシピ16.3 正則化によるバリアンスの削減
    レシピ16.4 大規模データに対するクラス分類器の訓練
    レシピ16.5 クラスサイズが不均衡な場合の取り扱い

17章 サポートベクタマシン
    レシピ17.0 はじめに
    レシピ17.1 線形クラス分類器の訓練
    レシピ17.2 カーネルを用いた線形分離不能なクラスの取り扱い
    レシピ17.3 予測確率の生成
    レシピ17.4 サポートベクタの特定
    レシピ17.5 不均等なクラスサイズの取り扱い

18章 ナイーブベイズ
    レシピ18.0 はじめに
    レシピ18.1 連続値特徴量に対するクラス分類器の訓練
    レシピ18.2 離散値特徴量とカウント特徴量に対するクラス分類器の訓練
    レシピ18.3 2クラス特徴量に対するナイーブベイズクラス分類器の訓練
    レシピ18.4 予測確率の較正

19章 クラスタリング
    レシピ19.0 はじめに
    レシピ19.1 k-平均法(k-Means)によるクラスタリング
    レシピ19.2 k-平均法クラスタリングの高速化
    レシピ19.3 平均値シフト法によるクラスタリング
    レシピ19.4 DBSCANを用いたクラスタリング
    レシピ19.5 階層的マージによるクラスタリング

20章 ニューラルネットワーク
    レシピ20.0 はじめに
    レシピ20.1 ニューラルネットワークのためのデータ前処理
    レシピ20.2 ニューラルネットワークの設計
    レシピ20.3 2クラス分類器の訓練
    レシピ20.4 多クラス分類器の訓練
    レシピ20.5 回帰器の訓練
    レシピ20.6 予測を行う
    レシピ20.7 訓練経過の可視化
    レシピ20.8 重みの正則化による過剰学習の削減
    レシピ20.9 早期終了による過剰学習の削減
    レシピ20.10 ドロップアウトを用いた過剰学習の削減
    レシピ20.11 モデル訓練の進捗状況のセーブ
    レシピ20.12 ニューラルネットワークに対するk-分割交差検証
    レシピ20.13 ニューラルネットワークのチューニング
    レシピ20.14 ニューラルネットワークの可視化
    レシピ20.15 画像のクラス分類
    レシピ20.16 画像拡張による性能の向上
    レシピ20.17 テキストのクラス分類

21章 訓練済みモデルのセーブとロード
    レシピ21.0 はじめに
    レシピ21.1 scikit-learnモデルのセーブとロード
    レシピ21.2 Kerasモデルのセーブとロード

付録A 日本語テキストの取り扱い
    レシピA.0 はじめに
    レシピA.1 日本語のテキストのトークン分割
    レシピA.2 日本語テキストに対するBoW特徴量

索引