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

熱線電話:13121318867

登錄
首頁精彩閱讀如何正確選擇線性回歸、邏輯回歸、決策等機器學(xué)習(xí)算法
如何正確選擇線性回歸、邏輯回歸、決策等機器學(xué)習(xí)算法
2020-05-27
收藏

機器學(xué)習(xí)既是藝術(shù)又是科學(xué)。但當(dāng)您查看機器學(xué)習(xí)算法時,沒有一種解決方案或一種適合所有情況的算法。有幾個因素會影響您選擇哪種機器學(xué)習(xí)

有些問題非常具體,需要采取獨特的方法。例如,如果您使用推薦系統(tǒng),這是一種非常常見的機器學(xué)習(xí)算法,解決的是非常具體的問題。而其他問題非常開放,則需要試錯的方法去解決。監(jiān)督學(xué)習(xí)、分類和回歸都是非常開放的。它們可以用于異常檢測,或者用來打造更通用的預(yù)測模型。。

我們在選擇機器學(xué)習(xí)算法時所做的一些決定,更多地取決于商業(yè)決策,而不是優(yōu)化或者算法的技術(shù)面。在下文中,我們將討論有助于縮小機器學(xué)習(xí)算法選擇范圍的一些因素。

數(shù)據(jù)科學(xué)過程

在開始審視不同的機器學(xué)習(xí)算法之前,你必須對你的數(shù)據(jù)、面臨的問題和局限有一個清晰的認識。

了解你的數(shù)據(jù)

在決定使用哪種算法時,必須考慮數(shù)據(jù)的類型和種類。一些算法只需要少量樣本,另一些則需要大量樣本。某些算法只能處理特定類型的數(shù)據(jù)。例如,樸素貝葉斯算法與分類數(shù)據(jù)相得益彰,但對缺失數(shù)據(jù)完全不敏感。

因此,您需要:

了解數(shù)據(jù)

  1. 查看匯總統(tǒng)計信息和可視化
  • 百分位數(shù)可以幫助確定大部分數(shù)據(jù)的范圍
  • 平均值和中位數(shù)可以描述集中趨勢
  • 相關(guān)性可以指明緊密的關(guān)系
  1. 可視化數(shù)據(jù)

清理數(shù)據(jù)

  1. 處理缺失值。缺失數(shù)據(jù)對某些模型的影響超過了對其他模型的影響。即便是對能夠處理缺失數(shù)據(jù)的模型來說,它們也可能受到影響(某些變量的缺失數(shù)據(jù)會導(dǎo)致糟糕的預(yù)測)。
  2. 選擇如何處理異常值
  • 異常值在多維數(shù)據(jù)中非常常見。
  • 一些模型對異常值的敏感性低于其他模型。通常,樹模型對異常值的存在不太敏感。但是,回歸模型或任何嘗試使用等式的模型肯定會受到異常值的影響。
  • 異常值可能是數(shù)據(jù)收集不正確的結(jié)果,也可能是真實的極端值。

3.數(shù)據(jù)是否需要匯總

增強數(shù)據(jù)

  1. 特征工程是從原始數(shù)據(jù)到建模可用數(shù)據(jù)的過程。這有幾個目的:
  • 使模型更易于解釋(比如分箱)
  • 抓取更復(fù)雜的關(guān)系(比如神經(jīng)網(wǎng)絡(luò)
  • 減少數(shù)據(jù)冗余和維度(比如主成分分析)
  • 重新縮放變量(比如標(biāo)準(zhǔn)化或正則化)

2.不同的模型可能對特征工程有不同的要求。一些要求已經(jīng)內(nèi)置到特征工程中。

問題歸類

下一步是對問題進行歸類。這分兩步。

  1. 按輸入數(shù)據(jù)分類:
  • 如果是標(biāo)簽數(shù)據(jù),那就是監(jiān)督學(xué)習(xí)問題。
  • 如果是無標(biāo)簽數(shù)據(jù),想找到結(jié)構(gòu),那就是非監(jiān)督學(xué)習(xí)問題。
  • 如果想通過與環(huán)境互動來優(yōu)化一個目標(biāo)函數(shù),那就是強化學(xué)習(xí)問題。

2.按輸出數(shù)據(jù)分類。

  • 如果模型的輸出數(shù)據(jù)是一個數(shù)字,那就是回歸問題。
  • 如果模型的輸出數(shù)據(jù)是一個類,那就是分類問題。
  • 如果模型的輸出數(shù)據(jù)是一組輸入數(shù)據(jù),那就是聚類問題。
  • 是不是想檢測一個異常?那就是異常檢測。

了解你的限制

  • **數(shù)據(jù)存儲能力如何?**根據(jù)系統(tǒng)的存儲能力,你可能無法存儲大量的分類/回歸模型或者待聚類的大量數(shù)據(jù)。例如,嵌入式系統(tǒng)就是這樣。
  • **是否必須迅速作出預(yù)測?**在實時應(yīng)用中,盡可能快地作出預(yù)測顯然非常重要。例如,在自動駕駛時,必須盡可能快地對道路標(biāo)志進行分類,以免發(fā)生事故。
  • **是否必須迅速學(xué)習(xí)?**在某些情況下,快速訓(xùn)練模型是必需的。有時,你需要在匆忙之中用不同的數(shù)據(jù)集迅速更新你的模型。

查找可用的算法

你已經(jīng)對自己的處境有了一個清晰的認識,接下來是識別適用的、利用手中工具可以實際執(zhí)行的算法。影響模型選擇的因素包括:

  • 模型是否符合商業(yè)目標(biāo)
  • 模型需要多大程度的預(yù)處理
  • 模型的準(zhǔn)確性
  • 模型的可解釋性
  • 模型的速度:建立模型需要多久,模型作出預(yù)測需要多久
  • 模型的擴展性

影響算法選擇的一個重要標(biāo)準(zhǔn)是模型的復(fù)雜性。一般來說,更復(fù)雜的模型:

  • 需要更多的特征來學(xué)習(xí)和預(yù)測(比如使用兩個特征VS使用10個特征來預(yù)測一個目標(biāo))
  • 需要更復(fù)雜的特征工程(比如使用多項式項、交互關(guān)系或主成分)
  • 需要更大的計算開銷(比如1顆決策樹VS由100顆決策樹組成的隨機森林

此外,同一種機器學(xué)習(xí)算法會因為參數(shù)的數(shù)量或者對某些超參數(shù)的選擇而變得更加復(fù)雜。例如:

  • 一個回歸模型可能擁有更多的特征或者多項式項和交互項。
  • 一顆決策樹可能擁有更大或更小的深度。

使同一算法更復(fù)雜,這會增加過擬合的幾率。

常用的機器學(xué)習(xí)算法

線性回歸

這可能是最簡單的機器學(xué)習(xí)算法。當(dāng)你想計算某個連續(xù)值的時候,可以使用回歸算法,而分類算法的輸出數(shù)據(jù)是類。所以,每當(dāng)你要預(yù)測一個正在進行當(dāng)中的過程的某個未來值時,你可以使用回歸算法。但線性回歸特征冗余(也就是存在多重共線性)的情況下會不穩(wěn)定。

線性回歸的幾個用例:

  • 是時候從一個地方到另一個地方
  • 預(yù)測特定產(chǎn)品在下個月的銷量
  • 血液酒精含量對身體協(xié)調(diào)性的影響
  • 預(yù)測每月禮品卡銷量和改善每年收入預(yù)期

邏輯回歸

邏輯回歸進行二元分類,所以輸出數(shù)據(jù)是二元的。這種算法把非線性函數(shù)(sigmoid)應(yīng)用于特征的線性組合,所以它是一個非常小的神經(jīng)網(wǎng)絡(luò)實例。

邏輯回歸提供了模型正則化的很多方法,不必擔(dān)心特征是否相關(guān),就像使用樸素貝葉斯算法的時候一樣。與決策樹支持向量機相比,邏輯回歸提供了出色的概率解釋,能輕易地用新數(shù)據(jù)來更新模型。如果想建立一個概率框架,或者希望以后將更多的訓(xùn)練數(shù)據(jù)迅速整合到模型中,可以使用邏輯回歸。這種算法還能幫助你了解預(yù)測背后的貢獻因素,不是一種黑箱方法。

邏輯回歸的幾個用例:

  • 預(yù)測客戶流失
  • 信用評分和欺詐檢測
  • 衡量營銷活動的效果

決策樹

人們很少使用單一的決策樹,但與其他很多決策樹結(jié)合起來,就能變成非常有效的算法,比如隨機森林梯度提升樹。

**決策樹可以輕松地處理特征的交互關(guān)系,并且是非參數(shù)化的,所以不必擔(dān)心離群值或者數(shù)據(jù)是否線性可分。**缺點是不支持在線學(xué)習(xí),所以在新樣本到來時,必須重建決策樹。另一個缺點是容易過擬合,但隨機森林和提升樹等集成方法可以克服這一缺點。決策樹還會占用很多內(nèi)存(特征越多,決策樹就可能越深、越大)。

決策樹是幫助你在幾個行動方案之間作出選擇的出色工具。

  • 投資決策
  • 客戶流失
  • 銀行貸款違約人
  • 自建VS購買決策
  • 銷售線索資質(zhì)

K-means

有時,你不知道任何標(biāo)簽,你的目標(biāo)是根據(jù)對象的特征賦予標(biāo)簽。這被稱為聚類任務(wù)。聚類算法的一個用例是根據(jù)某些共同屬性,將一大群用戶分組。

如果在你的問題陳述中,存在“這是如何組織的”等疑問,或者要求將某物分組或聚焦于特定的組,那么你應(yīng)該采用聚類算法。

K-Means的最大缺點,在于必須事先知道你的數(shù)據(jù)中將有多少個簇。因此,這可能需要進行很多的嘗試,來“猜測”簇的最佳K值。

主成分分析(PCA

PCA降維。有時,數(shù)據(jù)的特征很廣泛,可能彼此高度相關(guān),在數(shù)據(jù)量大的情況下,模型容易過擬合。這時可以使用PCA。

PCA大受歡迎的一個關(guān)鍵,在于除了樣本的低維表示以外,它還提供了變量的同步低維表示。同步的樣本和變量表示提供了以可視方式尋找一組樣本的特征變量。

支持向量機SVM

SVM是一種監(jiān)督學(xué)習(xí)方法,被廣泛用于模式識別和分類問題(前提是數(shù)據(jù)只有兩類)。

SVM的優(yōu)點是精度高,對避免過擬合有很好的理論保障,而且只要有了適當(dāng)?shù)暮撕瘮?shù),哪怕數(shù)據(jù)在基本特征空間中不是線性可分的,SVM也能運行良好。在解決高維空間是常態(tài)的文本分類問題時,SVM特別受歡迎。SVM的缺點是消耗大量內(nèi)存、難以解釋和不易調(diào)參。

SVM在現(xiàn)實中的幾個應(yīng)用:

  • 探測常見疾病(比如糖尿?。┗颊?
  • 手寫文字識別
  • 文本分類——按話題劃分的新聞報道
  • 股價預(yù)測

樸素貝葉斯

這是一種基于貝葉斯定理的分類方法,很容易構(gòu)建,對大數(shù)據(jù)集特別有用。除了具有簡單的優(yōu)點以外,樸素貝葉斯甚至好于某些高度復(fù)雜的分類方法。在CPU和內(nèi)存資源是限制因素的情況下,樸素貝葉斯也是很好的選擇。

樸素貝葉斯超級簡單,只需要做些算術(shù)即可。如果樸素貝葉斯關(guān)于條件獨立的假設(shè)確實成立,那么樸素貝葉斯分類器將比邏輯回歸等判別模型更快地收斂,因此你需要的訓(xùn)練數(shù)據(jù)更少。即使假設(shè)不成立,樸素貝葉斯分類器在實踐中仍然常常表現(xiàn)不俗。如果你需要的是快速簡單且表現(xiàn)出色,樸素貝葉斯將是不錯的選擇。其主要缺點是學(xué)習(xí)不了特征間的交互關(guān)系。

樸素貝葉斯在現(xiàn)實中的幾個應(yīng)用:

  • 情感分析和文本分類
  • 推薦系統(tǒng),比如Netflix和亞馬遜
  • 把電子郵件標(biāo)記為垃圾郵件或者非垃圾郵件
  • 面部識別

隨機森林

隨機森林包含多顆決策樹。它能解決擁有大數(shù)據(jù)集的回歸和分類問題,還有助于從眾多的輸入變量中識別最重要的變量。隨機森林可擴展到任意維數(shù),其表現(xiàn)通常是可接受的。遺傳算法可擴展到任何維度以及對數(shù)據(jù)本身知之甚少的任何數(shù)據(jù),微生物遺傳算法實現(xiàn)起來代價最低、最簡單。但隨機森林的學(xué)習(xí)速度可能很慢(取決于參數(shù)化),而且不可能迭代地改進生成模型。

隨機森林在現(xiàn)實中的幾個應(yīng)用:

  • 預(yù)測高風(fēng)險患者
  • 預(yù)測制造業(yè)的零件故障
  • 預(yù)測貸款違約人

神經(jīng)網(wǎng)絡(luò)

神經(jīng)網(wǎng)絡(luò)包含神經(jīng)元之間的連接權(quán)重。權(quán)重是平衡的,在學(xué)習(xí)數(shù)據(jù)點后繼續(xù)學(xué)習(xí)數(shù)據(jù)點。所有權(quán)重被訓(xùn)練后,神經(jīng)網(wǎng)絡(luò)可以用來預(yù)測類或者量,如果發(fā)生了一個新的輸入數(shù)據(jù)點的回歸。用神經(jīng)網(wǎng)絡(luò)可以訓(xùn)練極其復(fù)雜的模型,它們能作為黑箱,不必在訓(xùn)練模型之前進行不可預(yù)測的、復(fù)雜的特征工程。再加上“深度方法”,即便是更加不可預(yù)測的模型也能被用來實現(xiàn)新的可能性。例如,利用深度神經(jīng)網(wǎng)絡(luò),對象識別近期取得巨大進步。應(yīng)用于非監(jiān)督學(xué)習(xí)任務(wù),比如特征提取,深度學(xué)習(xí)還能從原始圖像或語音中提取特征,不需要太多的人類干預(yù)。

另一方面,神經(jīng)網(wǎng)絡(luò)非常難以解釋說明,參數(shù)化極其令人頭疼,而且非常耗費資源和內(nèi)存。

Scikit速查表

scikit-learn提供了一張非常深入、清晰易懂的流程圖,幫助你選擇適當(dāng)?shù)乃惴?,用起來非常方便?

總結(jié)

通常來說,你可以參考以上內(nèi)容,縮小算法選擇的范圍,但一開始很難知道哪個算法最適合你。最好是迭代篩選。把你的數(shù)據(jù)輸入你認為可能是佳選擇的機器學(xué)習(xí)算法,并行或依次運行這些算法,最后評估算法的表現(xiàn),選出最好的那個。

最后,為現(xiàn)實問題設(shè)計恰當(dāng)?shù)慕鉀Q方案不僅僅是一個應(yīng)用數(shù)學(xué)問題,還需要考慮商業(yè)需求、規(guī)章制度、利益相關(guān)者的關(guān)切和相當(dāng)多的專業(yè)知識。在解決一個機器問題時,結(jié)合和平衡這幾個方面至關(guān)重要。能做到這一點的人才能創(chuàng)造最大的價值。

原文鏈接:https://hackernoon.com/choosing-the-right-machine-learning-algorithm-68126944ce1f

數(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); }