SlideShare una empresa de Scribd logo
1 de 53
Pythonで動かして学ぶ機械学習入門
第1回 :予測モデルを作ってみよう
2016/9/9
堅田@白ヤギコーポレーション
Copyright Shiroyagi Corporation. All rights reserved.
自己紹介
堅田 洋資
(データサイエンティスト@白ヤギコーポレーション )
日本では数少ない米国大学のデータサイエンス修士号を保有。
白ヤギコーポレーションにて、社内のデータはもちろんクライアントのデータ分析を
支援するコンサルタントとして活躍。
これまで機械学習を用いたレコメンデーション、アプリユーザーの行動分析や機械
学習を用いたプッシュ通知の最適化、交通系IoTのデータ分析などを担当。
白ヤギコーポレーション参画前は、監査法人トーマツにてデータ分析コンサルタン
ト、生体センサスタートアップでサービス・アルゴリズム開発の取締役、KPMG FAS
にて事業再生コンサルタント、外資系メーカーでの経理・マーケティングなど幅広い
経験を持つ。
学歴
● University of San Francisco, M.S. in Analytics修了
● 一橋大学商学部卒業(統計学・データサイエンス専攻)
メディア実績
• 日経ビッグデータWeb版パートナーレポート「成功するアナリティクス案件の選択とは http://business.nikkeibp.co.jp/article/bigdata/20141021/272866/
• SELECK 「数値からユーザー行動を読み解く! データ可視化のカギは、TableauとRの使い分け」 https://seleck.cc/article/286
• SELECK 「ビッグデータ分析を競い合え!世界中のデータサイエンティストが集う「Kaggle」とは」 https://seleck.cc/article/313
セミナー・トレーニンング
• 日経ビッグデータカンファレンス「世界最大級分析モデルコンペ Kaggleの最新動向」
• デブサミ2016 「人間と機械学習のはざま: どこまで機械に任せるのか」
• 大手コンサルティングファーム様社内トレーニング 「SQLを使ったデータ分析セミナー」
• 「文系ビジネスパーソンのための統計学入門講座」 など
Copyright Shiroyagi Corporation. All rights reserved.
講義を始める前に・・・
$pip install ipython
$pip install jupyter
$pip install numpy
$pip install scipy
$pip install pandas
$pip install scikit-learn
$pip install matplotlib
必要なライブラリは入っていますか?
入っていなければ、以下のコマンドで入れてください。
Copyright Shiroyagi Corporation. All rights reserved.
アジェンダ
1. ビジネス現場における機械学習
2. Pandasの最低限の使い方
3. 特徴量の作成
4. 特徴量の選択
5. 教師あり学習
6. モデル評価
Copyright Shiroyagi Corporation. All rights reserved.
不動産仲介企業の新サービスを立ち上げろ!
• あなたは不動産仲介会社のデータサイエンティストです
• 商品企画部長から新サービスとしてユーザーが販売物件のスペッ
クを入力すると予想成約価格が出力される自動査定サービスを検
討しており、背後のアルゴリズムを検討してほしいと相談されました
• あなたならどうやってアプローチしますか?
Copyright Shiroyagi Corporation. All rights reserved.
ビジネスにおけるデータ分析のステップ
データの
準備
データの
前処理
モデル作成
モデルの
評価
ビジネスゴールから分析のゴールへの翻訳
Copyright Shiroyagi Corporation. All rights reserved.
ビジネスにおけるデータ分析のステップ
データの
準備
データの
前処理
モデル作成
モデルの
評価
ビジネスゴールから分析のゴールへの翻訳
Copyright Shiroyagi Corporation. All rights reserved.
ビジネスゴールから分析のゴールへの翻訳
ここでのビジネスゴールは?(最終的に与えたいインパクト)
- ??
Copyright Shiroyagi Corporation. All rights reserved.
ビジネスゴールから分析のゴールへの翻訳
ここでのビジネスゴールは?(最終的に与えたいインパクト)
- 自動査定システムを通じた物件売却の相談件数
では、分析に求められる要件は?
- ??
Copyright Shiroyagi Corporation. All rights reserved.
ビジネスゴールから分析のゴールへの翻訳
ここでのビジネスゴールは?
- 自動査定システムを通じた物件売却の相談件数
では、分析に求められる要件は?
- できるだけわかりやすく・少ない入力(入力しやすい)項目で
- 精度の高い予測を行う
- レスポンスまでの時間は短く(瞬時に)
- 週に1回モデルの更新
などなど
Copyright Shiroyagi Corporation. All rights reserved.
データの準備
データの
準備
データの
前処理
モデル作成
モデルの
評価
ビジネスゴールから分析のゴールへの翻訳
Copyright Shiroyagi Corporation. All rights reserved.
講義ではできませんが・・・データの準備はとても重要
多くの場合、データセットは自分で作る必要があります。
どんなデータを用意するかはあなたの想像力・観察眼・仮説力にか
かっています。
原因になりそう
な変数1
原因になりそう
な変数2
原因になりそう
な変数N
・・・
住宅
価格
なにかしらの
関係性
(関数)
どんな要因で住宅価
格を説明できそうで
すか?
Copyright Shiroyagi Corporation. All rights reserved.
データは揃った!次はデータの前処理だ!
データの
準備
データの
前処理
モデル作成
モデルの
評価
ビジネスゴールから分析のゴールへの翻訳
Copyright Shiroyagi Corporation. All rights reserved.
データの前処理の流れ
データの
読み込み
要約統計量の
確認
分布の理解
特徴量の設計
欠損の確認
データ理解
Copyright Shiroyagi Corporation. All rights reserved.
実際にデータを見ていきましょう
データセットはここからダウンロードして使います。
https://www.kaggle.com/harlfoxem/housesalesprediction
Copyright Shiroyagi Corporation. All rights reserved.
まずは、iPython Notebookを起動しよう!
$ipython notebook
以下のコマンドプロンプトで以下のコマンドを打つと
Jupyter Notebookが起動します。
Copyright Shiroyagi Corporation. All rights reserved.
必要なライブラリをインポート
%matplotlib inline #グラフをインラインで表示させる
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot') # ggplot風のグラフ形式
まずは必要なライブラリをインポート & スタイルなどを指定します
ちなみに最初の”%matplotlib inline”がないとグラフがインラインで表示されません。
Copyright Shiroyagi Corporation. All rights reserved.
データの読み込み
#CSVの場合
dataset = pd.read_csv(“ファイル名”)
#TSVの場合
dataset = pd.read_csv(“ファイル名”, delimiter = ‘t’)
Copyright Shiroyagi Corporation. All rights reserved.
(参考)データベースからデータを抽出する
import pandas as pd
import pandas.io.sql as psql
import pymysql
con = pymysql.connect(host='XXX’,
port=3306,
user='user_id',
passwd='user_pass',
db='test',
charset='utf8',
use_unicode='true')
sql = “SELECT * FROM test_table”
data = psql.read_sql(con, sql)
MySQLであればpymysqlライブラリ(PostgreSQLであればpsycopg2ライブラリ)と
pandas.io.sqlを使えば、データベースからSQLを使ってデータを抽出することもできます。
Copyright Shiroyagi Corporation. All rights reserved.
データはこんな感じ
Copyright Shiroyagi Corporation. All rights reserved.
各カラムの定義
カラム名 定義
id いわゆるID
date 販売日
price 価格($)
bedrooms ベッドルームの数
bathrooms バスルームの数
sqft_living リビングルームの広さ
sqft_lot 駐車場の広さ
floors 階数
waterfront ウォーターフロントか (0,1)
view ビューの種類(0,1,2,3,4)
condition 状態(1,2,3,4,5)
grade グレード(1~13)
カラム名 定義
sqft_above 地上階の広さ
sqft_basement 地下の広さ
yr_built 建築年
yr_renovated リノベーションの年
zipcode 郵便番号
lat 緯度
long 経度
sqft_living15 近所15件の平均のリビングの広さ
sqft_lot15 近所15件の駐車場の広さ
Copyright Shiroyagi Corporation. All rights reserved.
Pandasならデータ理解が簡単にできます
データの
読み込み
要約統計量の
確認
分布の理解
特徴量の設計
欠損の確認
データ理解
Copyright Shiroyagi Corporation. All rights reserved.
pandasのすごいところ1: describe一発で要約統計量を出力!
dataset.describe()
Copyright Shiroyagi Corporation. All rights reserved.
pandasのすごいところ2: データの操作が簡単
本日カバーする操作
● 行の指定
● 列の指定
● カラム間の演算
● カラムに対する一括関数適用
● ダミー変数作成
● フィルタリング
※上記は最低限です
Copyright Shiroyagi Corporation. All rights reserved.
Pandas(+matplotlib)ならデータの分布の確認も簡単!
本日カバーするグラフ
● ヒストグラム
● 散布図
● 棒グラフ
● 箱ヒゲ図
※上記は最低限です
Copyright Shiroyagi Corporation. All rights reserved.
欠損のチェックは少し面倒くさいが、それでも簡単なほう
col_names = dataset.columns
for col_name in col_names:
missing_num = sum(pd.isnull(dataset[col_name]))
print col_name, "; # of missing record: ", missing_num
missing_check = dataset.copy()
missing_check = missing_check.apply(pd.isnull, axis = 1)
missing_check.apply(sum, axis = 0)
Copyright Shiroyagi Corporation. All rights reserved.
欠損値への対応
#0で補完
dataset.fillna(0, inplace = True)
#平均で補完
dataset.fillna(dataset.mean(), inplace = True)
#中央値で補完
dataset.fillna(dataset.median(), inplace = True)
補完する
dataset.dropna(inplace = True)
欠損があるレコードを削除する
Copyright Shiroyagi Corporation. All rights reserved.
特徴量の設計
データの
読み込み
要約統計量の
確認
分布の理解
特徴量の設計
欠損の確認
データ理解
Copyright Shiroyagi Corporation. All rights reserved.
「特徴量」とは??
人によっては
● 特徴量
● 素性
● 変数、説明変数
● フィーチャー
● カラム(いう人いるかな)
● パラメーター(いままでひとりだけ)
と呼びます。
要は、
「説明したい変数」(これも人によって、被説明変数、ターゲット変数など呼ばれます)を説明
するための要因です。
Copyright Shiroyagi Corporation. All rights reserved.
精度の高いモデルを作るためには特徴量作成は必須!
集めたデータをそのまま使って、高い精度を達成できるモデルを作れることは稀
よって当初集めたデータにある特徴量を組み合わせて、新しい特徴量を作っていく、これを
Feature Engineeringと呼びます。
例)
近所の物件と比較した相対的リビング広さ度 =
sqft_living / sqft_living15
みなさん、他にはどんな特徴量を作りたいですか?
Copyright Shiroyagi Corporation. All rights reserved.
いよいよモデリング
改めて今回の目的は
「住宅のスペックから予想成約価格を出力する」モデルを作る
機械学習の種類
● 教師あり学習
○ 回帰問題(Regression)(ターゲット変数が連続数値)
○ 分類問題(Classification)(ターゲット変数がフラグ/ラベル)
● 教師なし学習
Copyright Shiroyagi Corporation. All rights reserved.
今回試すアルゴリズム
● 回帰分析 (LinearRegression)
● 回帰木 (DecisionTreeRegressor)
● ランダムフォレスト
(RandomForestRegressor)
Copyright Shiroyagi Corporation. All rights reserved.
教師あり機械学習のアルゴリズムで最低限抑えるべきポイント
● どんなターゲット変数がとれるか?
○ 連続値?
○ フラグ?
● 目的関数: 何を最小化/最大化させるのか?
● 関数の形は何か?
● パラメータは何か?その役割は?
● 解釈可能性(interpretability)は?
● 予測可能性(Predictability)は?
特徴量1
特徴量M
・・・ ターゲット
変数関数
Copyright Shiroyagi Corporation. All rights reserved.
回帰分析
• ターゲット変数: 連続値
• 目的関数: 誤差の二乗の合計
• 関数の形: 2次元なら直線、3次元なら面(つまり線形)
X
Y
回帰直線
Y = a x + b
残差
Copyright Shiroyagi Corporation. All rights reserved.
小うるさいこと言うと
統計モデルとしての回帰分析の前提条件
• 誤差が平均0の正規分布に従う
• 誤差の分散が均一
• 誤差に系列相関がない
これらの前提条件が満たされない場合は、
回帰分析の推定結果は信頼できない
• 残差が平均0の正規分布に従う
• 残差の分散が均一
• 残差に系列相関がない
Copyright Shiroyagi Corporation. All rights reserved.
回帰木・・・の前に決定木とは
×
×
×
×
×
×
×
×
×
×
直
近
の
購
入
金
額
       前月の訪問数
あなたは会員制ECサービスのデータアナリストです。今、前月の訪問数と直近
の購入金額から当月の解約したか(解約=1,継続=0)のデータがあります。この
データから来月以降の解約を予測するモデルを作りたいと考えています
ID
前月の訪
問数
直近の
購入金額
当月の
解約
A9542K 15 2,000 0
G4344H 1 0 1
Y4352U 5 980 0
N4205J 11 1,200 0
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
C4325P 32 0 0
Copyright Shiroyagi Corporation. All rights reserved.
解約(x)と継続(o)をきれいに分ける
縦線と横線を1本引いてください
× ×
×
×
×
×
×
×
×
×
Copyright Shiroyagi Corporation. All rights reserved.
線を引っ張るとこんな感じかな
× ×
×
×
×
×
×
×
×
×
10回
1,200円
Copyright Shiroyagi Corporation. All rights reserved.
引いた線を文章で表現すると・・・
もし(If),前月の訪問数が10回以上
かつ
もし(If)直近3ヶ月の購入金額が1,200円以下だ
と(Then)
解約しやすい
こんな文章になります。
さて、これをツリー構造で表すと
× ×
×
×
×
×
×
×
×
×
10回
1,200円
Copyright Shiroyagi Corporation. All rights reserved.
IF~ Then~ のルールをツリー表現で表すと…これが決定木
40
Yes No
Yes No
10回以下
1,200円以下
解約しやすい 継続
1,200円
10回
Copyright Shiroyagi Corporation. All rights reserved.
決定木とは
● ターゲットの変数: フラグ
● 目的関数: 純度(ジニ係数)
● 関数の形: ツリー(縦線と横線)
ターゲットの変数が「連続数値」の場合が回帰木
なので、目的関数が
● 二乗誤差
● 関数の形:ツリー
Copyright Shiroyagi Corporation. All rights reserved.
ランダムフォレスト
ID 購入 性別 年齢 …
3 あり 女性 31 …
6 なし 男性 24 …
: : : :
ID 購入 性別 年齢 …
1 あり 男性 35 …
2 なし 男性 28 …
5 なし 女性 42 …
5 なし 女性 42 …
: : : :
ランダムフォレストとは機械学習のアルゴリズムの一つであり、複数の決定木を用
いて予測を行う
ID 購入 性別 年齢 …
1 あり 男性 35 …
2 なし 男性 28 …
3 なし 女性 31 …
4 あり 男性 26 …
5 なし 女性 42 …
6 なし 男性 24 …
: : : :
: : : :
: : : :
OOB(Out-of-bag)
列もサンプリング
重複を許して
サンプリング
学習データ
サンプリング
されなかった
データ
決定木
を生成
この一連の流れを繰り返し、多
くの決定木を生成、つまり木が
たくさんある=森を作る
Copyright Shiroyagi Corporation. All rights reserved.
ランダムフォレスト
…
ID 購入 性別 年齢 …
101 ? 男性 42
102 ? 女性 36
103 ? 女性 27
: : : :
 あり   あり   なし       あり   なし   あり
多数決でID.101は
「購入あり」と予測
様々なルールを持つ決定木を用いて、それぞれで予測を行う
生成した決定木
入力すると
回帰の場合は各回帰木の出力の平均が予測結果となる
Copyright Shiroyagi Corporation. All rights reserved.
ランダムフォレストの主なパラメーター
● 木の数(n_estimator)
● 使用する列の個数(max_features)
● 最大の木の深さ(max_depth)
などなど
Copyright Shiroyagi Corporation. All rights reserved.
ではここで問題です
一般的に言って、一番精度が良いモデルはどれだと思いますか?
● 回帰分析
● 決定木(回帰木)
● ランダムフォレスト
Copyright Shiroyagi Corporation. All rights reserved.
良い精度のモデルを得るためにやること
● アルゴリズムの選択
● 変数選択(Feature Selection)
○ 説明力の弱い特徴量を落とす
○ 説明力の高い特徴量を加える
● パラメーターのチューニング
○ モデルの柔軟度の調整
Copyright Shiroyagi Corporation. All rights reserved.
変数選択のアプローチ
● 変数増加法
○ 一番説明力の高い特徴量から初めて、説明力の高い順番で逐次的に加えてい
く方法
● 変数減少法
○ 考えられる特徴量を全て投入して、説明力の弱い特徴量を切っていく方法
● 変数増減法
○ 上記の2つを組み合わせた方法
Copyright Shiroyagi Corporation. All rights reserved.
パラメーターのチューニング:
オーバーフィッティングを避けるためにパラメータを調整
モデルの柔軟性
低                             高
エラー
検証用データにおけるエラー
学習データにおけるエラー
Copyright Shiroyagi Corporation. All rights reserved.
パラメータのチューニングの方法
● グリッドサーチ
○ 与えたパラメーターの候補を総当たりで検証する
例: ランダムフォレスト
● 木の数
○ 10
○ 50
○ 100
● 最大の木の深さ
○ 5
○ 10
○ 20
木の数 最大の木の深さ
10 5
50 5
100 5
10 10
50 10
100 10
10 20
50 20
100 20
Copyright Shiroyagi Corporation. All rights reserved.
変数選択とパラメータチューニングのステップ
データ
全体
学習用
データ
テスト
データ
最終的なモデル評価
学習用
データ1
学習用
データ
2
変数選択
・・・・
クロスバリデーションによるパラメーターチューニング
最適な
パラメータを
決定
Copyright Shiroyagi Corporation. All rights reserved.
モデルの精度をどのように評価するか?
モデルの評価指標はいろいろある。
しかし、どの評価指標を使えば良いか?
この質問の答えるには、そもそもの分析のゴールにたち戻る必要が
ある。
まずターゲット変数が連続値かフラグかによって異なる。
● 連続値の場合
○ RMSE, MSE, MAE...
● フラグ
○ Accuracy , Precision, Recall, F-score...
Copyright Shiroyagi Corporation. All rights reserved.
Mean Squared ErrorとMean Absolute Errorどちらが良い?
誤差 誤差
+- +-
罰の強さ 罰の強さ
Mean Squared Error
(平均二乗誤差)
Mean Absolute Error
(平均絶対誤差)
Copyright Shiroyagi Corporation. All rights reserved.
実際にやってみましょう
必要なライブラリをインポートしてください。
from sklearn.linear_model import LinearRegression #線形回帰モデル
from sklearn.tree import DecisionTreeRegressor # 回帰木
from sklearn.ensemble import RandomForestRegressor #ランダムフォレスト
from sklearn.grid_search import GridSearchCV #グリッドサーチ
from sklearn.cross_validation import train_test_split #学習データとテストデータ分割
from sklearn.metrics import mean_squared_error #評価指標: MSE

Más contenido relacionado

La actualidad más candente

データサイエンティストの仕事とデータ分析コンテスト
データサイエンティストの仕事とデータ分析コンテストデータサイエンティストの仕事とデータ分析コンテスト
データサイエンティストの仕事とデータ分析コンテストKen'ichi Matsui
 
モデルベース要件定義 at BPStudy
モデルベース要件定義 at BPStudyモデルベース要件定義 at BPStudy
モデルベース要件定義 at BPStudyZenji Kanzaki
 
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだことnishio
 
次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習sesejun
 
時系列データ分析
時系列データ分析時系列データ分析
時系列データ分析graySpace999
 
Azure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームAzure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームKeita Onabuta
 
金融情報における時系列分析
金融情報における時系列分析金融情報における時系列分析
金融情報における時系列分析Fujio Toriumi
 
「品質ダッシュボード」と「データによる意思決定」
「品質ダッシュボード」と「データによる意思決定」「品質ダッシュボード」と「データによる意思決定」
「品質ダッシュボード」と「データによる意思決定」Kohei Tomita
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)Yoshitaka Kawashima
 
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみたRust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた虎の穴 開発室
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...西岡 賢一郎
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)Shuyo Nakatani
 
大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらとToshinori Sato
 
WBICによる混合正規分布の分離と抽出
WBICによる混合正規分布の分離と抽出WBICによる混合正規分布の分離と抽出
WBICによる混合正規分布の分離と抽出Yusuke TAMAI
 
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割Ichigaku Takigawa
 
Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定
Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定
Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定Katsuya Ito
 
Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介西岡 賢一郎
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]DeNA
 
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...Deep Learning JP
 

La actualidad más candente (20)

データサイエンティストの仕事とデータ分析コンテスト
データサイエンティストの仕事とデータ分析コンテストデータサイエンティストの仕事とデータ分析コンテスト
データサイエンティストの仕事とデータ分析コンテスト
 
モデルベース要件定義 at BPStudy
モデルベース要件定義 at BPStudyモデルベース要件定義 at BPStudy
モデルベース要件定義 at BPStudy
 
実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと実践多クラス分類 Kaggle Ottoから学んだこと
実践多クラス分類 Kaggle Ottoから学んだこと
 
次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習次世代シーケンサが求める機械学習
次世代シーケンサが求める機械学習
 
時系列データ分析
時系列データ分析時系列データ分析
時系列データ分析
 
Azure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォームAzure machine learning service 最新の機械学習プラットフォーム
Azure machine learning service 最新の機械学習プラットフォーム
 
金融情報における時系列分析
金融情報における時系列分析金融情報における時系列分析
金融情報における時系列分析
 
「品質ダッシュボード」と「データによる意思決定」
「品質ダッシュボード」と「データによる意思決定」「品質ダッシュボード」と「データによる意思決定」
「品質ダッシュボード」と「データによる意思決定」
 
イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)イミュータブルデータモデル(世代編)
イミュータブルデータモデル(世代編)
 
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみたRust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
Rust製の全文検索エンジンライブラリ(tantivy bayard)を試してみた
 
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
ブラックボックスからXAI (説明可能なAI) へ - LIME (Local Interpretable Model-agnostic Explanat...
 
無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)無限関係モデル (続・わかりやすいパターン認識 13章)
無限関係モデル (続・わかりやすいパターン認識 13章)
 
大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと大学3年生の僕に伝えたいことをつらつらと
大学3年生の僕に伝えたいことをつらつらと
 
WBICによる混合正規分布の分離と抽出
WBICによる混合正規分布の分離と抽出WBICによる混合正規分布の分離と抽出
WBICによる混合正規分布の分離と抽出
 
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
 
Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定
Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定
Dynamic Time Warping を用いた高頻度取引データのLead-Lag 効果の推定
 
Tesseract ocr
Tesseract ocrTesseract ocr
Tesseract ocr
 
Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介Amazon SageMaker ML Governance 3つの機能紹介
Amazon SageMaker ML Governance 3つの機能紹介
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
 
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
【DL輪読会】Scale Efficiently: Insights from Pre-training and Fine-tuning Transfor...
 

Destacado

160924 Deep Learning Tuningathon
160924 Deep Learning Tuningathon160924 Deep Learning Tuningathon
160924 Deep Learning TuningathonTakanori Ogata
 
時系列データ分析とPython
時系列データ分析とPython時系列データ分析とPython
時系列データ分析とPythonHirofumi Tsuruta
 
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会Yoshiki Hayama
 
主成分分析 (pca)
主成分分析 (pca)主成分分析 (pca)
主成分分析 (pca)Ji Wang
 
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjpShinichi Nakagawa
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践Preferred Networks
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京Koichi Hamada
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話Ryota Kamoshida
 

Destacado (9)

160924 Deep Learning Tuningathon
160924 Deep Learning Tuningathon160924 Deep Learning Tuningathon
160924 Deep Learning Tuningathon
 
時系列データ分析とPython
時系列データ分析とPython時系列データ分析とPython
時系列データ分析とPython
 
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
Watsonに、俺の推しアイドルがかわいいと、わかってほしかった:2017年12月3日 IBM Cloud (Bluemix) 冬の大勉強会
 
主成分分析 (pca)
主成分分析 (pca)主成分分析 (pca)
主成分分析 (pca)
 
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 

Similar a Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう

Tokyo webmining発表資料 20111127
Tokyo webmining発表資料 20111127Tokyo webmining発表資料 20111127
Tokyo webmining発表資料 20111127kan_yukiko
 
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探るTakashi J OZAKI
 
de:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返り
de:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返りde:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返り
de:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返りDaiyu Hatakeyama
 
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方Hisahiko Shiraishi
 
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント伸夫 森本
 
【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成
【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成
【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成webcampusschoo
 
Yasuhiko Tokunaga DevRel_meetup_201703
Yasuhiko Tokunaga DevRel_meetup_201703Yasuhiko Tokunaga DevRel_meetup_201703
Yasuhiko Tokunaga DevRel_meetup_201703Stripe
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介JubatusOfficial
 
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐Rakuten Group, Inc.
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8Shunsuke Nakamura
 
KUROKO IR説明資料
KUROKO IR説明資料KUROKO IR説明資料
KUROKO IR説明資料RelianceData
 
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2OWL.learn
 
Akira shibata at developer summit 2016
Akira shibata at developer summit 2016Akira shibata at developer summit 2016
Akira shibata at developer summit 2016Akira Shibata
 
[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』
[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』
[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』Insight Technology, Inc.
 
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014Koichi Hamada
 
第26回 萩本匠道場
第26回 萩本匠道場第26回 萩本匠道場
第26回 萩本匠道場Hagimoto Junzo
 
ビックデータとシリコンバレースタートアップ事情
ビックデータとシリコンバレースタートアップ事情ビックデータとシリコンバレースタートアップ事情
ビックデータとシリコンバレースタートアップ事情Osaka University
 
データ流通市場から見た研究データへの期待
データ流通市場から見た研究データへの期待データ流通市場から見た研究データへの期待
データ流通市場から見た研究データへの期待Japan Data Exchange
 

Similar a Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう (20)

Tokyo webmining発表資料 20111127
Tokyo webmining発表資料 20111127Tokyo webmining発表資料 20111127
Tokyo webmining発表資料 20111127
 
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
 
de:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返り
de:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返りde:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返り
de:code 2019 振り返り Night! Sponsored by Qiita - AI Track 振り返り
 
TechTarget新サービス
TechTarget新サービスTechTarget新サービス
TechTarget新サービス
 
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
ゲーム事業×データ分析 ドリコムにおける組織と仕事の組み立て方
 
Dyna traceによるuxマネジメント
Dyna traceによるuxマネジメントDyna traceによるuxマネジメント
Dyna traceによるuxマネジメント
 
【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成
【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成
【schoo WEB-campus】#49業務改善のためのデータサイエンス 先生:倉橋一成
 
Yasuhiko Tokunaga DevRel_meetup_201703
Yasuhiko Tokunaga DevRel_meetup_201703Yasuhiko Tokunaga DevRel_meetup_201703
Yasuhiko Tokunaga DevRel_meetup_201703
 
jubarecommenderの紹介
jubarecommenderの紹介jubarecommenderの紹介
jubarecommenderの紹介
 
オープンソースで開くビッグデータの扉
オープンソースで開くビッグデータの扉オープンソースで開くビッグデータの扉
オープンソースで開くビッグデータの扉
 
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
E-commerce企業におけるビッグデータへの挑戦と課題‐機械学習への期待について‐
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V8
 
KUROKO IR説明資料
KUROKO IR説明資料KUROKO IR説明資料
KUROKO IR説明資料
 
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
 
Akira shibata at developer summit 2016
Akira shibata at developer summit 2016Akira shibata at developer summit 2016
Akira shibata at developer summit 2016
 
[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』
[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』
[db tech showcase Tokyo 2018] #dbts2018 #D23 『機械学習の自動化を実現するDataRobotによるAIの民主化とは』
 
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
『MobageのAnalytics活用したサービス開発』 - データマイニングCROSS2014 #CROSS2014
 
第26回 萩本匠道場
第26回 萩本匠道場第26回 萩本匠道場
第26回 萩本匠道場
 
ビックデータとシリコンバレースタートアップ事情
ビックデータとシリコンバレースタートアップ事情ビックデータとシリコンバレースタートアップ事情
ビックデータとシリコンバレースタートアップ事情
 
データ流通市場から見た研究データへの期待
データ流通市場から見た研究データへの期待データ流通市場から見た研究データへの期待
データ流通市場から見た研究データへの期待
 

Pythonで動かして学ぶ機械学習入門_予測モデルを作ってみよう

  • 2. Copyright Shiroyagi Corporation. All rights reserved. 自己紹介 堅田 洋資 (データサイエンティスト@白ヤギコーポレーション ) 日本では数少ない米国大学のデータサイエンス修士号を保有。 白ヤギコーポレーションにて、社内のデータはもちろんクライアントのデータ分析を 支援するコンサルタントとして活躍。 これまで機械学習を用いたレコメンデーション、アプリユーザーの行動分析や機械 学習を用いたプッシュ通知の最適化、交通系IoTのデータ分析などを担当。 白ヤギコーポレーション参画前は、監査法人トーマツにてデータ分析コンサルタン ト、生体センサスタートアップでサービス・アルゴリズム開発の取締役、KPMG FAS にて事業再生コンサルタント、外資系メーカーでの経理・マーケティングなど幅広い 経験を持つ。 学歴 ● University of San Francisco, M.S. in Analytics修了 ● 一橋大学商学部卒業(統計学・データサイエンス専攻) メディア実績 • 日経ビッグデータWeb版パートナーレポート「成功するアナリティクス案件の選択とは http://business.nikkeibp.co.jp/article/bigdata/20141021/272866/ • SELECK 「数値からユーザー行動を読み解く! データ可視化のカギは、TableauとRの使い分け」 https://seleck.cc/article/286 • SELECK 「ビッグデータ分析を競い合え!世界中のデータサイエンティストが集う「Kaggle」とは」 https://seleck.cc/article/313 セミナー・トレーニンング • 日経ビッグデータカンファレンス「世界最大級分析モデルコンペ Kaggleの最新動向」 • デブサミ2016 「人間と機械学習のはざま: どこまで機械に任せるのか」 • 大手コンサルティングファーム様社内トレーニング 「SQLを使ったデータ分析セミナー」 • 「文系ビジネスパーソンのための統計学入門講座」 など
  • 3. Copyright Shiroyagi Corporation. All rights reserved. 講義を始める前に・・・ $pip install ipython $pip install jupyter $pip install numpy $pip install scipy $pip install pandas $pip install scikit-learn $pip install matplotlib 必要なライブラリは入っていますか? 入っていなければ、以下のコマンドで入れてください。
  • 4. Copyright Shiroyagi Corporation. All rights reserved. アジェンダ 1. ビジネス現場における機械学習 2. Pandasの最低限の使い方 3. 特徴量の作成 4. 特徴量の選択 5. 教師あり学習 6. モデル評価
  • 5. Copyright Shiroyagi Corporation. All rights reserved. 不動産仲介企業の新サービスを立ち上げろ! • あなたは不動産仲介会社のデータサイエンティストです • 商品企画部長から新サービスとしてユーザーが販売物件のスペッ クを入力すると予想成約価格が出力される自動査定サービスを検 討しており、背後のアルゴリズムを検討してほしいと相談されました • あなたならどうやってアプローチしますか?
  • 6. Copyright Shiroyagi Corporation. All rights reserved. ビジネスにおけるデータ分析のステップ データの 準備 データの 前処理 モデル作成 モデルの 評価 ビジネスゴールから分析のゴールへの翻訳
  • 7. Copyright Shiroyagi Corporation. All rights reserved. ビジネスにおけるデータ分析のステップ データの 準備 データの 前処理 モデル作成 モデルの 評価 ビジネスゴールから分析のゴールへの翻訳
  • 8. Copyright Shiroyagi Corporation. All rights reserved. ビジネスゴールから分析のゴールへの翻訳 ここでのビジネスゴールは?(最終的に与えたいインパクト) - ??
  • 9. Copyright Shiroyagi Corporation. All rights reserved. ビジネスゴールから分析のゴールへの翻訳 ここでのビジネスゴールは?(最終的に与えたいインパクト) - 自動査定システムを通じた物件売却の相談件数 では、分析に求められる要件は? - ??
  • 10. Copyright Shiroyagi Corporation. All rights reserved. ビジネスゴールから分析のゴールへの翻訳 ここでのビジネスゴールは? - 自動査定システムを通じた物件売却の相談件数 では、分析に求められる要件は? - できるだけわかりやすく・少ない入力(入力しやすい)項目で - 精度の高い予測を行う - レスポンスまでの時間は短く(瞬時に) - 週に1回モデルの更新 などなど
  • 11. Copyright Shiroyagi Corporation. All rights reserved. データの準備 データの 準備 データの 前処理 モデル作成 モデルの 評価 ビジネスゴールから分析のゴールへの翻訳
  • 12. Copyright Shiroyagi Corporation. All rights reserved. 講義ではできませんが・・・データの準備はとても重要 多くの場合、データセットは自分で作る必要があります。 どんなデータを用意するかはあなたの想像力・観察眼・仮説力にか かっています。 原因になりそう な変数1 原因になりそう な変数2 原因になりそう な変数N ・・・ 住宅 価格 なにかしらの 関係性 (関数) どんな要因で住宅価 格を説明できそうで すか?
  • 13. Copyright Shiroyagi Corporation. All rights reserved. データは揃った!次はデータの前処理だ! データの 準備 データの 前処理 モデル作成 モデルの 評価 ビジネスゴールから分析のゴールへの翻訳
  • 14. Copyright Shiroyagi Corporation. All rights reserved. データの前処理の流れ データの 読み込み 要約統計量の 確認 分布の理解 特徴量の設計 欠損の確認 データ理解
  • 15. Copyright Shiroyagi Corporation. All rights reserved. 実際にデータを見ていきましょう データセットはここからダウンロードして使います。 https://www.kaggle.com/harlfoxem/housesalesprediction
  • 16. Copyright Shiroyagi Corporation. All rights reserved. まずは、iPython Notebookを起動しよう! $ipython notebook 以下のコマンドプロンプトで以下のコマンドを打つと Jupyter Notebookが起動します。
  • 17. Copyright Shiroyagi Corporation. All rights reserved. 必要なライブラリをインポート %matplotlib inline #グラフをインラインで表示させる import pandas as pd import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.style.use('ggplot') # ggplot風のグラフ形式 まずは必要なライブラリをインポート & スタイルなどを指定します ちなみに最初の”%matplotlib inline”がないとグラフがインラインで表示されません。
  • 18. Copyright Shiroyagi Corporation. All rights reserved. データの読み込み #CSVの場合 dataset = pd.read_csv(“ファイル名”) #TSVの場合 dataset = pd.read_csv(“ファイル名”, delimiter = ‘t’)
  • 19. Copyright Shiroyagi Corporation. All rights reserved. (参考)データベースからデータを抽出する import pandas as pd import pandas.io.sql as psql import pymysql con = pymysql.connect(host='XXX’, port=3306, user='user_id', passwd='user_pass', db='test', charset='utf8', use_unicode='true') sql = “SELECT * FROM test_table” data = psql.read_sql(con, sql) MySQLであればpymysqlライブラリ(PostgreSQLであればpsycopg2ライブラリ)と pandas.io.sqlを使えば、データベースからSQLを使ってデータを抽出することもできます。
  • 20. Copyright Shiroyagi Corporation. All rights reserved. データはこんな感じ
  • 21. Copyright Shiroyagi Corporation. All rights reserved. 各カラムの定義 カラム名 定義 id いわゆるID date 販売日 price 価格($) bedrooms ベッドルームの数 bathrooms バスルームの数 sqft_living リビングルームの広さ sqft_lot 駐車場の広さ floors 階数 waterfront ウォーターフロントか (0,1) view ビューの種類(0,1,2,3,4) condition 状態(1,2,3,4,5) grade グレード(1~13) カラム名 定義 sqft_above 地上階の広さ sqft_basement 地下の広さ yr_built 建築年 yr_renovated リノベーションの年 zipcode 郵便番号 lat 緯度 long 経度 sqft_living15 近所15件の平均のリビングの広さ sqft_lot15 近所15件の駐車場の広さ
  • 22. Copyright Shiroyagi Corporation. All rights reserved. Pandasならデータ理解が簡単にできます データの 読み込み 要約統計量の 確認 分布の理解 特徴量の設計 欠損の確認 データ理解
  • 23. Copyright Shiroyagi Corporation. All rights reserved. pandasのすごいところ1: describe一発で要約統計量を出力! dataset.describe()
  • 24. Copyright Shiroyagi Corporation. All rights reserved. pandasのすごいところ2: データの操作が簡単 本日カバーする操作 ● 行の指定 ● 列の指定 ● カラム間の演算 ● カラムに対する一括関数適用 ● ダミー変数作成 ● フィルタリング ※上記は最低限です
  • 25. Copyright Shiroyagi Corporation. All rights reserved. Pandas(+matplotlib)ならデータの分布の確認も簡単! 本日カバーするグラフ ● ヒストグラム ● 散布図 ● 棒グラフ ● 箱ヒゲ図 ※上記は最低限です
  • 26. Copyright Shiroyagi Corporation. All rights reserved. 欠損のチェックは少し面倒くさいが、それでも簡単なほう col_names = dataset.columns for col_name in col_names: missing_num = sum(pd.isnull(dataset[col_name])) print col_name, "; # of missing record: ", missing_num missing_check = dataset.copy() missing_check = missing_check.apply(pd.isnull, axis = 1) missing_check.apply(sum, axis = 0)
  • 27. Copyright Shiroyagi Corporation. All rights reserved. 欠損値への対応 #0で補完 dataset.fillna(0, inplace = True) #平均で補完 dataset.fillna(dataset.mean(), inplace = True) #中央値で補完 dataset.fillna(dataset.median(), inplace = True) 補完する dataset.dropna(inplace = True) 欠損があるレコードを削除する
  • 28. Copyright Shiroyagi Corporation. All rights reserved. 特徴量の設計 データの 読み込み 要約統計量の 確認 分布の理解 特徴量の設計 欠損の確認 データ理解
  • 29. Copyright Shiroyagi Corporation. All rights reserved. 「特徴量」とは?? 人によっては ● 特徴量 ● 素性 ● 変数、説明変数 ● フィーチャー ● カラム(いう人いるかな) ● パラメーター(いままでひとりだけ) と呼びます。 要は、 「説明したい変数」(これも人によって、被説明変数、ターゲット変数など呼ばれます)を説明 するための要因です。
  • 30. Copyright Shiroyagi Corporation. All rights reserved. 精度の高いモデルを作るためには特徴量作成は必須! 集めたデータをそのまま使って、高い精度を達成できるモデルを作れることは稀 よって当初集めたデータにある特徴量を組み合わせて、新しい特徴量を作っていく、これを Feature Engineeringと呼びます。 例) 近所の物件と比較した相対的リビング広さ度 = sqft_living / sqft_living15 みなさん、他にはどんな特徴量を作りたいですか?
  • 31. Copyright Shiroyagi Corporation. All rights reserved. いよいよモデリング 改めて今回の目的は 「住宅のスペックから予想成約価格を出力する」モデルを作る 機械学習の種類 ● 教師あり学習 ○ 回帰問題(Regression)(ターゲット変数が連続数値) ○ 分類問題(Classification)(ターゲット変数がフラグ/ラベル) ● 教師なし学習
  • 32. Copyright Shiroyagi Corporation. All rights reserved. 今回試すアルゴリズム ● 回帰分析 (LinearRegression) ● 回帰木 (DecisionTreeRegressor) ● ランダムフォレスト (RandomForestRegressor)
  • 33. Copyright Shiroyagi Corporation. All rights reserved. 教師あり機械学習のアルゴリズムで最低限抑えるべきポイント ● どんなターゲット変数がとれるか? ○ 連続値? ○ フラグ? ● 目的関数: 何を最小化/最大化させるのか? ● 関数の形は何か? ● パラメータは何か?その役割は? ● 解釈可能性(interpretability)は? ● 予測可能性(Predictability)は? 特徴量1 特徴量M ・・・ ターゲット 変数関数
  • 34. Copyright Shiroyagi Corporation. All rights reserved. 回帰分析 • ターゲット変数: 連続値 • 目的関数: 誤差の二乗の合計 • 関数の形: 2次元なら直線、3次元なら面(つまり線形) X Y 回帰直線 Y = a x + b 残差
  • 35. Copyright Shiroyagi Corporation. All rights reserved. 小うるさいこと言うと 統計モデルとしての回帰分析の前提条件 • 誤差が平均0の正規分布に従う • 誤差の分散が均一 • 誤差に系列相関がない これらの前提条件が満たされない場合は、 回帰分析の推定結果は信頼できない • 残差が平均0の正規分布に従う • 残差の分散が均一 • 残差に系列相関がない
  • 36. Copyright Shiroyagi Corporation. All rights reserved. 回帰木・・・の前に決定木とは × × × × × × × × × × 直 近 の 購 入 金 額        前月の訪問数 あなたは会員制ECサービスのデータアナリストです。今、前月の訪問数と直近 の購入金額から当月の解約したか(解約=1,継続=0)のデータがあります。この データから来月以降の解約を予測するモデルを作りたいと考えています ID 前月の訪 問数 直近の 購入金額 当月の 解約 A9542K 15 2,000 0 G4344H 1 0 1 Y4352U 5 980 0 N4205J 11 1,200 0 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ C4325P 32 0 0
  • 37. Copyright Shiroyagi Corporation. All rights reserved. 解約(x)と継続(o)をきれいに分ける 縦線と横線を1本引いてください × × × × × × × × × ×
  • 38. Copyright Shiroyagi Corporation. All rights reserved. 線を引っ張るとこんな感じかな × × × × × × × × × × 10回 1,200円
  • 39. Copyright Shiroyagi Corporation. All rights reserved. 引いた線を文章で表現すると・・・ もし(If),前月の訪問数が10回以上 かつ もし(If)直近3ヶ月の購入金額が1,200円以下だ と(Then) 解約しやすい こんな文章になります。 さて、これをツリー構造で表すと × × × × × × × × × × 10回 1,200円
  • 40. Copyright Shiroyagi Corporation. All rights reserved. IF~ Then~ のルールをツリー表現で表すと…これが決定木 40 Yes No Yes No 10回以下 1,200円以下 解約しやすい 継続 1,200円 10回
  • 41. Copyright Shiroyagi Corporation. All rights reserved. 決定木とは ● ターゲットの変数: フラグ ● 目的関数: 純度(ジニ係数) ● 関数の形: ツリー(縦線と横線) ターゲットの変数が「連続数値」の場合が回帰木 なので、目的関数が ● 二乗誤差 ● 関数の形:ツリー
  • 42. Copyright Shiroyagi Corporation. All rights reserved. ランダムフォレスト ID 購入 性別 年齢 … 3 あり 女性 31 … 6 なし 男性 24 … : : : : ID 購入 性別 年齢 … 1 あり 男性 35 … 2 なし 男性 28 … 5 なし 女性 42 … 5 なし 女性 42 … : : : : ランダムフォレストとは機械学習のアルゴリズムの一つであり、複数の決定木を用 いて予測を行う ID 購入 性別 年齢 … 1 あり 男性 35 … 2 なし 男性 28 … 3 なし 女性 31 … 4 あり 男性 26 … 5 なし 女性 42 … 6 なし 男性 24 … : : : : : : : : : : : : OOB(Out-of-bag) 列もサンプリング 重複を許して サンプリング 学習データ サンプリング されなかった データ 決定木 を生成 この一連の流れを繰り返し、多 くの決定木を生成、つまり木が たくさんある=森を作る
  • 43. Copyright Shiroyagi Corporation. All rights reserved. ランダムフォレスト … ID 購入 性別 年齢 … 101 ? 男性 42 102 ? 女性 36 103 ? 女性 27 : : : :  あり   あり   なし       あり   なし   あり 多数決でID.101は 「購入あり」と予測 様々なルールを持つ決定木を用いて、それぞれで予測を行う 生成した決定木 入力すると 回帰の場合は各回帰木の出力の平均が予測結果となる
  • 44. Copyright Shiroyagi Corporation. All rights reserved. ランダムフォレストの主なパラメーター ● 木の数(n_estimator) ● 使用する列の個数(max_features) ● 最大の木の深さ(max_depth) などなど
  • 45. Copyright Shiroyagi Corporation. All rights reserved. ではここで問題です 一般的に言って、一番精度が良いモデルはどれだと思いますか? ● 回帰分析 ● 決定木(回帰木) ● ランダムフォレスト
  • 46. Copyright Shiroyagi Corporation. All rights reserved. 良い精度のモデルを得るためにやること ● アルゴリズムの選択 ● 変数選択(Feature Selection) ○ 説明力の弱い特徴量を落とす ○ 説明力の高い特徴量を加える ● パラメーターのチューニング ○ モデルの柔軟度の調整
  • 47. Copyright Shiroyagi Corporation. All rights reserved. 変数選択のアプローチ ● 変数増加法 ○ 一番説明力の高い特徴量から初めて、説明力の高い順番で逐次的に加えてい く方法 ● 変数減少法 ○ 考えられる特徴量を全て投入して、説明力の弱い特徴量を切っていく方法 ● 変数増減法 ○ 上記の2つを組み合わせた方法
  • 48. Copyright Shiroyagi Corporation. All rights reserved. パラメーターのチューニング: オーバーフィッティングを避けるためにパラメータを調整 モデルの柔軟性 低                             高 エラー 検証用データにおけるエラー 学習データにおけるエラー
  • 49. Copyright Shiroyagi Corporation. All rights reserved. パラメータのチューニングの方法 ● グリッドサーチ ○ 与えたパラメーターの候補を総当たりで検証する 例: ランダムフォレスト ● 木の数 ○ 10 ○ 50 ○ 100 ● 最大の木の深さ ○ 5 ○ 10 ○ 20 木の数 最大の木の深さ 10 5 50 5 100 5 10 10 50 10 100 10 10 20 50 20 100 20
  • 50. Copyright Shiroyagi Corporation. All rights reserved. 変数選択とパラメータチューニングのステップ データ 全体 学習用 データ テスト データ 最終的なモデル評価 学習用 データ1 学習用 データ 2 変数選択 ・・・・ クロスバリデーションによるパラメーターチューニング 最適な パラメータを 決定
  • 51. Copyright Shiroyagi Corporation. All rights reserved. モデルの精度をどのように評価するか? モデルの評価指標はいろいろある。 しかし、どの評価指標を使えば良いか? この質問の答えるには、そもそもの分析のゴールにたち戻る必要が ある。 まずターゲット変数が連続値かフラグかによって異なる。 ● 連続値の場合 ○ RMSE, MSE, MAE... ● フラグ ○ Accuracy , Precision, Recall, F-score...
  • 52. Copyright Shiroyagi Corporation. All rights reserved. Mean Squared ErrorとMean Absolute Errorどちらが良い? 誤差 誤差 +- +- 罰の強さ 罰の強さ Mean Squared Error (平均二乗誤差) Mean Absolute Error (平均絶対誤差)
  • 53. Copyright Shiroyagi Corporation. All rights reserved. 実際にやってみましょう 必要なライブラリをインポートしてください。 from sklearn.linear_model import LinearRegression #線形回帰モデル from sklearn.tree import DecisionTreeRegressor # 回帰木 from sklearn.ensemble import RandomForestRegressor #ランダムフォレスト from sklearn.grid_search import GridSearchCV #グリッドサーチ from sklearn.cross_validation import train_test_split #学習データとテストデータ分割 from sklearn.metrics import mean_squared_error #評価指標: MSE