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機械学習プログラミング』学び方ガイド
- 第3回(2016/09/16 更新)「単純な例でADALINEのイメージをつかむ」
https://thinkit.co.jp/article/10666 - 第2回(2016/08/08 更新)「パーセプトロンを読み解く」
https://thinkit.co.jp/article/10342 - 第1回(2016/06/30 更新)「学び方ガイド」
https://thinkit.co.jp/article/9926
著者プロフィール
◎ 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刷にて修正 】
- [誤]
お問い合わせ
書籍の内容に関するお問い合わせはこちら。お答えできるのは本書に記載の内容に関することに限ります。