99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)精彩閱讀邏輯回歸,決策樹(shù),支持向量機(jī) 選擇方案
邏輯回歸,決策樹(shù),支持向量機(jī) 選擇方案
2018-01-16
收藏

邏輯回歸,決策樹(shù)支持向量機(jī) 選擇方案

分類(lèi)是我們?cè)诠I(yè)界經(jīng)常遇到的場(chǎng)景,本文探討了3種常用的分類(lèi)器,邏輯回歸LR,決策樹(shù)DT和支持向量機(jī)SVM。

這三個(gè)算法都被廣泛應(yīng)用于分類(lèi)(當(dāng)然LR,DT和SVR也可以用于回歸,但是本文先不討論)。我經(jīng)??吹饺藗儠?huì)問(wèn),這個(gè)問(wèn)題我該使用LR呢還是決策樹(shù)(或者GBDT)還是SVM呢。然后你會(huì)聽(tīng)到一個(gè)“經(jīng)典”而且“絕對(duì)正確”的答案:”It depends.”這個(gè)答案簡(jiǎn)直毫無(wú)卵用。所以本文將探討一下面臨模型選擇的時(shí)候到底depends on what。

接下來(lái)是一個(gè)簡(jiǎn)單的2-D的解釋?zhuān)劣谙蚋呔S度的擴(kuò)展延伸,就靠你們了~

從最重要的問(wèn)題入手:我們?cè)诜诸?lèi)時(shí)想要做什么~聽(tīng)起來(lái)很蠢有木有,重新組織一下問(wèn)題~為了完成分類(lèi),我們嘗試得到一個(gè)分類(lèi)邊界或者是一個(gè)你和曲線(xiàn),哪個(gè)方式能夠在我們的特征空間里更好的進(jìn)行分類(lèi)呢?

特征空間聽(tīng)起來(lái)很fancy,看一個(gè)簡(jiǎn)單的例子,我有一些樣本數(shù)據(jù),特征(x1,x2)和標(biāo)簽(0或1)。

可以看到我們的特征是2-D的,不同的顏色代表著不同的類(lèi)別標(biāo)簽,我們想要使用算法來(lái)獲得一個(gè)曲線(xiàn)來(lái)區(qū)分這些不同類(lèi)別的樣本。

其實(shí)可以很直觀(guān)的看出來(lái),這個(gè)場(chǎng)景下圓是一個(gè)比較理想的分類(lèi)邊界。而不同的分類(lèi)邊界也就是LR,DT和SVM的區(qū)別所在。

首先看一下邏輯回歸,對(duì)于LR給出的決策邊界,我們對(duì)于這個(gè)經(jīng)典的S型曲線(xiàn)會(huì)有不少困惑:

其實(shí)這個(gè)藍(lán)色的曲線(xiàn)并不是決策邊界,它只是把二分類(lèi)的答案使用連續(xù)值輸出置信度的一個(gè)方式,例如給出分類(lèi)結(jié)果為1的置信度。LR決策面其實(shí)是一條直線(xiàn)(高維情況下平面或超平面),為什么呢?

來(lái)看下邏輯回歸的公式:

為了判定樣本屬于哪一類(lèi),需要設(shè)置一個(gè)截?cái)喾謹(jǐn)?shù),高于這個(gè)分?jǐn)?shù)就預(yù)測(cè)為正例,低于這個(gè)分?jǐn)?shù)就預(yù)測(cè)為負(fù)例。例如階段分?jǐn)?shù)是c,所以我們的決策過(guò)程如下:

Y=1 當(dāng) p>c,否則為0。因而解決了之前的一個(gè)問(wèn)題:LR的決策邊界其實(shí)是一條直線(xiàn)。

所以對(duì)于之前的數(shù)據(jù)集我們得到的LR的決策邊界如下:

可以看出來(lái)LR的效果并不好,因?yàn)椴还苣阍趺凑{(diào),決策邊界都是線(xiàn)性的,無(wú)法擬合出來(lái)一個(gè)圓形的決策邊界,所以L(fǎng)R比較適合解決線(xiàn)性可分的問(wèn)題(雖然你也可以通過(guò)對(duì)特征進(jìn)行變換從而使樣本數(shù)據(jù)線(xiàn)性可分,但是目前不討論這個(gè)東西,這個(gè)是特征工程的工作,和模型沒(méi)關(guān)系)。

現(xiàn)在看一下決策樹(shù)的工作原理,決策樹(shù)是按照單個(gè)變量進(jìn)行一層一層的規(guī)則過(guò)濾,例如:

x1大于或小于const或者x2大于或小于某個(gè)const做的工作是使用直線(xiàn)來(lái)劃分特征空間,如下圖:

如果我們讓決策樹(shù)更復(fù)雜一點(diǎn),例如深度更大,則這些判斷條件能夠更細(xì)地劃分特征空間,從而越來(lái)越逼近那個(gè)圓形的決策邊界。

因此,如果決策邊界是非線(xiàn)性的,而且能夠通過(guò)矩形來(lái)劃分特征空間,那么決策樹(shù)就是優(yōu)于LR的模型。

最后,看一下SVM的工作模式,SVM通過(guò)核函數(shù)把特征空間映射到其他維度,從而使得樣本數(shù)據(jù)線(xiàn)性可分,換個(gè)說(shuō)法,SVM通過(guò)添加新的維度的特征從而使得樣本線(xiàn)性可分。從下圖可以看到,當(dāng)把特征映射到另一個(gè)空間,那么一個(gè)決策面可以把數(shù)據(jù)區(qū)分開(kāi),換言之,如果把這個(gè)決策面映射到初始特征空間,我們就相當(dāng)于得到了一個(gè)非線(xiàn)性的決策邊界。

在原始的2-D的特征基礎(chǔ)上添加一個(gè)新的特征,我們就可以通過(guò)一個(gè)平面,使得這個(gè)3-D的樣本數(shù)據(jù)線(xiàn)性可分了(使用n-1維的超平面把n維的樣本分開(kāi)),如果把這個(gè)分類(lèi)面投射到原始的2-D空間,那么其實(shí)我們會(huì)得到一個(gè)圓哦,雖然這個(gè)分類(lèi)邊界并不會(huì)像下圖這樣理想,但是也是能夠逼近這個(gè)圓的。

到這里我們大致明白了3個(gè)模型的工作原理,但是一開(kāi)始提出的問(wèn)題并沒(méi)有解決,it depends on what? 什么情況下使用什么模型,優(yōu)勢(shì)是什么,劣勢(shì)又是什么?我們下面來(lái)探討這個(gè)問(wèn)題~

LR,DT,SVM都有自身的特性,首先來(lái)看一下LR,工業(yè)界最受青睞的機(jī)器學(xué)習(xí)算法,訓(xùn)練、預(yù)測(cè)的高效性能以及算法容易實(shí)現(xiàn)使其能輕松適應(yīng)工業(yè)界的需求。LR還有個(gè)非常方便實(shí)用的額外功能就是它并不會(huì)給出離散的分類(lèi)結(jié)果,而是給出該樣本屬于各個(gè)類(lèi)別的概率(多分類(lèi)的LR就是softmax),可以嘗試不同的截?cái)喾绞絹?lái)在評(píng)測(cè)指標(biāo)上進(jìn)行同一模型的性能評(píng)估,從而得到最好的截?cái)喾謹(jǐn)?shù)。LR不管是實(shí)現(xiàn)還是訓(xùn)練或者預(yù)測(cè)都非常高效,很輕松的handle大規(guī)模數(shù)據(jù)的問(wèn)題(同時(shí)LR也很適合online learning)。此外,LR對(duì)于樣本噪聲是robust的,對(duì)于“mild”的多重共線(xiàn)性問(wèn)題也不會(huì)受到太大影響,在特征的多重共線(xiàn)性很強(qiáng)的情況下,LR也可以通過(guò)L2正則化來(lái)應(yīng)對(duì)該問(wèn)題,雖然在有些情況下(想要稀疏特征)L2正則化并不太適用。

但是,當(dāng)我們有大量的特征以及部分丟失數(shù)據(jù)時(shí),LR就開(kāi)始費(fèi)勁了。太多的分類(lèi)變量(變量值是定性的,表現(xiàn)為互不相容的類(lèi)別或?qū)傩?,例如性別,年齡段(1,2,3,4,5)等)也會(huì)導(dǎo)致LR的性能較差(這個(gè)時(shí)候可以考慮做離散化,其實(shí)肯定是要做離散化的)。還有一種論調(diào)是LR使用所有的樣本數(shù)據(jù)用于訓(xùn)練,這引發(fā)了一個(gè)爭(zhēng)論:明顯是正例或者負(fù)例的樣本(這種樣本離分類(lèi)邊界較遠(yuǎn),不大會(huì)影響分類(lèi)的curve)不太應(yīng)該被考慮太多,模型理想情況是由分類(lèi)邊界的樣本決定的(類(lèi)似SVM的思想),如下圖。還有一個(gè)情況就是當(dāng)特征是非線(xiàn)性時(shí),需要做特征變換,這可能會(huì)導(dǎo)致特征維度急劇上升。下面是我認(rèn)為的LR的一些利弊:

LR的優(yōu)勢(shì):

對(duì)觀(guān)測(cè)樣本的概率值輸出

實(shí)現(xiàn)簡(jiǎn)單高效

多重共線(xiàn)性的問(wèn)題可以通過(guò)L2正則化來(lái)應(yīng)對(duì)

大量的工業(yè)界解決方案

支持online learning(個(gè)人補(bǔ)充)

LR的劣勢(shì)

特征空間太大時(shí)表現(xiàn)不太好

對(duì)于大量的分類(lèi)變量無(wú)能為力

對(duì)于非線(xiàn)性特征需要做特征變換

依賴(lài)所有的樣本數(shù)據(jù)(作者認(rèn)為這其實(shí)不是啥問(wèn)題。。)


接下來(lái)我們聊一下決策樹(shù)SVM

決策樹(shù)對(duì)于單調(diào)的特征變換是”indifferent”的,也就是說(shuō)特征的單調(diào)變換對(duì)于決策樹(shù)來(lái)說(shuō)不會(huì)產(chǎn)生任何影響(我本人最早使用決策樹(shù)時(shí)沒(méi)有理解內(nèi)部的機(jī)制,當(dāng)時(shí)還做了特征歸一化等工作,發(fā)現(xiàn)效果沒(méi)有任何變化),因?yàn)?a href='/map/jueceshu/' style='color:#000;font-size:inherit;'>決策樹(shù)是通過(guò)簡(jiǎn)單的使用矩形切分特征空間的,單調(diào)的特征變換只是做了特征空間的縮放而已。由于決策樹(shù)是的分支生成是使用離散的區(qū)間或類(lèi)別值的,所以對(duì)于不管多少分類(lèi)變量都能夠輕松適應(yīng),而且通過(guò)決策樹(shù)生成出來(lái)的模型很直觀(guān)而且容易解釋?zhuān)S著決策樹(shù)的分支解釋即可),而且決策樹(shù)也可以通過(guò)計(jì)算落到該葉子類(lèi)目的標(biāo)簽平均值獲得最終類(lèi)別的概率輸出。但是這就引發(fā)了決策樹(shù)的最大問(wèn)題:非常容易過(guò)擬合,我們很容易就會(huì)生成一個(gè)完美擬合訓(xùn)練集的模型,但是該模型在測(cè)試集合上的表現(xiàn)卻很poor,所以這個(gè)時(shí)候就需要剪枝以及交叉驗(yàn)證來(lái)保證模型不要過(guò)擬合了。

過(guò)擬合的問(wèn)題還可以通過(guò)使用隨機(jī)森林的方式來(lái)解決,隨機(jī)森林是對(duì)決策樹(shù)的一個(gè)很smart的擴(kuò)展,即使用不同的特征集合和樣本集合生成多棵決策樹(shù),讓它們來(lái)vote預(yù)測(cè)樣本的標(biāo)簽值。但是隨機(jī)森林并沒(méi)有像單純決策樹(shù)一樣的解釋能力。

Also by decision trees have forced interactions between variables , which makes them rather inefficient if most of your variables have no or very weak interactions. On the other hand this design also makes them rather less susceptible to multicollinearity.

這段是在說(shuō)決策樹(shù)也不會(huì)受到多重共線(xiàn)性的影響,但是我本人不是很理解

DT的優(yōu)勢(shì):

直觀(guān)的決策過(guò)程

能夠處理非線(xiàn)性特征

考慮了特征相關(guān)性

DT的劣勢(shì)

極易過(guò)擬合(使用RF可以一定程度防止過(guò)擬合,但是只要是模型就會(huì)過(guò)擬合

無(wú)法輸出score,只能給出直接的分類(lèi)結(jié)果


最后談一下支持向量機(jī)SVM,SVM最大的好處就是它只依賴(lài)于處于分類(lèi)邊界的樣本來(lái)構(gòu)建分類(lèi)面,可以處理非線(xiàn)性的特征,同時(shí),只依賴(lài)于決策邊界的樣本還可以讓他們能夠應(yīng)對(duì)”obvious”樣本缺失的問(wèn)題。由于SVM能夠輕松搞定大規(guī)模的特征空間所以在文本分析等特征維度較高的領(lǐng)域是比較好的選擇。SVM的可解釋性并不像決策樹(shù)一樣直觀(guān),如果使用非線(xiàn)性核函數(shù),SVM的計(jì)算代價(jià)會(huì)高很多。

SVM的優(yōu)勢(shì):

可以處理高維特征

使用核函數(shù)輕松應(yīng)對(duì)非線(xiàn)的性特征空間

分類(lèi)面不依賴(lài)于所有數(shù)據(jù)

SVM的劣勢(shì)

對(duì)于大量的觀(guān)測(cè)樣本,效率會(huì)很低找到一個(gè)“合適”的核函數(shù)還是很tricky的

我總結(jié)出了一個(gè)工作流程來(lái)讓大家參考如何決定使用哪個(gè)模型:
1. 使用LR試一把總歸不會(huì)錯(cuò)的,至少是個(gè)baseline
2. 看看決策樹(shù)相關(guān)模型例如隨機(jī)森林,GBDT有沒(méi)有帶來(lái)顯著的效果提升,即使最終沒(méi)有用這個(gè)模型,也可以用隨機(jī)森林的結(jié)果來(lái)去除噪聲特征
3. 如果你的特征空間和觀(guān)測(cè)樣本都很大,有足夠的計(jì)算資源和時(shí)間,試試SVM吧,

最后是這位老司機(jī)的一點(diǎn)人生經(jīng)驗(yàn):好的數(shù)據(jù)遠(yuǎn)比模型本身重要,記住一定要使用你在對(duì)應(yīng)領(lǐng)域的知識(shí)來(lái)進(jìn)行完備的特征工程的工作;然后還有一個(gè)有效途徑就是多使用ensembles,就是多個(gè)模型混合,給出結(jié)果。

個(gè)人想法:

本文加粗或者斜體字都是我自己的觀(guān)點(diǎn)和補(bǔ)充。本文提到了多重共線(xiàn)性和正則化,如果不知道這個(gè)的話(huà),是無(wú)法很好的理解這些內(nèi)容的,我后面會(huì)寫(xiě)文章總結(jié)介紹一下多重共線(xiàn)性以及正則化相關(guān)的內(nèi)容~

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }