Python機械学習クックブック

Book description

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

Table of contents

  1. 表紙
  2.  はじめに
  3.  1章 ベクトル、行列、配列
  4.   レシピ1.0 はじめに
  5.   レシピ1.1 ベクトルの作成
  6.   レシピ1.2 行列の作成
  7.   レシピ1.3 疎行列の作成
  8.   レシピ1.4 要素の選択
  9.   レシピ1.5 行列の性質を取得する
  10.   レシピ1.6 要素に対する計算
  11.   レシピ1.7 最大値と最小値を見つける
  12.   レシピ1.8 平均値、分散、標準偏差の計算
  13.   レシピ1.9 配列形状の変更
  14.   レシピ1.10 ベクトル、行列の転置
  15.   レシピ1.11 行列のフラット化
  16.   レシピ1.12 行列のランク
  17.   レシピ1.13 行列式の計算
  18.   レシピ1.14 行列の対角要素の取得
  19.   レシピ1.15 行列トレースの計算
  20.   レシピ1.16 固有値と固有ベクトル
  21.   レシピ1.17 内積の計算
  22.   レシピ1.18 行列の加算、減算
  23.   レシピ1.19 行列の乗算
  24.   レシピ1.20 逆行列の算出
  25.   レシピ1.21 乱数の生成
  26.  2章 データのロード
  27.   レシピ2.0 はじめに
  28.   レシピ2.1 サンプルデータセットのロード
  29.   レシピ2.2 シミュレーションによるデータセットの生成
  30.   レシピ2.3 CSVファイルのロード
  31.   レシピ2.4 Excelファイルの読み込み
  32.   レシピ2.5 JSONファイルの読み込み
  33.   レシピ2.6 SQLデータベースの検索
  34.  3章 データラングリング
  35.   レシピ3.0 はじめに
  36.   レシピ3.1 データフレームの作成
  37.   レシピ3.2 データの性質を取得
  38.   レシピ3.3 DataFrameの操作
  39.   レシピ3.4 条件を用いた行の選択
  40.   レシピ3.5 値の置き換え
  41.   レシピ3.6 列の名前を変更
  42.   レシピ3.7 最小値、最大値、合計、平均値、カウント数の算出
  43.   レシピ3.8 ユニークな値の算出
  44.   レシピ3.9 欠損データの取り扱い
  45.   レシピ3.10 列の削除
  46.   レシピ3.11 行の削除
  47.   レシピ3.12 重複した行の削除
  48.   レシピ3.13 値による行のグループ分け
  49.   レシピ3.14 時刻による行のグループ分け
  50.   レシピ3.15 列に対するループ
  51.   レシピ3.16 ある列のすべての要素に対して関数を適用する
  52.   レシピ3.17 関数をグループに適用
  53.   レシピ3.18 DataFrameの連結
  54.   レシピ3.19 DataFrameのマージ
  55.  4章 数値データの取り扱い
  56.   レシピ4.0 はじめに
  57.   レシピ4.1 特徴量のスケール変換
  58.   レシピ4.2 特徴量の標準化
  59.   レシピ4.3 観測値の正規化
  60.   レシピ4.4 多項式特徴量と交互作用特徴量
  61.   レシピ4.5 特徴量の変換
  62.   レシピ4.6 外れ値の検出
  63.   レシピ4.7 外れ値の取り扱い
  64.   レシピ4.8 特徴量の離散化
  65.   レシピ4.9 クラスタリングによる観測値のグループ分け
  66.   レシピ4.10 欠損値がある観測値を取り除く
  67.   レシピ4.11 欠損値の補完
  68.  5章 カテゴリデータの取り扱い
  69.   レシピ5.0 はじめに
  70.   レシピ5.1 名義カテゴリ特徴量の数値化
  71.   レシピ5.2 順序カテゴリ特徴量の数値化
  72.   レシピ5.3 特徴量辞書の数値化
  73.   レシピ5.4 欠損クラス値の補完
  74.   レシピ5.5 不均等なクラスの取り扱い
  75.  6章 テキストの取り扱い
  76.   レシピ6.0 はじめに
  77.   レシピ6.1 テキストのクリーニング
  78.   レシピ6.2 HTMLのパースとクリーニング
  79.   レシピ6.3 句読点の除去
  80.   レシピ6.4 テキストのトークン化
  81.   レシピ6.5 ストップワードの除去
  82.   レシピ6.6 語幹の抽出
  83.   レシピ6.7 品詞タグ付け
  84.   レシピ6.8 BoW(Bag of Words)によるテキストエンコード
  85.   レシピ6.9 単語への重み付け
  86.  7章 日時データの取り扱い
  87.   レシピ7.0 はじめに
  88.   レシピ7.1 文字列の日時データへの変換
  89.   レシピ7.2 タイムゾーンの取り扱い
  90.   レシピ7.3 日付と時間による選択
  91.   レシピ7.4 日付データを複数の特徴量に分解
  92.   レシピ7.5 日付の差の算出
  93.   レシピ7.6 曜日の算出
  94.   レシピ7.7 時間遅れ特徴量の生成
  95.   レシピ7.8 移動時間窓の利用
  96.   レシピ7.9 時系列データ中の欠損値の取り扱い
  97.  8章 画像の取り扱い
  98.   レシピ8.0 はじめに
  99.   レシピ8.1 画像のロード
  100.   レシピ8.2 画像の保存
  101.   レシピ8.3 画像サイズの変更
  102.   レシピ8.4 画像のクロップ
  103.   レシピ8.5 画像のぼかし
  104.   レシピ8.6 画像をくっきりさせる
  105.   レシピ8.7 コントラストの強調
  106.   レシピ8.8 色の分離
  107.   レシピ8.9 画像の2値化
  108.   レシピ8.10 背景除去
  109.   レシピ8.11 エッジの検出
  110.   レシピ8.12 コーナーの検出
  111.   レシピ8.13 機械学習用の特徴量を作成
  112.   レシピ8.14 平均色を特徴量にする
  113.   レシピ8.15 色ヒストグラムをエンコード
  114.  9章 特徴量抽出による次元削減
  115.   レシピ9.0 はじめに
  116.   レシピ9.1 主成分を用いた特徴量削減
  117.   レシピ9.2 データが線形分離不可能な際の特徴量削減
  118.   レシピ9.3 クラスの分離性最大化による特徴量削減
  119.   レシピ9.4 行列因子分解による特徴量削減
  120.   レシピ9.5 疎データの特徴量削減
  121.  10章 特徴量選択による次元削減
  122.   レシピ10.0 はじめに
  123.   レシピ10.1 数値特徴量の分散による閾値処理
  124.   レシピ10.2 2値特徴量の分散閾値処理
  125.   レシピ10.3 強く相関した特徴量の取り扱い
  126.   レシピ10.4 クラス分類に無関係な特徴量の削除
  127.   レシピ10.5 再帰的な特徴量の除去
  128.  11章 モデルの評価
  129.   レシピ11.0 はじめに
  130.   レシピ11.1 交差検証
  131.   レシピ11.2 ベースライン回帰モデルの作成
  132.   レシピ11.3 ベースラインクラス分類モデルの作成
  133.   レシピ11.4 2クラス分類器の評価
  134.   レシピ11.5 2クラス分類器閾値の評価
  135.   レシピ11.6 多クラス分類器による予測の評価
  136.   レシピ11.7 クラス分類器性能の可視化
  137.   レシピ11.8 回帰モデルの評価
  138.   レシピ11.9 クラスタリングモデルの評価
  139.   レシピ11.10 評価指標のカスタマイズ
  140.   レシピ11.11 訓練セットサイズによる影響の可視化
  141.   レシピ11.12 評価指標に関するテキストレポートの生成
  142.   レシピ11.13 ハイパーパラメータの効果の可視化
  143.  12章 モデル選択
  144.   レシピ12.0 はじめに
  145.   レシピ12.1 全解探索による最良モデル選択
  146.   レシピ12.2 ランダム探索による最良モデルの選択
  147.   レシピ12.3 複数の学習アルゴリズムから最良のモデルを選択
  148.   レシピ12.4 前処理がある場合の最良モデルの選択
  149.   レシピ12.5 並列化によるモデル選択の高速化
  150.   レシピ12.6 アルゴリズム固有の方法を用いたモデル選択の高速化
  151.   レシピ12.7 モデル選択後の性能評価
  152.  13章 線形回帰
  153.   レシピ13.0 はじめに
  154.   レシピ13.1 直線によるフィッティング
  155.   レシピ13.2 交互作用の影響の取り扱い
  156.   レシピ13.3 非線形な関係の学習
  157.   レシピ13.4 正則化によるバリアンスの低減
  158.   レシピ13.5 Lasso回帰による特徴量削減
  159.  14章 決定木とフォレスト
  160.   レシピ14.0 はじめに
  161.   レシピ14.1 決定木を用いたクラス分類器の訓練
  162.   レシピ14.2 決定木回帰器の訓練
  163.   レシピ14.3 決定木モデルの可視化
  164.   レシピ14.4 ランダムフォレストクラス分類器の訓練
  165.   レシピ14.5 ランダムフォレスト回帰器の訓練
  166.   レシピ14.6 ランダムフォレストにおける重要な特徴量の特定
  167.   レシピ14.7 ランダムフォレストにおける重要な特徴量の選択
  168.   レシピ14.8 不均等なクラスの処理
  169.   レシピ14.9 決定木サイズの制御
  170.   レシピ14.10 ブースティングによる性能の向上
  171.   レシピ14.11 ランダムフォレストのOOBエラーによる評価
  172.  15章 k-最近傍法
  173.   レシピ15.0 はじめに
  174.   レシピ15.1 観測値の近傍の発見
  175.   レシピ15.2 k-最近傍法クラス分類器の作成
  176.   レシピ15.3 最適な近傍サイズの特定
  177.   レシピ15.4 半径を用いた最近傍クラス分類器の作成
  178.  16章 ロジスティック回帰
  179.   レシピ16.0 はじめに
  180.   レシピ16.1 2クラス分類器の訓練
  181.   レシピ16.2 多クラス分類器の訓練
  182.   レシピ16.3 正則化によるバリアンスの削減
  183.   レシピ16.4 大規模データに対するクラス分類器の訓練
  184.   レシピ16.5 クラスサイズが不均衡な場合の取り扱い
  185.  17章 サポートベクタマシン
  186.   レシピ17.0 はじめに
  187.   レシピ17.1 線形クラス分類器の訓練
  188.   レシピ17.2 カーネルを用いた線形分離不能なクラスの取り扱い
  189.   レシピ17.3 予測確率の生成
  190.   レシピ17.4 サポートベクタの特定
  191.   レシピ17.5 不均等なクラスサイズの取り扱い
  192.  18章 ナイーブベイズ
  193.   レシピ18.0 はじめに
  194.   レシピ18.1 連続値特徴量に対するクラス分類器の訓練
  195.   レシピ18.2 離散値特徴量とカウント特徴量に対するクラス分類器の訓練
  196.   レシピ18.3 2クラス特徴量に対するナイーブベイズクラス分類器の訓練
  197.   レシピ18.4 予測確率の較正
  198.  19章 クラスタリング
  199.   レシピ19.0 はじめに
  200.   レシピ19.1 k-平均法(k-Means)によるクラスタリング
  201.   レシピ19.2 k-平均法クラスタリングの高速化
  202.   レシピ19.3 平均値シフト法によるクラスタリング
  203.   レシピ19.4 DBSCANを用いたクラスタリング
  204.   レシピ19.5 階層的マージによるクラスタリング
  205.  20章 ニューラルネットワーク
  206.   レシピ20.0 はじめに
  207.   レシピ20.1 ニューラルネットワークのためのデータ前処理
  208.   レシピ20.2 ニューラルネットワークの設計
  209.   レシピ20.3 2クラス分類器の訓練
  210.   レシピ20.4 多クラス分類器の訓練
  211.   レシピ20.5 回帰器の訓練
  212.   レシピ20.6 予測を行う
  213.   レシピ20.7 訓練経過の可視化
  214.   レシピ20.8 重みの正則化による過剰学習の削減
  215.   レシピ20.9 早期終了による過剰学習の削減
  216.   レシピ20.10 ドロップアウトを用いた過剰学習の削減
  217.   レシピ20.11 モデル訓練の進捗状況のセーブ
  218.   レシピ20.12 ニューラルネットワークに対するk-分割交差検証
  219.   レシピ20.13 ニューラルネットワークのチューニング
  220.   レシピ20.14 ニューラルネットワークの可視化
  221.   レシピ20.15 画像のクラス分類
  222.   レシピ20.16 画像拡張による性能の向上
  223.   レシピ20.17 テキストのクラス分類
  224.  21章 訓練済みモデルのセーブとロード
  225.   レシピ21.0 はじめに
  226.   レシピ21.1 scikit-learnモデルのセーブとロード
  227.   レシピ21.2 Kerasモデルのセーブとロード
  228.  付録A 日本語テキストの取り扱い
  229.   レシピA.0 はじめに
  230.   レシピA.1 日本語のテキストのトークン分割
  231.   レシピA.2 日本語テキストに対するBoW特徴量
  232. 奥付

Product information

  • Title: Python機械学習クックブック
  • Author(s): Chris Albon, 中田 秀基
  • Release date: December 2018
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873118673

You might also like

book

ハイパフォーマンスPython

by Micha Gorelick, Ian Ozsvald, 相川 愛三

Pythonの高速化技法について一歩踏み込んだプロユースの解説書。ボトルネックの測定方法から、最適なデータ構造の使い分け、CythonやPyPyなどのコンパイラの比較、numpyなどのパッケージの使い方、マルチコアCPUの活用法、メモリ効率を劇的に改善するトライ構造や近似計算まで、シンプルな実例プログラムを用いながらわかりやすく説明します。高性能なプログラムの書き方だけでなく、高性能なシステムの作り方を総合的に学ぶことができるPythonエキスパート必携の一冊です。

book

PythonとJavaScriptではじめるデータビジュアライゼーション

by Kyran Dale, 嶋田 健志, 木下 哲也

Webからデータを取得して、効率よく整理、分析を行い効果的な可視化を実現するには、さまざまなツールとテクニックが必要です。 本書ではPythonとJavaScriptを使い分け、それぞれの言語の強みを最大限利用します。 PythonのBeautifulSoupとScrapyでデータを取得、pandas、Matplotlib、Numpyでデータ処理を行い、Flaskフレームワークを使ってデータを配信、JavaScriptのD3.jsを使ってインタラクティブなWeb可視化を実現します。データの収集からアウトプットまでの全体を視野に入れて解説しているので、実際にコードを追いながら、この一冊でデータ分析プロセスの全体像を理解できます。

book

アイソモーフィックJavaScript

by Jason Strimpel, Maxime Najim, 牧野 聡

アイソモーフィックJavaScriptは、クライアントサイド(ブラウザ)とサーバーサイドで同じコードを実行できるようにするためのフレームワークの総称。本書では、従来のアプリケーションが持つ問題点(読み込みの遅さ、SEO対策の困難さなど)を明らかにするところから始め、アイソモーフィックなアプリケーションの分類やアイソモーフィックさの度合いについて理解したうえで、アイソモーフィックなJavaScriptフレームワークを構築するための実践手法を解説し、Walmart、Airbnb、Facebook、Netflixといった大企業がアイソモーフィックJavaScriptを選んだ理由を明らかにします。読者は、なぜこのアプリケーションアーキテクチャーが、ページ読み込み速度やSEOコンパチビリティといった、ビジネス面でクリティカルな問題を解決するためのソリューションとして人気上昇中なのかを学べます。

book

データサイエンス講義

by Rachel Schutt, Cathy O'Neil, 瀬戸山 雅人, 石井 弓美子, 河内 崇, 河内 真理子, 古畠 敦, 木下 哲也, 竹田 正和, 佐藤 正士, 望月 啓充

コロンビア大学のデータサイエンス入門講義をベースとした本書では、データサイエンスを行う上で、どのようなプロセスが必要か、データサイエンティストとしてはどのようなスキルセットが必要で、どのような思考方法を選択する必要があるのかを実例とともに紹介します。Google、Microsoft、Facebookをはじめとした有名企業で使われているアルゴリズムや分析手法の紹介など、興味深い話題や事例を豊富に収録。幅広い解説で、データサイエンティストの参考になるトピックが満載の一冊です。