Python機械学習プログラミング 達人データサイエンティストによる理論と実践

Python機械学習プログラミング 達人データサイエンティストによる理論と実践

4,400円(本体 4,000円+税10%)

品種名
書籍
発売日
2016/6/30
ページ数
464
サイズ
B5変形判
著者
Sebastian Raschka 著/株式会社クイープ 訳/福島 真太朗 監訳
ISBN
9784844380603

機械学習をPythonで実装できる!

機械学習の考え方とPython実装法がわかる! 分類/回帰や深層学習の導入を解説--◎絶妙なバランスで「理論と実践」を展開 ◎Pythonライブラリを使いこなす ◎数式・図・Pythonコードを理解 --機械学習とは、データから学習した結果をもとに、新たなデータに対して判定や予測を行うこと。本書では、機械学習の各理論を端的に解説、Pythonプログラミングによる実装を説明。AIプログラミングの第一歩を踏み出すための一冊です(本書は『Python Machine Learning』の翻訳書です)。

「読者アンケートに答える」「読者プレゼントに応募」の場合もこちらをご利用ください。

アンケートに答える

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

学校・法人一括購入に関するお問い合わせはこちらへ。

一括購入窓口

詳細

Think IT 本書解説記事のご案内

本書の解説記事を以下のURLにて公開しています。本書に必要な前提知識、本書の構成と読み方のプラン等について説明。本書を通して、より効果的に機械学習を学ぶための解説となっています。

◎ ブック・インサイド―『Python機械学習プログラミング』学び方ガイド

著者プロフィール

◎ Sebastian Raschka(セバスチャン・ラシュカ)

ミシガン大学博士課程に在籍。計算生物学の分野で新しいコンピュータ手法の開発に取り組む。データ分析や機械学習の愛好家でもあり、データ分析の関連情報サイト「Analytics Vidhya」の記事では、GitHub上で影響力のあるデータサイエンティストの第1位にランクイン(2015年7月時点)。また、オープンソースソフトウェアの機械学習ライブラリ開発にも貢献している。

翻訳者プロフィール

◎ 株式会社クイープ

1995年、米国サンフランシスコに設立。コンピュータシステムの開発、ローカライズ、コンサルティングを手がけている。2001年に日本法人を設立。主な訳書に、『Scala 関数型デザイン & プログラミング --Scalaz コントリビューターによる関数型徹底ガイド』『CUDA C プロフェッショナル プログラミング』『Cisco ACI ポリシーベースのデータセンター アーキテクチャ/コンセプト/メソドロジー』などがある(いずれもインプレス発行)。

http://www.quipu.co.jp

監修者プロフィール

◎ 福島真太朗

1981年生まれ。株式会社トヨタIT開発センターのリサーチャー。2004年に東京大学理学部物理学科卒業。2006年東京大学大学院新領域創成科学研究科修士課程修了。専攻は物理学・応用数学。

目次

第1章 「データから学習する能力」をコンピュータに与える
第2章 分類問題 -- 機械学習アルゴリズムのトレーニング
第3章 分類問題 -- 機械学習ライブラリscikit-learnの活用
第4章 データ前処理 -- よりよいトレーニングセットの構築
第5章 次元削減でデータを圧縮する
第6章 モデル評価とハイパーパラメータのチューニングのベストプラクティス
第7章 アンサンブル学習 -- 異なるモデルの組み合わせ
第8章 機械学習の適用1 -- 感情分析
第9章 機械学習の適用2 -- Webアプリケーション
第10章 回帰分析 -- 連続値をとる目的変数の予測
第11章 クラスタ分析 -- ラベルなしデータの分析
第12章 ニューラルネットワーク -- 画像認識トレーニング
第13章 ニューラルネットワーク -- 数値計算ライブラリTheanoによるトレーニングの並列化

ダウンロード

本書のサンプルコードは、下記の原著ページよりダウンロードできます。

お詫びと訂正

誤記のためにご迷惑をおかけし、誠に申し訳ございません。

  • 0ページ EPUBリフロー版
    • [誤]
      電子書籍のEPUBリフロー版では、一部のスタイル(ベクトル要素の斜体表記など)が反映されていない個所があります。
    • [正]
  • 0ページ xxvページのタイトル「本書に必要なもの」下の本文5行目
    • [誤]
      NTLKライブラリ
    • [正]
      NLTKライブラリ
    • 【 第3刷にて修正 】
  • 0ページ iiiページ上のキャプション(口絵の5つ目の図)
    • [誤]
      P73……特徴空間を3次元から2次元へ変更
    • [正]
      P73……2次元のデータを3次元に変換して線形分離
    • 【 第3刷にて修正 】
  • 5ページ ※18 [監注]の1行目(1.3.2項の※18)
    • [誤]
      第11章で説明されるように、
    • [正]
      第10章で説明されるように、
    • 【 第3刷にて修正 】
  • 22ページ 2.1節の式2.1.9下の本文2行目
    • [誤]
      下記のようにwの上付き文字を削除
    • [正]
    • 【 第3刷にて修正 】
  • 22ページ 2.1節の式2.1.10の左辺
    • [誤]
      下記のようにwの上付き文字を削除
    • [正]
    • 【 第3刷にて修正 】
  • 24ページ 2.2節の※19 [監注]の1行目
    • [誤]
      scikit-learの入門的な内容については、
    • [正]
      scikit-learnの入門的な内容については、
    • 【 第3刷にて修正 】
  • 26ページ 2つ目のアミカケ内の上から3行目(2.3節直前の囲み)
    • [誤]
      sum([i*j for i,j in zip(a, b)]
    • [正]
      sum([i*j for i,j in zip(a, b)])

      ※丸括弧閉じを追加
    • 【 第4刷にて修正 】
  • 31ページ ページ末尾の※29の2文目(2.3節の※29)
    • [誤]
      この直線より上側にある場合は品種はsetosa、直線より下側にある場合は品種がversicolor
    • [正]
      この直線より上側にある場合は品種はversicolor、直線より下側にある場合は品種がsetosa
    • 【 第4刷にて修正 】
  • 32ページ ページ末尾の※30の2文目(2.3節の※30)
    • [誤]
      特徴量が1つのときは直線、特徴量が2つのときは2次元の平面になる。
    • [正]
      特徴量が1つのときは定数、特徴量が2つのときは2次元の直線になる。
    • 【 第4刷にて修正 】
  • 33ページ 2.5節の※33 [監注]の末尾行
    • [誤]
      がz=0で
    • [正]
      がz=θで
    • 【 第3刷にて修正 】
  • 36ページ 2.5.1項 AdalineGDクラスのコード下から16行目のコメント
    • [誤]
      # w0 の更新 Δw0 = ηΣi(y(i) - yˆ(i))
    • [正]
      # w0 の更新 Δw0 = ηΣi (y(i) - φ(z(i)))
    • 【 第4刷にて修正 】
  • 41ページ ページ上から2行目(2.6節、最初の囲みの上、下から4文目)
    • [誤]
      勾配降下法よりも誤差局面のノイズが多い。
    • [正]
      勾配降下法よりも誤差曲面のノイズが多い。
    • 備考:

       (そのほか、6個所の「局面」を「曲面」に訂正)

    • 【 第4刷にて修正 】
  • 42ページ ページの本文1行目(2.6節の網掛けリストの直前の本文)
    • [誤]
      整合性を保つために、random_stateパラメータを使ってランダムな乱数種を指定できるようにする。
    • [正]
      一貫性を保つために、random_stateパラメータを使って乱数種を指定できるようにコーディングする。
    • 【 第4刷にて修正 】
  • 42ページ プログラムリスト上から19行目(2.6節最初のリスト19行目)のrandom_stateのコメント
    • [誤]
      シャッフルに使用するrandom_stateを設定し、重みを初期化
    • [正]
      シャッフルに使用するランダムステートを設定し、重みを初期化
    • 【 第4刷にて修正 】
  • 49ページ 3.2.1項 2つ目の罫枠の1行目
    • [誤]
      >>> print("Class labels:", np.unique(y))
    • [正]
      >>> print("Class labels:", np.unique(y))

      ※末尾の括弧閉じを全角から半角に変更
    • 【 第4刷にて修正 】
  • 54ページ ※4の文中(3.3.1項)
    • [誤]
      式3.3.1
    • [正]
      式3.3.2
    • 【 第3刷にて修正 】
  • 64ページ 監注21(3.3.4項)
    • [誤]
      3行目を以下のように変更
    • [正]
    • 【 第3刷にて修正 】
  • 113ページ ※20 [監注]の下から4行目(4.5.2項)
    • [誤]
      本書では3.3.4項で説明したL2正則化、4.5.1項で説明したL1正則化、第10章で説明するリッジ回帰、LASSO、ElasticNetなどが該当する。
    • [正]
      本書では4.5.1項で説明したL1正則化、第10章で説明するLASSOなどが該当する。
    • 備考:

      L2正則化、リッジ回帰、ElasticNetは一般的に特徴選択をしないため、変更。

    • 【 第3刷にて修正 】
  • 117ページ 2つ目のコードブロック 1行目と3行目のコメント
    • [誤]
      >>> # 近傍点の個数のリスト(13, 12, ..., 1)
      >>> k_feat = [len(k) for k in sbs.subsets_]
      >>> # 横軸を近傍点の個数、縦軸をスコアとした折れ線グラフのプロット
    • [正]
      >>> # 特徴量の個数のリスト(13, 12, ..., 1)
      >>> k_feat = [len(k) for k in sbs.subsets_]
      >>> # 横軸を特徴量の個数、縦軸をスコアとした折れ線グラフのプロット
    • 【 第6刷にて修正 】
  • 147ページ ページ末尾の記述
    • [誤]
      右辺をνについて解く
    • [正]
      ν=…の形にする
    • 【 第6刷にて修正 】
  • 217ページ 箇条書き5.の下の式(7.5節)
    • [誤]
      等号を不等号に変更
    • [正]
    • 【 第3刷にて修正 】
  • 217ページ 下から3行目(7.5節の箇条書き9.直後の本文1行目)
    • [誤]
      ステップ5の式(yˆ == y)は、
    • [正]
      ステップ5の式(yˆ ≠ y)は、
    • 【 第4刷にて修正 】
  • 218ページ 7.5.2式の直前(7.5節)
    • [誤]
      として使用する(ステップ10)。
    • [正]
      として使用する(ステップ9)。
    • 【 第3刷にて修正 】
  • 220ページ ページ先頭のコードの上から4行目
    • [誤]
      Decision tree train/test accuracies 1.000/0.833
    • [正]
      Decision tree train/test accuracies 0.845/0.854
    • 【 第6刷にて修正 】
  • 229ページ 8.2.2項の※8の2文目
    • [誤]
      IDFの計算式は idf(t, d) = log{(n d / df(t, d)} となる。
    • [正]
      IDFの計算式は idf(t, d) = log{n d / df(t, d)} となる。

      ※右辺の最初の丸括弧開きを削除
    • 【 第4刷にて修正 】
  • 233ページ ※15 [監注]の3行目(8.2.4項)
    • [誤]
      2011年
    • [正]
      2010年
    • 【 第3刷にて修正 】
  • 327ページ 式12.1.2の右辺(12.1.1項)
    • [誤]
      右辺の頭にマイナス記号を追加
    • [正]
    • 【 第3刷にて修正 】
  • 328ページ ページ下の図(12.1.2項)
    • [誤]
      wの下付き数字を変更
      01⇒10
      31⇒13
    • [正]
    • 【 第3刷にて修正 】
  • 340ページ コード下から15行~16行目(12.2.2節のNeuralNetMLPクラスの_get_gradient定義の正則化コード)
    • [誤]
      grad1[:, 1:] += (w1[:, 1:] * (self.l1 + self.l2))
      grad2[:, 1:] += (w2[:, 1:] * (self.l1 + self.l2))
    • [正]
      grad1[:, 1:] += self.l2 * w1[:, 1:]
      grad1[:, 1:] += self.l1 * np.sign(w1[:, 1:])
      grad2[:, 1:] += self.l2 * w2[:, 1:]
      grad2[:, 1:] += self.l1 * np.sign(w2[:, 1:])
    • 【 第5刷にて修正 】
  • 341ページ 12.2.2のサンプルコード(網掛け)の末尾行
    • [誤]
      return self
    • [正]
      ※行頭のインデントを1つなくす。
  • 380ページ 2つ目の囲みコードの3行目(13.2.1節・2つ目の囲み・3行目)
    • [誤]
      >>> # 最初の列(A[:][0] = 1)がバイアスユニットであることに注意
    • [正]
      >>> # 最初の列(W[:][0])がバイアスユニットであることに注意
    • 【 第5刷にて修正 】
  • 403ページ ページ末尾の※2(付録Bの※2)
    • [誤]
      http://matplotlib.org/api/colors_api.htm
    • [正]
      http://matplotlib.org/api/colors_api.html
    • 【 第4刷にて修正 】
  • 404ページ 本文の1行目(B.2節直前の下から2段落目)
    • [誤]
      なお、matplotlib2.0ではカラーマップは大幅に変更される模様である。
    • [正]
      なお、matplotlib2.0ではデフォルトのカラーマップは変更される模様である(http://matplotlib.org/style_changes.html)。
    • 【 第3刷にて修正 】
  • 409ページ B.5節の1つ目の罫枠直後の本文から、3つ目の罫枠まで(設定するディレクトリにmatplotlibrcファイルがない場合は次の[正]の操作を行う)
    • [誤]
       matplotlibで使用するフォントを変更するためには、設定ファイル(rcファイル)を修正する必要がある。
      ……省略……
      font.family : Osaka
    • [正]
    • 【 第3刷にて修正 】
  • 409ページ B.5節の最後の罫枠直前の本文
    • [誤]
      matplotlibは、TrueTypeフォントを使用しないため、
    • [正]
      matplotlibは拡張子がttcのTrueTypeフォントを使用できないため、
    • 【 第3刷にて修正 】
  • 409ページ 【3刷のみの訂正】B.5節の上から2つ目の罫枠
    • [誤]
      '/Users/fukushima/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site -packages/matplotlib/mpl-data/matplotlibrc'
    • [正]
      '/Users/fukushima/.pyenv/versions/anaconda3-4.0.0/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc'

      ※siteの後のスペースを削除
    • 【 第4刷にて修正 】
  • 415ページ ページ中ほどp2の行列式の値(C.2節3つ目の罫枠コード直前の行列式の値)
    • [誤]
      下記のように2を-2に変更
    • [正]
    • 【 第3刷にて修正 】

お問い合わせ

書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。

お問い合わせフォーム