狠狠撸

狠狠撸Share a Scribd company logo
カジュアル勉強会 @仙台
Excelで機械学習入門 第4回
株式会社 エクテック
データサイエンティスト
第10回までの流れ
1回~3回 4回~10回
AI周辺の
基本知識
最適化の基本
推論の基本
重回帰分析
機械学習
サポートベクタマシン
ナイーブベイズ
ニューラルネットワーク
RNN/BPTT
強化学習/Q学習
環境について
(Surroundings)
Excel 2013, 2016
Google Spreadsheets
本日のアジェンダ
1. 重回帰分析
2. サポートベクタマシン
重回帰分析
第1回で学んだ最?2乗法に対して
3変数以上にした回帰分析
次のデータは、ある企業の社員20名のデータ。
3年後の社員の実?を『給与』で測定しています。
社員番号k 筆記試験w ?接試験x 3年後給与y 社員番号k 筆記試験w ?接試験x 3年後給与y
1 65 83 345 11 94 95 371
2 98 63 351 12 66 70 315
3 68 83 344 13 86 85 348
4 64 96 338 14 69 85 337
5 61 55 299 15 94 60 351
6 92 95 359 16 73 86 344
7 65 69 322 17 94 84 375
8 68 54 328 18 92 92 361
9 68 97 363 19 70 70 326
10 80 51 326 20 98 98 387
このデータから、3年後の社員の実?『給与y』を
『筆記試験w』と『?接試験x』から予測しよう。
y = aw + bx + c (a, b, cは定数)
y = aw + bx + c
これを、『回帰?程式』といいます
重回帰分析の回帰?程式のイメージ
y = ax + b
回帰直線: a=2, b=1, のとき
y = aw + bx + c
回帰平?: a=3, b=2, c=1のとき
このイメージが、後々
効いてきます(分類問題などなど)
回帰?程式の求め?
第1回で学んだ内容と同じ
最?2乗法で決定するのが?般的
回帰?程式から得られる予測値と
実データとの誤差を考える
先ほどの表、k番?の要素に関する誤差...
k番?の社員に関する誤差 = yk - (awk + bxk + c)
社員番号k 筆記試験w ?接試験x 3年後給与y 社員番号k 筆記試験w
1 65 83 345 65a+83b+c
345-
(65a+83b+c)
2 98 63 351 98a+63b+c
351-
(98a+63b+c)
3 68 83 344 68a+83b+c
344-
(68a+83b+c)
… … … … … …
20 80 51 326 78a+98b+c
387-
(78a+98b+c)
『誤差』は正にも負にもなって、
?し合わせると結局ゼロになってしまう
ので、次の平?誤差ekを考える
ek = {yk - (awk + bxk + c)}
2
最?2乗法なので、平?誤差をデータ全体で
?し合わせた値 Eを考える
E = {345-(65a+83b+c)} +
{351-(98a+63b+c)} + … +
{387-(78a+98b+c)}
2
2
2
E は誤差の総量であり、
最適化の観点では、”?的関数”と呼ばれる
このEを最?にするように
定数a, b, cを決定するのが回帰分析になる
単回帰分析のときと同じ
δE
δa
= 0,
δE
δb
= 0,
δE
δc
= 0
を解くと、a=0.97, b=0.87, c=202.4
採?試験で、例えば
筆記試験wが82点、?接試験xが77点の
受験者の3年後の給与は
y = 0.97 ? 82 + 0.87 ? 77 + 202.4
= 349 (万円)
余谈
多くの公司の、?事部?は
最初の書類選考で機械学習を?いて
構?解析の技術で?章?等を点数化し、
その数値化された結果から
受験者の能?を推定している(みたい)
サポートベクタマシン
ディープラーニングが普及する以前、
機械学習のデータ識別法として、
サポートベクタマシン(SVM)
が主流の位置を占めていた...!
※現在でもよく使う
1960年代に開発された
データ識別?の技術&?法
“マージンの最?化”
というアイデアを?いて
“識別関数”を求める
No 名前
好感度
識別
x y
1 A 0 0 男
2 B 0 1 男
3 C 1 1 男
4 D 1 0 ?
5 E 2 0 ?
6 F 2 1 ?
下表は、男性 A, B, Cと?性 D, E, Fを対象に、
製品 X, Yの好感度 x, y を調べた結果です。
この表から、SVMを?いた、男?を区別するx, y
の線形の識別関数を求めましょう。
好感度(x,y)を座標として点で、
6?のA~Fを表すと
x
y
1
10
男?を識別する2変数x,yの
「線形の識別関数」はこの平?上の直線を表わす
x
y
1
10
ところで、
?つに分ける直線はいくつもある
x
y
1
10
ここで活?される
“マージンの最?化”
いくつもある直線(識別関数)
これらの中から、1本選ぶ
x
y
1
10
ax + by +c = 0
(a, bは同時に0にならない)
ところで、
x
y
1
10
ちょうど男?の境界の縁(マージン)
を通る平?な2直線を考える
ax + by +c = 0
x
y
1
10
識別関数(識別直線)と、境界の直線までの幅dを
最?化することを “マージンの最?化”という
ax + by +c = 0
d
d
縁にある男?のデータの要素(少なくとも?つ)
“サポートベクター”
最?幅
サポートベクタ
マージンの最?化を
式で表現してみると
x
y
1
10
ax + by +c = 1, ax + by +c = 1
と置いてみる(直線の式の不定性)
ax + by +c = 1
d
d ax + by +c = -1
先ほどの问题に戻る
No 名前
好感度
識別 正負
x y
1 A 0 0 男 -1
2 B 0 1 男 -1
3 C 1 1 男 -1
4 D 1 0 ? 1
5 E 2 0 ? 1
6 F 2 1 ? 1
負例
正例
男に”-1”, ?に“1”をそれぞれ与えてみる
“正例”, “負例”
x
y
1
10
ax + by +c = -1
ax + by +c = 1
ax + by +c ≧ 1
ax + by +c ≦ -1
x
y
1
10
ax + by +c = -1
d
ax + by +c = 1
ax + by +c ≧ 1
ax + by +c ≦ -1
負例(男) axi + byi +c ≦ -1
正例(?) axi + byi +c ≧ 1
x
y
1
10
ax + by +c = -1
d
ax + by +c = 1
ax + by +c ≧ 1
ax + by +c ≦ -1
サポートベクタとなる
データ要素を表す点(xi, yi)は...
x
y
1
10
ax + by +c = -1
d
ax + by +c = 1
ax + by +c ≧ 1
ax + by +c ≦ -1
負例(男) axi + byi +c = -1
正例(?) axi + byi +c = 1
x
y
1
10
d
d
x
y
1
10
d
d
距離dは「点と直線の距離の公式」から
サポートベクタ(xi, yi)から識別直線までの距離
x
y
1
10
d
d
| axi + byi + c |
(a + b )
d = 2 2 1/2
x
y
1
10
ax + by +c = -1
d
ax + by +c = 1
ax + by +c ≧ 1
ax + by +c ≦ -1
axi + byi +c = -1 or axi + byi +c = 1
なので、距離dは
x
y
1
10
ax + by +c = -1
d
ax + by +c = 1
ax + by +c ≧ 1
ax + by +c ≦ -1
1
(a + b )
d = 2 2 1/2
マージンの最?化は
この距離dを最?化すること
すなわち a + b を最?化すること
2 2
No 名前
好感度
識別
x y
1 A 0 0 男
2 B 0 1 男
3 C 1 1 男
4 D 1 0 ?
5 E 2 0 ?
6 F 2 1 ?
下表は、男性 A, B, Cと?性 D, E, Fを対象に、
製品 X, Yの好感度 x, y を調べた結果です。
この表から、SVMを?いた、男?を区別するx, y
の線形の識別関数を求めましょう。
No 名前
好感度
識別
x y
1 A 0 0 男
2 B 0 1 男
3 C 1 1 男
4 D 1 0 ?
5 E 2 0 ?
6 F 2 1 ?
下表は、男性 A, B, Cと?性 D, E, Fを対象に、
製品 X, Yの好感度 x, y を調べた結果です。
この表から、SVMを?いた、男?を区別するx, y
の線形の識別関数を求めましょう。
この問題は
No 名前
好感度
識別
x y
1 A 0 0 男
2 B 0 1 男
3 C 1 1 男
4 D 1 0 ?
5 E 2 0 ?
6 F 2 1 ?
下表は、男性 A, B, Cと?性 D, E, Fを対象に、
製品 X, Yの好感度 x, y を調べた結果です。
この表から、SVMを?いた、男?を区別するx, y
の線形の識別関数を求めましょう。
負例(男) axi + byi +c ≦ -1
正例(?) axi + byi +c ≧ 1
の条件下で、次の式の値を
最?にするa, b, cを求める
a + b
2 2
ここで唐突に、
話を?般化できるように変数
ti (i=1,2,..,6) を?意します
正例に対して、ti = 1
負例に対して、ti = -1
とすると
負例(男) axi + byi + c ≦ -1
正例(?) axi + byi + c ≧ 1
この条件式は
負例(男) axi + byi + c ≦ -1
正例(?) axi + byi + c ≧ 1
この条件式は、以下のようにまとまる
ti (axi + byi + c) ≧ 1
不等式の、??がマイナスで
両辺にマイナスをかけると不等号は逆になりますよね
ti (axi + byi +c) ≧ 1 の条件下で
次の式の値を最?にするa, b, cを求める
a + b2 2
ti (axi + byi +c) ≧ 1 の条件下で
次の式の値を最?にするa, b, cを求める
a + b2 2
ちなみに、このti を
SVMにおいて“正解ラベル”と表現します
t: teacher
第2回を思い出してください
“不等式の最?を求める”
最?値2 (x=0, y=2)
ラグランジュの双対问题
ti (i=1,2,..,6) に対して
L = (a + b ) + μ1{1 - t1(ax1 + by1 + c)} +
μ2{1 - t2(ax2 + by2 + c)} + … +
μ6{1 - t6(ax6 + by6 + c)}
について、a, b, cの最?値を求める。
これは、得られるμ1, μ2, … , μ6の式について
その最?値を求める。
μ1, μ2, … , μ6 >0
余?のある?は、復習ついでに
??で解いてみてください...!
(次回、第5回のAppendixに解答を差し込みます)
ヒント!
δL
δa
= 0,
δL
δb
= 0,
δL
δc
= 0①
② a, bの関係式を求める
③ t, μの関係式を求める
④ L についてt, μ, x, yで表現する
3連休の間に、やってみてください
※3時間かけて、解けそうもない時は
第5回までお待ちください
a, bが求まる & μも求まる
No 名前
好感度
μ
x y
1 A 0 0 1.648
2 B 0 1 0.000
3 C 1 1 2.352
4 D 1 0 3.648
5 E 2 0 0.000
6 F 2 1 0.352
No 名前
好感度
μ
x y
1 A 0 0 1.648
2 B 0 1 0.000
3 C 1 1 2.352
4 D 1 0 3.648
5 E 2 0 0.000
6 F 2 1 0.352
μiは、0以上のときに
a + b の最?値に関与する
(すなわち、それ?体がサポートベクタ)
2 2
No 名前
好感度
μ
SV
(サポートベク
タ)
c
x y
1 A 0 0 1.648 YES -1.000
2 B 0 1 0.000 No
3 C 1 1 2.352 YES -1.000
4 D 1 0 3.648 YES -1.000
5 E 2 0 0.000 No
6 F 2 1 0.352 YES -1.000
No 名前
好感度
μ
SV
(サポートベク
タ)
c
x y
1 A 0 0 1.648 YES -1.000
2 B 0 1 0.000 No
3 C 1 1 2.352 YES -1.000
4 D 1 0 3.648 YES -1.000
5 E 2 0 0.000 No
6 F 2 1 0.352 YES -1.000
サポートベクタは
No, 1,3,4,6
x
y
1
10
識別関数である、識別直線は
2x - 2y - 1 = 0
2x - 2y - 1 = -1
d
d 2x - 2y - 1 = 1
2x - 2y - 1 = -1
2x - 2y - 1 = 1
2x - 2y - 1 = 0
EoF

More Related Content

Casual learning machine learning with_excel_no4