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

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)挖掘知識點串燒:邏輯回歸
數(shù)據(jù)挖掘知識點串燒:邏輯回歸
2019-09-12
收藏
<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>知識點串燒:<a href='/map/luojihuigui/' style='color:#000;font-size:inherit;'>邏輯回歸</a>

作者 | DD-Kylin

來源 | 木東居士

0x00 前言

我們知道,回歸模型可以解決因變量為連續(xù)變量的問題,但是,如果因變量為分類變量的話,用回歸的方法就行不通了。這個時候我們就得選擇用其他的分類方法了,如決策樹、隨機森林SVM等。而本篇文章要說的邏輯回歸也是一種很好的分類方法。我們需要明確的一點是,邏輯回歸雖然是“回歸”,但是它本質(zhì)上是一種二分類算法,用來處理二分類問題的。

0x01 走近邏輯回歸

問題1:你能說說什么是邏輯回歸嗎?

回答:邏輯回歸是一種二分類算法,一般用來解決二分類問題,但是它也可以用來解決多分類問題,當(dāng)使用它來解決多分類問題的時候,由于邏輯回歸的特點,我們一般將多分類問題轉(zhuǎn)化為二分類問題。這里多分類問題的轉(zhuǎn)化有三種拆分策略,分別是一對一、一對其余和多對多。通過多分類拆分策略,我們可以使用邏輯回歸來進行多分類問題的預(yù)測。但是這種方法我們一般不用,因為多分類問題我們可以使用隨機森林樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)這些更好的算法進行預(yù)測。

<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>知識點串燒:<a href='/map/luojihuigui/' style='color:#000;font-size:inherit;'>邏輯回歸</a>

問題2:邏輯回歸是二分類算法,那它究竟是如何進行分類的?

回答:邏輯回歸是通過判斷數(shù)據(jù)屬于某一類的概率值大小來決定要將該數(shù)據(jù)判為哪一類。這里需要引入sigmoid函數(shù)(Y = 1/(1+e-z) , 其中z = wTx+b

),而sigmoid函數(shù)有一個很特殊的性質(zhì),那就是它可以將任意的輸入值都轉(zhuǎn)為(0,1)上的輸出。邏輯回歸通過sigmoid函數(shù)來逼近后驗概率p(y =1 |x),一般地,會將sigmoid函數(shù)輸出值大于0.5的判為正例(即1),將輸出值小于0.5的判為反例(即0)。

sigmoid函數(shù)的圖像如下:

<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>知識點串燒:<a href='/map/luojihuigui/' style='color:#000;font-size:inherit;'>邏輯回歸</a>

0x02 再會邏輯回歸

問題1:邏輯回歸進行分類時的閾值是一定的嗎?可不可以人為地進行調(diào)整呢?

回答:不一定??梢酝ㄟ^人為地進行修改的。邏輯回歸輸出的是概率,即將Sigmoid函數(shù)輸出的y視為正例的可能性,我們可以自定義分類閾值來改變分類的結(jié)果。

舉個栗子,在郵件分類中,如果sigmoid函數(shù)輸出某個郵件屬于垃圾郵件的y值是0.6,屬于有用郵件的y值是0.4。即P (y = 垃圾郵件|已知條件) = 0.6,

相對應(yīng)的 p(y = 有用郵件|已知條件) = 0.4。

在本例中,如果是將p>0.5視為垃圾郵件,那么判這封郵件為垃圾郵件;如果是將p>0.7視為垃圾郵件,那么會判這封郵件為有用郵件。一般情況下默認(rèn)數(shù)據(jù)屬于哪一類的可能性較大就將數(shù)據(jù)判為哪一類,但是由于邏輯回歸輸出的是概率值的這一特性,所以我們可以根據(jù)具體的情況自定義閾值來得到更切合實際應(yīng)用場景的模型。

問題2:邏輯回歸中的極大似然法是用來做什么的?

回答:因為sigmoid函數(shù)中,z = wTx+b,其中 w和b都是未知的,使用極大似然估計法是為了求出w和b使得每個樣本屬于其真實標(biāo)記的概率值越大越好。 但是最大化似然函數(shù)的求解有點困難,所以將其轉(zhuǎn)為求解最小值,即在求得的目標(biāo)似然函數(shù)前面加上一個負(fù)號轉(zhuǎn)為求解最小值。由于改變符號后的目標(biāo)函數(shù)是高階可導(dǎo)連續(xù)凸函數(shù),于是可以使用梯度下降法、牛頓法等來求解它的最小值,通過函數(shù)的轉(zhuǎn)化就可以較為輕松地求出w和b,進而也就能知道sigmoid函數(shù)的輸出了。

注:邏輯回歸是一種判別模型

<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>知識點串燒:<a href='/map/luojihuigui/' style='color:#000;font-size:inherit;'>邏輯回歸</a>

問題3:邏輯回歸有哪些應(yīng)用?

回答:邏輯回歸的應(yīng)用其實跟它的算法特點有很大的關(guān)系。由于邏輯回歸是一種性能很好的二分類算法。所以邏輯回歸幾乎可以應(yīng)用于任何需要二分類的問題。如癌癥檢測、垃圾郵件分類、廣告點擊預(yù)測、醫(yī)療效果分析等。

0x03 優(yōu)點VS缺點

問題:邏輯回歸的優(yōu)點是什么?缺點又是什么?

回答:

邏輯回歸的優(yōu)點分別是:

  • 1、形式簡單,模型的可解釋性非常好。從特征的權(quán)重可以看到不同的特征對結(jié)果的影響程度。如果特征的權(quán)重較大,則說明這個特征對數(shù)據(jù)結(jié)果的影響程度較大。
  • 2、它不是僅僅預(yù)測出類別,還能知道近似概率預(yù)測,這對許多需利用概率輔助決策的任務(wù)很有用。
  • 3、邏輯回歸求解的目標(biāo)函數(shù)是任意可導(dǎo)的凸函數(shù),有很好的數(shù)學(xué)性質(zhì),現(xiàn)有的許多優(yōu)化算法都能直接用于求解最優(yōu)值

邏輯回歸的缺點分別是:

  • 1、很難處理數(shù)據(jù)不平衡的問題。舉個栗子,如果某個平臺用戶不下單與用戶下單的數(shù)量比為10000:50,那么這個數(shù)據(jù)是一個類別很不平衡的數(shù)據(jù),機器可以把所有的樣本都預(yù)測為用戶不下單,這樣也可以使損失函數(shù)變得很小。但是作為一個分類器,它對正負(fù)樣本的分類就顯得很不友好了。
  • 2、邏輯回歸本身無法篩選特征,如果特征高度相關(guān),會拉低訓(xùn)練的速度。而特征數(shù)量過多的時候,則會造成過擬合現(xiàn)象。
  • 3、邏輯回歸處理非線性的問題較為麻煩。邏輯回歸在不引入其它方法的情況下,只能處理線性可分的問題或者說是二分類的問題。
<a href='/map/shujuwajue/' style='color:#000;font-size:inherit;'>數(shù)據(jù)挖掘</a>知識點串燒:<a href='/map/luojihuigui/' style='color:#000;font-size:inherit;'>邏輯回歸</a>

0x04 總結(jié)

關(guān)于邏輯回歸,我一直覺得它是一個很簡單但是很強大的算法,直到在寫這篇文章的時候,才發(fā)現(xiàn)原來它有那么多知識點需要理解。本文也只是起到一個拋磚引玉的作用,如果大家想了解更多的話,建議各位可以去看一下書,練一下真實的案例,肯定可以收獲更多的理解!下面留幾個討論題:

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

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

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } 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(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".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 = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+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); }