4. 為數(shù)據(jù)尋找合適的模型

Fundamental concepts:基于數(shù)據(jù)尋找最佳的模型參數(shù);選擇數(shù)據(jù)挖掘的目標(biāo);目標(biāo)函數(shù)(objective functions);損失函數(shù)(loss functions)。

Exemplary(典范的) techniques:線性回歸(linear regression);邏輯回歸(logistics regression);支持向量機(support-vector machines)。

參數(shù)學(xué)習(xí)(parameter learning)or參數(shù)化建模(parametric modeling):通過調(diào)整參數(shù),讓模型能夠最大程度地匹配數(shù)據(jù)的過程,叫做參數(shù)學(xué)習(xí)或參數(shù)化建模。

Classification via Mathematical Functions(分類和數(shù)學(xué)函數(shù))


圖4-1 通過決策樹將坐標(biāo)區(qū)域(樣本集)分割成了4個葉子節(jié)點

參考圖4-1,創(chuàng)造同質(zhì)性區(qū)域的目的是根據(jù)已知的數(shù)據(jù)來預(yù)測新數(shù)據(jù)會落在哪個區(qū)域當(dāng)中,此時我們知道了他落在哪個區(qū)域后,我們便可根據(jù)區(qū)域和目標(biāo)變量的關(guān)系來預(yù)測這條新數(shù)據(jù)的目標(biāo)變量(target variable)是·還是+號。

通過以上方法我們可以預(yù)見到,可能會有更好的分割方法幾乎完美地對不同目標(biāo)變量的結(jié)果進行預(yù)測,而且這條線不一定要與坐標(biāo)軸直接垂直,就想下圖所示:


圖4-3 通過一條直線對原樣本空間進行分割示例

上圖的方式叫做線性分類,他的本質(zhì)是對已知的各變量進行加權(quán)后的求和,后續(xù)內(nèi)容將對此做詳細(xì)介紹。

Linear Discriminant Functions(線性判別函數(shù))

通過一元二次函數(shù)來構(gòu)造,可知上圖4-3中的直線可表示為:

Age=(-1.5)\times Balance+60

如果元素x是在線的上方,我們可以預(yù)測他是+號結(jié)果,如果在下方我們可以預(yù)測他是·結(jié)果。

等式4-1,分類函數(shù):

class(x)= + if  -1.0\times Age-1.5\times Balance+60 >0

class(x)= · if  -1.0\times Age-1.5\times Balance+60 \leq 0

這被稱為線性辨別,并且這個函數(shù)是一個各個attributes的一個加權(quán)求和的結(jié)果。

在2元情況下,這個分割是一條線,在3元的情況下,這個分割就是通過一個分割面來實現(xiàn)的,在更高維度時,這個分割的形式就是一個超平面(hyperplane)。而我們所關(guān)注的,僅僅是目標(biāo)變量如何能表示成各個變量的一個加權(quán)的求和結(jié)果。

由此可以看出,線性化模型是多變量監(jiān)督學(xué)習(xí)分割的一個特殊形式,監(jiān)督分割的目的依然是將樣本集根據(jù)變量進行分割,而將數(shù)值化的變量引入的目的是創(chuàng)造一個他們之間關(guān)系的數(shù)學(xué)函數(shù)。

等式4-2,一般性線性模型:

f(x)=w_{0}+ w_{1}x_{1}+w_{2}x_{2}+\cdot \cdot \cdot

而4-1中的公式可被表示為如下形式:

f(x)=60-1.0\times Age-1.5\times Balance

我們只需要檢查f(x)的正負(fù)性,就可以預(yù)測元素x的目標(biāo)變量結(jié)果。

圖4-5 將不同的樣本分開可以找到N多條滿足條件的線

像上圖所示,我們應(yīng)該怎樣選到最合適的那一條線來當(dāng)做模型呢?

Optimizing an Objective Function(尋找最佳的目標(biāo)函數(shù))

邏輯回歸做的并不是回歸的事情,邏輯回歸實際上是用于給概率預(yù)測進行分類。

線性回歸、邏輯回歸、支持向量機都是在給數(shù)據(jù)建模時的相似工具,主要的區(qū)別是這三個技術(shù)方式每一個都使用一個不同的目標(biāo)函數(shù)。

An Example of Mining a Linear Discriminant from Data(線性模型總結(jié)舉例)


圖4-7 一個數(shù)據(jù)集和兩個線性分類線,用于區(qū)分鳶尾花屬于Iris Setosa(山鳶尾,圖中黑點)還是Iris Versicolor(變色鳶尾,圖中圓圈),判別使用的變量為Sepal width(花萼寬度)和Petal width(花瓣寬度)

Linear Discriminant Functions for Scoring and Ranking Instances(用于樣本評分和排行的判別函數(shù))

有些時候我們不滿足于對樣本進行分類定性,而是要得出這個樣本與這個類別的匹配程度有多少。

接下來我們將使用?邏輯回歸?的方法來對一個用戶churn概率的問題進行分析。

考慮公式4-2(f(x)=w_{0}+ w_{1}x_{1}+w_{2}x_{2}+\cdot \cdot \cdot )的情形,當(dāng)x處在決策線(x軸)上時f(x)=0,當(dāng)x靠近決策線時f(x)的值會很小,當(dāng)x在+方向上離決策線很遠(yuǎn)時f(x)的值會很大,這樣就通過f(x)的值得出了一個每個樣本屬于分類的匹配度的排名。

Support Vector Machines(SVM),Briefly(支持向量機簡介)

簡短來說,支持向量機就是線性判別;概括來說,SVMs是基于公式4-2(f(x)=w_{0}+ w_{1}x_{1}+w_{2}x_{2}+\cdot \cdot \cdot )中線性函數(shù)的各個特征來對樣本進行分類的。

概念介紹:非線性支持向量機(nonlinear support vector machines),非線性支持向量機,將線性支持向量機的函數(shù)當(dāng)做變量來使用,故可描述為:使用新變量(已有線性判別函數(shù))組成的線性判別函數(shù),對于最初的原始變量來說就是一個非線性判別函數(shù),即非線性支持向量機。

支持向量機:相比于找到分割樣本集的直線,支持向量機更偏好于找到能夠滿足分割樣板的最寬的區(qū)間,如下圖所示:

圖4-8 圖4-2中的樣本點以及最大化分割距離(margin)的分類方法

在SVM的觀點中,margin越寬越好,一旦找到最寬的margin值,那么這個線性margin面積的中線就是最佳的線性判別函數(shù),上圖中兩條虛線中間的距離叫做margin,SVM的目標(biāo)就是最大化margin,即最大化平行邊線間的距離。

對于SVM機制的解釋為,鑒于得到的是有限數(shù)據(jù),更多未知數(shù)據(jù)可能比學(xué)習(xí)集數(shù)據(jù)更靠近中線,落在margin內(nèi),甚至落在中線的另一側(cè),所以為了減小這種可能性,需要采取最大化margin的判斷思路,來得到margin中線這樣的一條分割判定函數(shù)線。

另一個對SVM的理解是,如何應(yīng)對落在判定函數(shù)線反側(cè)的特異數(shù)據(jù)點,圖4-2中的數(shù)據(jù)點沒辦法通過一條線進行完美的分割,當(dāng)然絕大多數(shù)情況下的數(shù)據(jù)集都是沒辦法一條線完美分割的,這些降落在margin內(nèi)或中線對側(cè)的錯誤的點,這里引出一個概念損失函數(shù)。

Sidebar:loss functions(補充:損失函數(shù))

“損失”在整個數(shù)據(jù)科學(xué)中都被廣泛運用當(dāng)做錯誤懲罰。損失函數(shù)決定基于模型的預(yù)測值多少懲罰應(yīng)該被分配到每個樣本上,在此處上下文中,是基于點到分界中線的距離。

有些損失函數(shù)比較常用,如圖4-9中所示:


圖4-9 展示了2個損失函數(shù)。x軸表示了到?jīng)Q策線的距離,y軸表示了一個不符模型的點(否定實例)造成的損失,損失值為點到分割中線的距離。(當(dāng)是一個符合模型的元素時是對稱的情況,即損失為負(fù),不計損失)如果否定實例在分割線的負(fù)向一邊,那么此處沒有損失。如果它在正向一邊(錯誤方向距離為正值),那么不同的損失函數(shù)會給定義不同的懲罰。

圖4-9中,橫軸是到分割中線的距離,預(yù)測錯誤的點具有正值的距離數(shù)值,而預(yù)測正確的點具有負(fù)值的距離數(shù)值(圖中的選擇是任意的)。

hinge loss(鉸鏈損失函數(shù))

支持向量機經(jīng)常使用鉸鏈損失函數(shù),名字的由來就是函數(shù)圖形看起來像是鉸鏈。鉸鏈損失函數(shù)中,當(dāng)一個元素不在margin的錯誤一側(cè)時不產(chǎn)生損失,僅當(dāng)某個元素在分割線的錯誤一側(cè)并且超出了margin的范圍時,才會產(chǎn)生正值的損失值。同時,損失值會隨著這個元素離分割線的距離增加而線性增加,因此,懲罰點數(shù)越多、點的距離和分割線越遠(yuǎn),損失值就越大。

zero-one loss(0-1損失函數(shù))

和名字的意思一致,正確的決策分配一個為0的損失,錯誤的決策分配一個為1的損失。

squared error(平方誤差)

考慮一個不一樣的損失計算方法,平方誤差將損失正比于懲罰點到分割線的距離的平方。平方誤差常用于數(shù)字值預(yù)測(回歸),而不是分類預(yù)測。平方誤差對錯誤結(jié)果可以產(chǎn)生顯著的預(yù)測懲罰值(損失值)。在分類預(yù)測中,平方誤差法會給落在錯誤側(cè)的元素很大的懲罰值(損失值)。不幸的是,在分類預(yù)測當(dāng)中,平方誤差法也會給落在正確一側(cè)的原處點很大的懲罰值(不就是平方結(jié)果沒有正負(fù)號么……)。對于大多數(shù)商業(yè)問題,在分類或類別可能性預(yù)測的場景下使用平方誤差法,會違背商業(yè)目標(biāo)的原則。

Regression via Mathematical Functions(通過數(shù)學(xué)函數(shù)進行回歸)

線性回歸函數(shù)的函數(shù)式和線性判別函數(shù)的函數(shù)式一樣,都是等式4-2,如下:

f(x)=w_{0}+ w_{1}x_{1}+w_{2}x_{2}+\cdot \cdot \cdot

線性回歸要做的內(nèi)容就是,根據(jù)學(xué)習(xí)集數(shù)據(jù),找到一個線性預(yù)測公式 ,使得學(xué)習(xí)集中的各元素到此線的距離之和最小。

如果預(yù)測值是10,實際值是12或8,那么錯誤值就是2,這個2被稱為絕對誤差(absolute error),然后我們就可以通過訓(xùn)練集的數(shù)據(jù)去最小化絕對誤差的總和,或者絕對誤差的平均值,這很有意義,但常規(guī)的線性回歸并不是用這樣的步驟來執(zhí)行的。

標(biāo)準(zhǔn)的線性回歸使用最小化誤差平方結(jié)果的方式來執(zhí)行,因此得名“最小平方”回歸。使用最小平方和的方式主要是因為這個方法簡單方便好算。

平方誤差法有一個天然的缺陷,就是邊遠(yuǎn)的數(shù)據(jù)點會對函數(shù)結(jié)果產(chǎn)生嚴(yán)重的扭轉(zhuǎn)。使用絕對值誤差法相比于平方誤差法,受邊緣點的影響會小很多。

Class Probability Estimation and Logistic "Regression"(分類概率預(yù)測和邏輯歸回)

邏輯回歸就是用賠率來代替事情發(fā)生的概率來做預(yù)測,比如,一件事發(fā)生的概率是80%不發(fā)生的概率是20%那么賠率(odds)就是80:20或者4:1。但賠率的分布范圍是零到正無窮,但根據(jù)點到分割線的距離來判斷概率(離線越遠(yuǎn)概率越大)的話,距離值的分布范圍是負(fù)無窮到正無窮,兩者范圍不符,故采用取對數(shù)的形式來進行變形,就是(log-odds),任何0到無窮的數(shù)的對數(shù)分布范圍是負(fù)無窮到正無窮。

有以下幾個要點需要記?。?/p>

1. 在概率預(yù)測中,邏輯回歸和和線性分類、線性回歸數(shù)值預(yù)測,使用了同樣的線性模型;

2. 邏輯回歸模型的輸出可以理解成賠率的對數(shù)形式(log-odds);

3. 這些log-odds可以直接被轉(zhuǎn)換成各類型的概率,因此邏輯回歸經(jīng)常被當(dāng)做分類模型。你已經(jīng)在不知不覺中使用了很多次邏輯回歸模型它被廣泛用于信用卡默認(rèn)金額預(yù)測,offer的接受概率等領(lǐng)域。

邏輯回歸是一個對分類進行預(yù)測的模型,而不是一個對數(shù)值進行預(yù)測單模型,不要認(rèn)錯呦。

* Logistic Regression: Some Technical Details

公式4-3 log-odds 線性方程:

\log(\frac{p_{+} (x)}{1-p_{+} (x)} )=f(x)=w_{0}+w_{1} x_{1}+w_{2} x_{2}\cdot\cdot\cdot (這里log實際上是ln即e為底數(shù)

公式4-3表示被特征向量x表示的某個數(shù)據(jù)項,這個類別的log-odds值和線性方程f(x)相等。

通常我們想要的是各類型的概率而不是log-odds,故解出公式4-3中的p_{+} (x)可得公式4-4:

p_{+} (x)=\frac{1}{1+e^(-f(x))} e^-f(x)e的負(fù)f(x)次方)

如果把f(x)當(dāng)做自變量,公式4-4的值當(dāng)做因變量繪圖,如下:


圖4-10 邏輯函數(shù)公式4-4以f(x)為自變量的函數(shù)圖形,這個曲線被稱為sigmoid曲線,因為圖形像S字母,這個曲線將概率壓縮進了正確的0-1的概率正確區(qū)間

邏輯回歸模型適配到數(shù)據(jù)的標(biāo)準(zhǔn)目標(biāo)函數(shù)如下:

g(x,w)=p_{+}(x) ?如果x是+類型;

g(x,w)=1-p_{+}(x) 如果x是·類型

g函數(shù)給了得到x的特征后,對x的可能性評估的結(jié)果?,F(xiàn)在考慮對所有元素的g函數(shù)值求和,并對不同的參數(shù)模型套用得出各自的\sum_{i=1}^ng(x,w),能夠給出最大的sum的g值的模型,就是和學(xué)習(xí)集數(shù)據(jù)匹配最好的模型。最好的模型通常對正元素給出最高的概率,同時對負(fù)元素給出最低的概率。

Example: Logistic Regression versus Tree Induction

雖然決策樹和線性分類都會用到線性決策分割線,但有以下兩個差異點:

1. 決策樹的分割線都是垂直于坐標(biāo)軸(樣本空間坐標(biāo)軸)的,如圖4-1,而線性分類的分割線可以是朝向任何方向的(即斜率任意),換句話說,決策樹每次選擇一個特征變量,但線性分類使用一個多特征變量的加權(quán)組合一次性使用所有特征變量;

2. 決策樹使用遞歸的方法來劃分樣本空間,也就是可以把樣本空間分割出很小的小塊;但線性分類僅使用一條分割線將樣本空間平面分成兩個區(qū)域,這個函數(shù)會涉及到所有的變量,并且可以適用于所有樣本元素。

這里舉了一個威斯康辛州乳腺癌數(shù)據(jù)的案例,分別通過線性回歸分類和決策樹分類進行了建模,發(fā)現(xiàn)線性回歸分類準(zhǔn)確度為98.9%,而決策樹的準(zhǔn)確率為99.1%,但這并不一定代表決策樹模型更合適,后續(xù)章節(jié)會繼續(xù)討論模型評估。

Nonlinear Functions, Support Vector Machines, and Neural Networks(神經(jīng)網(wǎng)絡(luò))

最常用的適配復(fù)雜參數(shù)和非線性函數(shù)的方法為非線性支持向量機神經(jīng)網(wǎng)絡(luò)。

神經(jīng)網(wǎng)絡(luò)就是多層次的模型“stack”of models,通過原始數(shù)據(jù)的特征生成第一級分析結(jié)果,然后將第一層的結(jié)果當(dāng)做新特征進行二次邏輯回歸或其他模型分析,從而組成stack。

多層神經(jīng)網(wǎng)絡(luò)的低層級target variable的最佳結(jié)果如何選擇,取決于最終高層的結(jié)果如何選擇,也就是說,神經(jīng)網(wǎng)絡(luò)的最終學(xué)習(xí)結(jié)果是一個復(fù)雜函數(shù),那么將復(fù)雜函數(shù)的各參數(shù)逐步分解,就可以得到底層各模型的target variable的最優(yōu)化模型結(jié)果,也就是自上而下的擇優(yōu)歸納過程。

Note:神經(jīng)網(wǎng)絡(luò)對很多任務(wù)都有效用(沒說啥新鮮玩意)

Summary

線性回歸、邏輯回歸、支持向量機,這幾個概念的關(guān)鍵區(qū)別在于:如何定義一個模型最好地適配了學(xué)習(xí)集數(shù)據(jù)。

下一章節(jié)開始講過擬合相關(guān)的問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容