目錄地址
第3章 線性模型
3.1 基本形式
線性模型定義:
其中x是輸入向量
優(yōu)點(diǎn):形式簡單,易于建模,可解釋性好。
3.2 線性回歸
輸入預(yù)處理:連續(xù)值可以直接用,離散值若有序,可以按序賦值變連續(xù)(如“高,中,低”變?yōu)椤?,0.5,0”,否則可以單熱點(diǎn)碼編碼。
回歸常用MSE,要偏導(dǎo)數(shù)為0,當(dāng)輸入是一維時(shí)可以算出來:
當(dāng)多元時(shí),矩陣求導(dǎo),
矩陣微分公式見南瓜書
原理可見:鏈接
當(dāng)
X
T
X
X^TX
XTX滿秩,即可逆,可解得:
當(dāng)不滿秩,有多解,常見是奧卡姆剃刀式引入正則化找簡單的,具體根據(jù)學(xué)習(xí)算法偏好決定。
廣義線性模型:
這樣子,是擬合
g
(
y
)
g(y)
g(y)。
3.3 對數(shù)幾率回歸
用于二分類任務(wù)。
二分類,理想的函數(shù)是紅線的二分類函數(shù),但是不可導(dǎo),
所以要找替代函數(shù)(surrogate function),例如黑線:
對數(shù)幾率函數(shù)(logistic function):
此時(shí)的形式為:
也可以為閉式解。
可以理解為, y y y是正例概率, 1 ? y 1-y 1?y是反例概率,y/(1-y)就是正例比反例更可能的概率。
綠線是給定y的y/(1-y),藍(lán)線是給定y的ln[y/(1-y)],
期望輸入一個(gè)x,線性模型可以得到一個(gè)合適的y。
求解時(shí),可以用極大似然估計(jì),也就是把每個(gè)樣本的標(biāo)簽對應(yīng)的預(yù)測求和,讓這個(gè)和盡可能大。
每個(gè)樣本都是讓下式盡可能接近于1:
β
\beta
β是要優(yōu)化的參數(shù),
則是最小化:
二階導(dǎo)大于0,這是個(gè)凸函數(shù),可以梯度下降法或牛頓法等求和。
3.4 線性判別分析
線性判別分析(Linear Discriminant Analysis, LDA):一種二分類方法。
LDA思想:對訓(xùn)練集,設(shè)法將樣例投影到一條直線上,使得同類樣例的投影點(diǎn)盡可能接近,不同類樣例的投影點(diǎn)盡可能遠(yuǎn)離;對測試集,投影到該直線,根據(jù)投影點(diǎn)的位置確定新樣本的類別。
具體方法:
直線就是
y
=
w
x
y=wx
y=wx,x是輸入w是參數(shù)。
要讓正例
y
0
y_0
y0?和反例
y
1
y_1
y1?的平均值盡可能大,讓正反例內(nèi)的方差盡可能小:
也就是讓J盡可能大,
μ
\mu
μ是平均值向量,
Σ
\Sigma
Σ是協(xié)方差矩陣。
定義
類內(nèi)散度矩陣(within-class scatter matrix):
類間散度矩陣(between-class scatter matrix):
則
J恰好是
S
b
,
S
w
S_b,S_w
Sb?,Sw?的廣義瑞利商(generalized Rayleigh quotient)。
優(yōu)化方法:
該商只與w方向有關(guān),與w大小無關(guān)。
則不妨讓分母為1,優(yōu)化分子:
拉格朗日乘子法(具體見南瓜書)得:
注意,
λ
\lambda
λ只是希望約束和值相切,即垂線平行的,取值不重要,
又由于
S
b
w
S_bw
Sb?w的方向是
μ
0
?
μ
1
\mu_0-\mu_1
μ0??μ1?(因?yàn)楹竺娴?span id="n5n3t3z" class="katex--inline">
(
μ
0
?
μ
1
)
T
w
(\mu_0-\mu_1)^Tw
(μ0??μ1?)Tw是標(biāo)量),所以只要數(shù)乘該方向向量
λ
(
μ
0
?
μ
1
)
\lambda(\mu_0-\mu_1)
λ(μ0??μ1?)即可了。
可得:
S
w
S_w
Sw?常用奇異值分解表示,為了追求數(shù)值穩(wěn)定性。
可從貝葉斯決策理論角度闡述,可以證明,數(shù)據(jù)同先驗(yàn)、滿足高斯分布且協(xié)方差相等,LDA可達(dá)最優(yōu)分類。
推廣到多分類任務(wù):
定義:
Sb變?yōu)?br>
(和之前N=2時(shí)的定義相比,只會差一個(gè)權(quán)重系數(shù)
m
1
m
2
/
(
m
1
+
m
2
)
m_1m_2/(m_1+m_2)
m1?m2?/(m1?+m2?),不影響優(yōu)化結(jié)果)
優(yōu)化目標(biāo)可為:
tr是各對角線元素之和,最后
W
T
X
W^TX
WTX是一個(gè)
N
?
1
N-1
N?1維的向量,N是類別數(shù)。
則
這次的推導(dǎo)也是看南瓜書,原理看鏈接
W的解是 S w ? 1 S b S_w^{-1}S_b Sw?1?Sb?的前N-1個(gè)最大的廣義特征值對應(yīng)的特征向量,是最小化損失的有損壓縮。
d維變成N-1維的向量,也可以作為降維的方法,可以把維度改為任意的d’而不必是N-1,但是 d ′ ≤ N ? 1 d'\le N-1 d′≤N?1因?yàn)镾b的秩就是N-1。
原因可參考鏈接,也可以在n=2時(shí)驗(yàn)證,理解了2個(gè)類別秩為1可以數(shù)學(xué)歸納法。
之后還是做投影,看和哪個(gè)類的距離最近。
3.5 多分類學(xué)習(xí)
本節(jié)介紹了3種模式,通過二分類器達(dá)到多分類的目的。
一對一(One vs. One,OvO)
一對其余(One vs. Rest,OvR)
多對多(Many vs. Many,MvM)
OvO和OvR:
MvM之一:糾錯輸出碼(Error Correcting Output Codes,ECOC)
C是類別的編碼,f是分類器。
還有DAG形式的MvM等。
3.6 類別不平衡問題
對于二分類,因?yàn)閥/(1-y)是正例/負(fù)例出現(xiàn)的概率。
令m+、m-分別是正負(fù)例樣本數(shù),那么期望概率是m+/m-的時(shí)候,要有以m+/m-為閾值而不是原來的1,即:
具體做法除了以上的“閾值移動(threshold-moving)”,還有反例“欠采樣(undersampling)”(這常常結(jié)合集成模型防止丟失主要信息),正例“過采樣(oversampling)”(這常常使用插值等方法數(shù)據(jù)增強(qiáng)緩解過擬合)。
此外,令期望出現(xiàn)正例的概率是cost-/cost+也可以作為代價(jià)敏感學(xué)習(xí)的方法,當(dāng)cost-小時(shí)多預(yù)測為負(fù),反之亦然。
3.7 閱讀材料
習(xí)題
當(dāng)全0向量輸入時(shí)輸出應(yīng)該是0時(shí)。
反證法:當(dāng)b=0,x=1,就是sigmoid函數(shù),顯然非凸。
在書中二階導(dǎo)>0。
牛頓迭代法:
import numpy as np
import pandas as pd
Set = pd.read_csv("data.csv")
# 數(shù)據(jù)集
X = np.array(Set[['密度','含糖率']])
# 標(biāo)簽
Y = np.where(np.array(Set[['好瓜']])=='是',1,0)
N,Dy = Y.shape
X = np.append(X,np.ones(N).reshape(N,1),axis=1)
_,Dx = X.shape
X=X.T
Y=Y.T
Beta = np.random.random(size=(Dx,1))
T = 10
for t in range(T):
p1=np.exp(Beta.T@X)/(1+np.exp(Beta.T@X))
f1=(-np.sum(X*(Y-p1),axis=1)).reshape(3,1)
f2=(X*p1*(1-p1))@X.T
Beta = Beta - np.linalg.inv(f2)@f1
print('t:',t)
print('Beta:',Beta)
print('p1:',p1)
# 可視化
import matplotlib.pyplot as plt
plt.scatter(X[0], X[1], s=10, marker='o')
plt.xlabel('x0')
plt.ylabel('x1')
plt.title('Title')
for i in range(N):
plt.text(X[0][i], X[1][i], "{},{:.3f}".format(Y[0][i],p1[0][i]))
x=np.array([0.2,0.9])
a = -Beta[0][0]/Beta[1][0] # 直線斜率
b = -Beta[2][0]/Beta[1][0] # 直線截距
y_line = a * x + b # 直線方程
plt.plot(x, y_line, 'r--')
plt.show()
線右上是預(yù)測1,左下是預(yù)測0.
略
略
參考SVM的核函數(shù)。
目標(biāo)是
m
a
x
(
h
(
c
0
,
c
1
)
+
h
(
c
0
,
c
2
)
+
h
(
c
0
,
c
3
)
+
h
(
c
1
,
c
2
)
+
h
(
c
1
,
c
3
)
+
h
(
c
2
,
c
3
)
)
max(h(c0,c1)+h(c0,c2)+h(c0,c3)+h(c1,c2)+h(c1,c3)+h(c2,c3))
max(h(c0,c1)+h(c0,c2)+h(c0,c3)+h(c1,c2)+h(c1,c3)+h(c2,c3))
h ( c i , c j ) = s u m ( a b s ( c i ? c j ) ) h(ci,cj)=sum(abs(ci-cj)) h(ci,cj)=sum(abs(ci?cj))
不失一般性,任意固定c0,其他進(jìn)行搜索,運(yùn)算次數(shù)O(227)=O(134,217,728),可以暴力枚舉。
文章來源:http://www.zghlxwxcb.cn/news/detail-717052.html
之所以要滿足這個(gè)條件,是因?yàn)?,如果不是,都會帶來更加偏好某一個(gè)類的效果。
是否滿足該條件?
這個(gè)要取決于編碼的具體方式,不是二分類能決定的。
但是二分類的分類效果也會影響概率,比如數(shù)據(jù)不均等。
當(dāng)編碼長度冗余,會影響?yīng)毩⑿浴?br>
因?yàn)槠谕嫌绊懴嗷サ窒?br>
多分類都可以是二分類的直接套用。
能獲得理論最優(yōu)解,那么"訓(xùn)練集是真實(shí)樣本總體的無偏采樣"要滿足。文章來源地址http://www.zghlxwxcb.cn/news/detail-717052.html
到了這里,關(guān)于【學(xué)習(xí)筆記、面試準(zhǔn)備】機(jī)器學(xué)習(xí)西瓜書要點(diǎn)歸納和課后習(xí)題參考答案——第3章的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!