データサイエンス講義 3章「アルゴリズム」
データサイエンス講義の第3章について。
※数式は、Texでも記述できるらしいが、まだブログ上での記載方法が分からないので、ひとまずプレーンテキストにて記述。
- 作者: Rachel Schutt,Cathy O'Neil,瀬戸山雅人,石井弓美子,河内崇,河内真理子,古畠敦,木下哲也,竹田正和,佐藤正士,望月啓充
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/10/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
アルゴリズム:タスクを達成するための手続き、手順、ルールの集合
ベストなアルゴリズム:効率が良い、計算時間が短いetc.
データサイエンスに関して、知っておくべきアルゴリズム3つ。
1.データ変更、準備、処理のアルゴリズム
- ソートやMapReduce、Pregal etc.
2.パラメータを推定する最適化アルゴリズム
- 確率的勾配降下法、ニュートン法、最小二乗法etc.
3.機械学習アルゴリズム
用途:予測、分類、クラスタリング
■生み出された分野
統計モデリング:統計の分野
機械学習アルゴリズム:計算機科学
■設計思想
統計モデリング:事象の根底にある生成するプロセスを推論するよう設計
機械学習アルゴリズム:予測や分類精度が最も高くなるよう設計
■パラメータの解釈
統計モデリング:パラメータに対応する現実世界の減少や行動を説明できるようにしたい。
機械学習アルゴリズム:注力しない(つまり、ブラックボックス)。予測力を最適化することが目的のため。
■信頼区間
統計モデリング:パラメータ/推定量に対し、信頼区間と事後分布を計算し、変動性や不確実性を取り込むことに注力。
機械学習アルゴリズム:そのような概念はない。
3.2 3つの基本アルゴリズム
データで解決できる問題の多くは、数学的には分類問題や予測問題として扱うことが可能。
データサイエンティストの最も難しいこと;現実の問題から適切な方式を選ぶこと。
3.2.1 線形回帰
2つの変数、属性間の数学的関係を示したい時に利用。
※特に、どのような変数が明らかになっている場合に利用すると効果有。
結果変数(従属変数)、予測変数(説明変数)の間に線形関係を仮定。
モデルへ取り込みたい内容:傾向と変動
■傾向
線形回帰は決定論的であり、以下の数式によって、表現。
Y =β0 + β1 * X
Y:結果変数、X:予測変数
目的:最適な直線を探し当てること
最適な直線:予測と結果の差(残差平方和)が最も小さくなる直線
残差平方和(RSS(β)):Σ{(Y予(i) - Y(i))^2}
RSS(β):ある組み合わせβにおける残差平方和
Y予(i):データi番目の予測結果
Y(i):データi番目のY
2乗するのは、符号問題をなくすため。
「差」と書いているが、実際は予測データと実データの「距離」という言い方が良い。
■変動
傾向だけ分かったとしても、実際には同じ入力データに対して、結果にバラつきがある。
そこで、以下の数式のように誤差項を導入。
Y =β0 + β1 * X + ε
ε:誤差項
モデリングする際、誤差項は「○○分布に従う」という前提をおくのが定石。
特に、正規分布(平均0, 標準偏差σ)を仮定することが多い。
ε ~ N(0,σ^2)
誤差項の分散を推定は、予測データと実データの差を利用。
σ予 = Σ(e(i)^2)/(n-2)
e(i) = Y予(i) - Y(i)
n:全データ数
(n-2)で割るのは、不偏推定量を示すため。
■モデルの評価指標
決定係数(R-Squared):そのモデルで説明される分散の割合。1に近いほどよく表す。
p値(Pr(>|t|)):そのパラメータの有意性。帰無仮説として「パラメータ=0」を立て、値が0に近いほど帰無仮説を棄却することを示し、そのパラメータが有意であることを示す。
その他、多重線形回帰(複数の予測変数から1つの結果変数を算出)、多項式回帰等が存在。
(e.g.)
多重線形回帰: Y = β0 + β1 * X1 + β2 * X2 + β3 * X3
多項式回帰: Y = β0 + β1 * X1 + β2 * X1^2 + β3 * X1^3
■演習と結果
【内容】
真のモデルと正規分布に従う乱数から、データセットを作成。
そのデータセットから線形回帰を行う。
# # # # # # # # # # # # # # # # # # # # # # # # #
#真のデータが線形性を持っているとして、線形回帰
#真のデータ: Y = β0 + β1 * X1
#データ数
dataNum = 1000
#説明変数の平均と標準偏差
ave = 5
std = 7
#誤差項の標準偏差
stderror = 2
#真値
true_beta0 <- 1.1
true_beta1 <- -8.2
#予め入ってるデータの削除
rm(X_1,Y,test_error)
#説明変数の作成
X_1 <- rnorm(dataNum,ave,std)
hist(X_1, col = "grey")
#誤差項
test_error <- rnorm(dataNum,0,stderror)
#真のデータ作成(誤差込)
Y <- true_beta0 + true_beta1 * X_1 + test_error
#パラメータ推定
estY <- lm(Y~X_1)
summary(estY)
#データと推定モデルの可視化
plot(X_1,Y,pch = 20, col = "black")
abline(estY, lwd=2, col="red")
# # # # # # # # # # # # # # # # # # # # # # # # #
summary(estY)を実行した結果は以下。
Call:
lm(formula = Y ~ X_1)
Residuals:
Min 1Q Median 3Q Max
-5.4472 -1.2846 0.0063 1.3065 6.5014
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.979700 0.075828 12.92 <2e-16 ***
X_1 -8.196586 0.008733 -938.58 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.939 on 998 degrees of freedom
Multiple R-squared: 0.9989, Adjusted R-squared: 0.9989
F-statistic: 8.809e+05 on 1 and 998 DF, p-value: < 2.2e-16
決定係数が0.99なので、このモデルでほぼ正解ってことが言えてます。
また、p値もほぼ0なので、有意のあるパラメータってことです。
■参考にしたページ(コーディング)
データセットと線を同じ図に表示する方法。
■参考になるページ(学術的部分)
図も数式もあるので分かりやすい。
データマイニングの基礎:線形回帰分析とは|インターネット広告代理店で働くデータサイエンティストのブログ
具体例があるので良いかと。
Teradata|マーケターのためのデータマイニング・ヒッチハイクガイド:第9回:線形回帰分析
ちゃんと学びたい人は、PRMLの3章を読んだら良いかと。
- 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
- 出版社/メーカー: 丸善出版
- 発売日: 2012/04/05
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 33回
- この商品を含むブログ (15件) を見る