<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          機(jī)器學(xué)習(xí)必學(xué)十大算法

          共 4619字,需瀏覽 10分鐘

           ·

          2021-10-02 20:23

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          本文介紹了 10 大常用機(jī)器學(xué)習(xí)算法,包括線性回歸、Logistic 回歸、線性判別分析、樸素貝葉斯、KNN、隨機(jī)森林等。

          1. 線性回歸


          在統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域,線性回歸可能是最廣為人知也最易理解的算法之一。


          預(yù)測(cè)建模主要關(guān)注的是在犧牲可解釋性的情況下,盡可能最小化模型誤差或做出最準(zhǔn)確的預(yù)測(cè)。我們將借鑒、重用來自許多其它領(lǐng)域的算法(包括統(tǒng)計(jì)學(xué))來實(shí)現(xiàn)這些目標(biāo)。


          線性回歸模型被表示為一個(gè)方程式,它為輸入變量找到特定的權(quán)重(即系數(shù) B),進(jìn)而描述一條最佳擬合了輸入變量(x)和輸出變量(y)之間關(guān)系的直線。


          線性回歸


          例如:y = B0 + B1 * x


          我們將在給定輸入值 x 的條件下預(yù)測(cè) y,線性回歸學(xué)習(xí)算法的目的是找到系數(shù) B0 和 B1 的值。


          我們可以使用不同的技術(shù)來從數(shù)據(jù)中學(xué)習(xí)線性回歸模型,例如普通最小二乘法的線性代數(shù)解和梯度下降優(yōu)化。


          線性回歸大約有 200 多年的歷史,并已被廣泛地研究。在使用此類技術(shù)時(shí),有一些很好的經(jīng)驗(yàn)規(guī)則:我們可以刪除非常類似(相關(guān))的變量,并盡可能移除數(shù)據(jù)中的噪聲。線性回歸是一種運(yùn)算速度很快的簡(jiǎn)單技術(shù),也是一種適合初學(xué)者嘗試的經(jīng)典算法。


          2. Logistic 回歸


          Logistic 回歸是機(jī)器學(xué)習(xí)從統(tǒng)計(jì)學(xué)領(lǐng)域借鑒過來的另一種技術(shù)。它是二分類問題的首選方法。


          像線性回歸一樣,Logistic 回歸的目的也是找到每個(gè)輸入變量的權(quán)重系數(shù)值。但不同的是,Logistic 回歸的輸出預(yù)測(cè)結(jié)果是通過一個(gè)叫作「logistic 函數(shù)」的非線性函數(shù)變換而來的。


          logistic 函數(shù)的形狀看起來像一個(gè)大的「S」,它會(huì)把任何值轉(zhuǎn)換至 0-1 的區(qū)間內(nèi)。這十分有用,因?yàn)槲覀兛梢园岩粋€(gè)規(guī)則應(yīng)用于 logistic 函數(shù)的輸出,從而得到 0-1 區(qū)間內(nèi)的捕捉值(例如,將閾值設(shè)置為 0.5,則如果函數(shù)值小于 0.5,則輸出值為 1),并預(yù)測(cè)類別的值。


          Logistic 回歸


          由于模型的學(xué)習(xí)方式,Logistic 回歸的預(yù)測(cè)結(jié)果也可以用作給定數(shù)據(jù)實(shí)例屬于類 0 或類 1 的概率。這對(duì)于需要為預(yù)測(cè)結(jié)果提供更多理論依據(jù)的問題非常有用。


          與線性回歸類似,當(dāng)刪除與輸出變量無關(guān)以及彼此之間非常相似(相關(guān))的屬性后,Logistic 回歸的效果更好。該模型學(xué)習(xí)速度快,對(duì)二分類問題十分有效。


          3. 線性判別分析


          Logistic 回歸是一種傳統(tǒng)的分類算法,它的使用場(chǎng)景僅限于二分類問題。如果你有兩個(gè)以上的類,那么線性判別分析算法(LDA)是首選的線性分類技術(shù)。


          LDA 的表示方法非常直接。它包含為每個(gè)類計(jì)算的數(shù)據(jù)統(tǒng)計(jì)屬性。對(duì)于單個(gè)輸入變量而言,這些屬性包括:


          • 每個(gè)類的均值。

          • 所有類的方差。


          線性判別分析


          預(yù)測(cè)結(jié)果是通過計(jì)算每個(gè)類的判別值、并將類別預(yù)測(cè)為判別值最大的類而得出的。該技術(shù)假設(shè)數(shù)據(jù)符合高斯分布(鐘形曲線),因此最好預(yù)先從數(shù)據(jù)中刪除異常值。LDA 是一種簡(jiǎn)單而有效的分類預(yù)測(cè)建模方法。


          4. 分類和回歸樹


          決策樹是一類重要的機(jī)器學(xué)習(xí)預(yù)測(cè)建模算法。


          決策樹可以被表示為一棵二叉樹。這種二叉樹與算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)中的二叉樹是一樣的,沒有什么特別。每個(gè)節(jié)點(diǎn)都代表一個(gè)輸入變量(x)和一個(gè)基于該變量的分叉點(diǎn)(假設(shè)該變量是數(shù)值型的)。


          決策樹


          決策樹的葉子結(jié)點(diǎn)包含一個(gè)用于做出預(yù)測(cè)的輸出變量(y)。預(yù)測(cè)結(jié)果是通過在樹的各個(gè)分叉路徑上游走,直到到達(dá)一個(gè)葉子結(jié)點(diǎn)并輸出該葉子結(jié)點(diǎn)的類別值而得出。


          決策樹的學(xué)習(xí)速度很快,做出預(yù)測(cè)的速度也很快。它們?cè)诖罅繂栴}中往往都很準(zhǔn)確,而且不需要為數(shù)據(jù)做任何特殊的預(yù)處理準(zhǔn)備。


          5. 樸素貝葉斯


          樸素貝葉斯是一種簡(jiǎn)單而強(qiáng)大的預(yù)測(cè)建模算法。


          該模型由兩類可直接從訓(xùn)練數(shù)據(jù)中計(jì)算出來的概率組成:1)數(shù)據(jù)屬于每一類的概率;2)給定每個(gè) x 值,數(shù)據(jù)從屬于每個(gè)類的條件概率。一旦這兩個(gè)概率被計(jì)算出來,就可以使用貝葉斯定理,用概率模型對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)。當(dāng)你的數(shù)據(jù)是實(shí)值的時(shí)候,通常假設(shè)數(shù)據(jù)符合高斯分布(鐘形曲線),這樣你就可以很容易地估計(jì)這些概率。


          貝葉斯定理


          樸素貝葉斯之所以被稱為「樸素」,是因?yàn)樗僭O(shè)每個(gè)輸入變量相互之間是獨(dú)立的。這是一種很強(qiáng)的、對(duì)于真實(shí)數(shù)據(jù)并不現(xiàn)實(shí)的假設(shè)。不過,該算法在大量的復(fù)雜問題中十分有效。


          6. K 最近鄰算法


          K 最近鄰(KNN)算法是非常簡(jiǎn)單而有效的。KNN 的模型表示就是整個(gè)訓(xùn)練數(shù)據(jù)集。這很簡(jiǎn)單吧?


          對(duì)新數(shù)據(jù)點(diǎn)的預(yù)測(cè)結(jié)果是通過在整個(gè)訓(xùn)練集上搜索與該數(shù)據(jù)點(diǎn)最相似的 K 個(gè)實(shí)例(近鄰)并且總結(jié)這 K 個(gè)實(shí)例的輸出變量而得出的。對(duì)于回歸問題來說,預(yù)測(cè)結(jié)果可能就是輸出變量的均值;而對(duì)于分類問題來說,預(yù)測(cè)結(jié)果可能是眾數(shù)(或最常見的)的類的值。


          關(guān)鍵之處在于如何判定數(shù)據(jù)實(shí)例之間的相似程度。如果你的數(shù)據(jù)特征尺度相同(例如,都以英寸為單位),那么最簡(jiǎn)單的度量技術(shù)就是使用歐幾里得距離,你可以根據(jù)輸入變量之間的差異直接計(jì)算出該值。


          K 最近鄰


          KNN 可能需要大量的內(nèi)存或空間來存儲(chǔ)所有數(shù)據(jù),但只有在需要預(yù)測(cè)時(shí)才實(shí)時(shí)執(zhí)行計(jì)算(或?qū)W習(xí))。隨著時(shí)間的推移,你還可以更新并管理訓(xùn)練實(shí)例,以保證預(yù)測(cè)的準(zhǔn)確率。


          使用距離或接近程度的度量方法可能會(huì)在維度非常高的情況下(有許多輸入變量)崩潰,這可能會(huì)對(duì)算法在你的問題上的性能產(chǎn)生負(fù)面影響。這就是所謂的維數(shù)災(zāi)難。這告訴我們,應(yīng)該僅僅使用那些與預(yù)測(cè)輸出變量最相關(guān)的輸入變量。


          7. 學(xué)習(xí)向量量化


          KNN 算法的一個(gè)缺點(diǎn)是,你需要處理整個(gè)訓(xùn)練數(shù)據(jù)集。而學(xué)習(xí)向量量化算法(LVQ)允許選擇所需訓(xùn)練實(shí)例數(shù)量,并確切地學(xué)習(xí)這些實(shí)例。


          學(xué)習(xí)向量量化


          LVQ 的表示是一組碼本向量。它們?cè)陂_始時(shí)是隨機(jī)選擇的,經(jīng)過多輪學(xué)習(xí)算法的迭代后,最終對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行最好的總結(jié)。通過學(xué)習(xí),碼本向量可被用來像 K 最近鄰那樣執(zhí)行預(yù)測(cè)。通過計(jì)算每個(gè)碼本向量與新數(shù)據(jù)實(shí)例之間的距離,可以找到最相似的鄰居(最匹配的碼本向量)。然后返回最匹配單元的類別值(分類)或?qū)嵵担ɑ貧w)作為預(yù)測(cè)結(jié)果。如果將數(shù)據(jù)重新放縮放到相同的范圍中(例如 0 到 1 之間),就可以獲得最佳的預(yù)測(cè)結(jié)果。


          如果你發(fā)現(xiàn) KNN 能夠在你的數(shù)據(jù)集上得到不錯(cuò)的預(yù)測(cè)結(jié)果,那么不妨試一試 LVQ 技術(shù),它可以減少對(duì)內(nèi)存空間的需求,不需要像 KNN 那樣存儲(chǔ)整個(gè)訓(xùn)練數(shù)據(jù)集。


          8. 支持向量機(jī)


          支持向量機(jī)(SVM)可能是目前最流行、被討論地最多的機(jī)器學(xué)習(xí)算法之一。


          超平面是一條對(duì)輸入變量空間進(jìn)行劃分的「直線」。支持向量機(jī)會(huì)選出一個(gè)將輸入變量空間中的點(diǎn)按類(類 0 或類 1)進(jìn)行最佳分割的超平面。在二維空間中,你可以把他想象成一條直線,假設(shè)所有輸入點(diǎn)都可以被這條直線完全地劃分開來。SVM 學(xué)習(xí)算法旨在尋找最終通過超平面得到最佳類別分割的系數(shù)。


          支持向量機(jī)


          超平面與最近數(shù)據(jù)點(diǎn)之間的距離叫作間隔(margin)。能夠?qū)蓚€(gè)類分開的最佳超平面是具有最大間隔的直線。只有這些點(diǎn)與超平面的定義和分類器的構(gòu)建有關(guān),這些點(diǎn)叫作支持向量,它們支持或定義超平面。在實(shí)際應(yīng)用中,人們采用一種優(yōu)化算法來尋找使間隔最大化的系數(shù)值。


          支持向量機(jī)可能是目前可以直接使用的最強(qiáng)大的分類器之一,值得你在自己的數(shù)據(jù)集上試一試。


          9. 袋裝法和隨機(jī)森林


          隨機(jī)森林是最流行也最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一,它是一種集成機(jī)器學(xué)習(xí)算法。


          自助法是一種從數(shù)據(jù)樣本中估計(jì)某個(gè)量(例如平均值)的強(qiáng)大統(tǒng)計(jì)學(xué)方法。你需要在數(shù)據(jù)中取出大量的樣本,計(jì)算均值,然后對(duì)每次取樣計(jì)算出的均值再取平均,從而得到對(duì)所有數(shù)據(jù)的真實(shí)均值更好的估計(jì)。


          Bagging 使用了相同的方法。但是最常見的做法是使用決策樹,而不是對(duì)整個(gè)統(tǒng)計(jì)模型進(jìn)行估計(jì)。Bagging 會(huì)在訓(xùn)練數(shù)據(jù)中取多個(gè)樣本,然后為每個(gè)數(shù)據(jù)樣本構(gòu)建模型。當(dāng)你需要對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí),每個(gè)模型都會(huì)產(chǎn)生一個(gè)預(yù)測(cè)結(jié)果,Bagging 會(huì)對(duì)所有模型的預(yù)測(cè)結(jié)果取平均,以便更好地估計(jì)真實(shí)的輸出值。


          隨機(jī)森林


          隨機(jī)森林是這種方法的改進(jìn),它會(huì)創(chuàng)建決策樹,這樣就不用選擇最優(yōu)分割點(diǎn),而是通過引入隨機(jī)性來進(jìn)行次優(yōu)分割。


          因此,為每個(gè)數(shù)據(jù)樣本創(chuàng)建的模型比在其它情況下創(chuàng)建的模型更加獨(dú)特,但是這種獨(dú)特的方式仍能保證較高的準(zhǔn)確率。結(jié)合它們的預(yù)測(cè)結(jié)果可以更好地估計(jì)真實(shí)的輸出值。


          如果你使用具有高方差的算法(例如決策樹)獲得了良好的結(jié)果,那么你通常可以通過對(duì)該算法執(zhí)行 Bagging 獲得更好的結(jié)果。


          10. Boosting 和 AdaBoost


          Boosting 是一種試圖利用大量弱分類器創(chuàng)建一個(gè)強(qiáng)分類器的集成技術(shù)。要實(shí)現(xiàn) Boosting 方法,首先你需要利用訓(xùn)練數(shù)據(jù)構(gòu)建一個(gè)模型,然后創(chuàng)建第二個(gè)模型(它企圖修正第一個(gè)模型的誤差)。直到最后模型能夠?qū)τ?xùn)練集進(jìn)行完美地預(yù)測(cè)或加入的模型數(shù)量已達(dá)上限,我們才停止加入新的模型。


          AdaBoost 是第一個(gè)為二分類問題開發(fā)的真正成功的 Boosting 算法。它是人們?nèi)腴T理解 Boosting 的最佳起點(diǎn)。當(dāng)下的 Boosting 方法建立在 AdaBoost 基礎(chǔ)之上,最著名的就是隨機(jī)梯度提升機(jī)。


          AdaBoost


          AdaBoost 使用淺層決策樹。在創(chuàng)建第一棵樹之后,使用該樹在每個(gè)訓(xùn)練實(shí)例上的性能來衡量下一棵樹應(yīng)該對(duì)每個(gè)訓(xùn)練實(shí)例賦予多少權(quán)重。難以預(yù)測(cè)的訓(xùn)練數(shù)據(jù)權(quán)重會(huì)增大,而易于預(yù)測(cè)的實(shí)例權(quán)重會(huì)減小。模型是一個(gè)接一個(gè)依次創(chuàng)建的,每個(gè)模型都會(huì)更新訓(xùn)練實(shí)例權(quán)重,影響序列中下一棵樹的學(xué)習(xí)。在構(gòu)建所有的樹之后,我們就可以對(duì)新的數(shù)據(jù)執(zhí)行預(yù)測(cè),并根據(jù)每棵樹在訓(xùn)練數(shù)據(jù)上的準(zhǔn)確率來對(duì)其性能進(jìn)行加權(quán)。


          由于算法在糾正錯(cuò)誤上投入了如此多的精力,因此刪除數(shù)據(jù)中的異常值在數(shù)據(jù)清洗過程中是非常重要的。


          好消息,小白學(xué)視覺團(tuán)隊(duì)的知識(shí)星球開通啦,為了感謝大家的支持與厚愛,團(tuán)隊(duì)決定將價(jià)值149元的知識(shí)星球現(xiàn)時(shí)免費(fèi)加入。各位小伙伴們要抓住機(jī)會(huì)哦!


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线无码视频 | 91极品视觉盛宴 | 亚洲九九九九九 | 亚洲性爱小说 | 爱爱视频片段日韩 |