書籍概要

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

商品一覧