書籍概要

Software Design plus_養成読本

データサイエンティスト養成読本 機械学習入門編

著者
発売日
更新日

概要

ビッグデータ分析をきっかけとして「機械学習」に注目が集まり,ビジネス利用への検討がはじまっています。しかし,実際に「機械学習」を理解しているエンジニアや分析担当者は少なく,うまく活用できていないのが現実です。「機械学習」を利用するにはアルゴリズムの理解,プログラミング技術,ビジネス知識などが必要になってきます。本書では,第1部で機械学習のアルゴリズムやビジネスへの応用方法,流行の深層学習などに触れ,第2部ではPythonを用いた機械学習,画像認識,推薦エンジンなど,サンプルコードをもとに手を動かして試すことができます。機械学習分野で先頭を走る著者陣が,面白く,わかりやすい解説でお届けします。

こんな方におすすめ

  • 機械学習をこれからはじめようと思っている方
  • データサイエンティスト
  • データ分析担当者

目次

第1部
しくみと概要を学ぼう!

特集1
機械学習を使いたい人のための入門講座…… 比戸将平

  • 第1章:機械学習の概要
  • 第2章:機械学習の歴史と今後の応用例
  • 第3章:データサイエンティストのための機械学習
  • 第4章:Q&Aとまとめ

特集2
機械学習の基礎知識…… 馬場雪乃

  • 第1章:機械学習の問題設定
  • 第2章:教師あり学習
  • 第3章: 教師なし学習
  • 第4章:応用

特集3
ビジネスに導入する機械学習…… 里 洋平・戸嶋龍哉

  • 第1章:ビジネスデータのクラスタリング
  • 第2章:予測モデルの構築

特集4
深層学習最前線…… 得居誠也

  • 第1章:準備
  • 第2章:多層パーセプトロンの書き方
  • 第3章:ニューラルネットの学習方法
  • 第4章:画像認識のためのアーキテクチャ

第2部
手を動かして学ぼう!

特集1
機械学習ソフトウェアの概観…… 福島真太朗

  • 第1章:開発が進む機械学習のソフトウェア
  • 第2章:機械学習のソフトウェアを用いた実行例
  • 第3章:機械学習ソフトウェア選択の指針

特集2
Pythonによる機械学習入門…… 加藤公一

  • 第1章:イントロダクション
  • 第2章:Numpy,Scipy,matplotlibの基礎
  • 第3章:scikit-learn入門

特集3
推薦システム入門…… 関 喜史

  • 第1章:推薦システムのキホン
  • 第2章:推薦システムを作る
  • 第3章:推薦システムの高度化
  • 第4章:良い推薦システムを作るために

特集4
Pythonで画像認識にチャレンジ…… 阿部 厳

  • 第1章:画像認識とは?
  • 第2章:準備
  • 第3章:シンプルな画像認識を実装
  • 第4章:猫顔検出に挑戦

特集5
Jubatusによる異常検知…… 熊崎宏樹

  • 第1章:はじめに
  • 第2章:アーキテクチャ
  • 第3章:テストデータからの異常検知
  • 第4章:サーバログからの異常検知

サポート

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2016年7月22日更新)

P.60 例32 予測モデルの構築のコード差し替え

> library(rpart)   # 決定木
> library(rattle)  # きれいな決定木の描画
> # クラスタ番号を因子型に変換
> target.data[,-c(1,ncol(target.data))] <- 
+   apply(target.data[,-c(1,ncol(target.data))], 2, as.factor)
> # 決定木の実行
> cvr.fit <- rpart(cvr~., data=target.data[,-1])

初版第2刷以降で以下の修正について訂正しております
目次

誤 戸嶋達哉
正 戸嶋龍哉

P.30 左段4行目の式

誤 l(w0, w1, w2, x1, x2, y ) = max(0, 1 - y(i) (x1(i), x2(i) ))
正 l(w0, w1, w2, x1, x2, y ) = max(0, 1 - y(i) f(x1(i), x2(i) ))

P.41 左段

誤 平均(μ1,μ2)と2行2列の共分散行列σとなります。
正 平均(μ1,μ2)と2行2列の共分散行列Σとなります。

P.47 例4 2行目

誤 ggplot(click.user.data, aes(x=no, y=click.num)) +
正 ggplot(click.user.data[1:5000,], aes(x=no, y=click.num)) +

P.114 右段下

誤 > sudo apt-get install -y libfreetype6-dev libblas-dev liblapack-dev
gfortran
正 > sudo apt-get install -y libfreetype6-dev libblas-dev liblapack-dev
gfortran tk-dev

P.118 例1の5行目

誤
b = np.array(np.arange(10))
正
b = np.arange(10)

P.129 右段下

誤
LinearRegressio()
正
LinearRegression()

P.130 左段中

誤
datasetモジュール
正
datasetsモジュール

P.133 リスト7下部のインデント,コメント位置のずれ

正
# 描画
markers = ["o", "v", "x"]
for i in range(3):
    xx = X[kmeans.labels_ == i]
    plt.scatter(xx[:, 0], xx[:, 1], c="k", marker=markers[i])
plt.show()

P.157 リスト1下部に不要なコードの入り込み

ax2.add_patch(rect)は不要です。

P.159 リスト2の1行目のコメント

誤
import sys
import numpy as np
from skimage import io
import matplotlib.pyplot as plt
import matplotlib.cm as cm
正
import numpy as np
from skimage import io
from skimage import transform
import matplotlib.pyplot as plt
import matplotlib.cm as cm

「# (省略)リスト1と同様にimport」に加えてfrom skimage import transformが必要です。

P182 リスト6
true_positive += 1 → true_negative += 1
false_negative += 1 → false_positive += 1

誤

else: # 教師データ中で異常とされる物 if may_anomaly: # Jubatusが正しく異常とみなした true_positive+= 1
else: # Jubatusが間違えて正常とみなした false_negative += 1 ====== 

正

else: #教師データ中で異常とされる物 if may_anomaly: # Jubatusが正しく異常とみなした true_negative += 1
else: # Jubatusが間違えて正常とみなした false_positive += 1

ダウンロード

本書で使用するサンプルデータをダウンロードできます。

2015年9月4日更新

P45 図4
P46 図5
P46 図6
P47 click_data_sample.csv
P48 図7
P51 図9
P51 図10
P52 図11
P54 図14
P54 図15
P55 図16
P57 図18
P57 図19
P59 cv_data_sample.csv
P61 図22
P126 図6
P155 図1

商品一覧