日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

新手入门机器学习十大算法

發(fā)布時(shí)間:2024/4/24 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 新手入门机器学习十大算法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

新手入門機(jī)器學(xué)習(xí)十大算法

2018年9月17日?磐石?TensorFlowNews,?機(jī)器學(xué)習(xí)?0

在機(jī)器學(xué)習(xí)的世界中,有一種被稱為“無免費(fèi)午餐”的定理。 它意在說明沒有哪種算法能夠完美地解決每個(gè)問題,特別是對(duì)于監(jiān)督學(xué)習(xí)問題。例如,神經(jīng)網(wǎng)絡(luò)不會(huì)總是比決策樹要好,反之亦然。往往是有許多因素在起作用(如:數(shù)據(jù)集的大小、結(jié)構(gòu)),共同決定了最后的結(jié)果。因此,我們應(yīng)該針對(duì)具體的問題嘗試許多不同的算法,并選取一部分?jǐn)?shù)據(jù)作為“測(cè)試集”來評(píng)估性能,最后選擇性能最好的算法。當(dāng)然,我們選取的算法必須要適合我們的問題,這也是完成機(jī)器學(xué)習(xí)任務(wù)的關(guān)鍵所在。

然而,我們通過有監(jiān)督機(jī)器學(xué)習(xí)進(jìn)行建模必須遵守一個(gè)基本的原則:通過找到輸入變量X到輸出變量Y的映射關(guān)系:Y = f(X),最終學(xué)習(xí)得到一個(gè)目標(biāo)函數(shù)f。這樣就可以針對(duì)新的輸入數(shù)據(jù)X通過目標(biāo)函數(shù)f預(yù)測(cè)出新的輸出變量Y。在機(jī)器學(xué)習(xí)中,這稱為預(yù)測(cè)建模或預(yù)測(cè)分析。

一?、線性回歸(Linear Regression)

線性回歸可能是統(tǒng)計(jì)學(xué)和機(jī)器學(xué)習(xí)中最知名且最易于理解的算法之一。線性回歸是指在輸入變量(x)和輸出變量(y)之間找到一種最佳的擬合關(guān)系,往往這種關(guān)系是通過查找被稱為系數(shù)(B)的輸入變量的特定權(quán)重來描述的。例如:y = B0 + B1 * x。即:我們將在給定輸入x的情況下預(yù)測(cè)y,并且線性回歸學(xué)習(xí)算法的目標(biāo)是找到系數(shù)B0和B1的值。我們可以使用不同的方法從數(shù)據(jù)中學(xué)習(xí)線性回歸模型,例如最小二乘法和梯度下降法。

?

線性回歸已經(jīng)存在了200多年,并且已經(jīng)被廣泛研究。使用該方法時(shí),我的一些經(jīng)驗(yàn)是刪除非常相似的變量,并盡可能消除數(shù)據(jù)中的噪聲。總而言之,線性回歸是一種快速而簡單的算法,非常適合大家作為入門的第一種算法來嘗試。

二、邏輯回歸(Logistic Regression)

邏輯回歸是機(jī)器學(xué)習(xí)從統(tǒng)計(jì)學(xué)領(lǐng)域借鑒過來的另一種方法。它是二分類問題的首選方法(兩個(gè)類值的問題),也是學(xué)習(xí)二元分類問題并快速見面最有效的方法。邏輯回歸就像線性回歸一樣,目標(biāo)是找到每個(gè)輸入變量對(duì)應(yīng)的相關(guān)系數(shù)。與線性回歸不同的是,它使用了一種稱為“邏輯函數(shù)”的非線性函數(shù)來轉(zhuǎn)換輸出的預(yù)測(cè)。

邏輯函數(shù)看起來像一個(gè)大S,并可以將任何值轉(zhuǎn)換為0到1的范圍。這點(diǎn)非常的重要,因?yàn)槲覀兛梢詫⑦壿嫼瘮?shù)的輸出控制到0和1來預(yù)測(cè)一個(gè)類值。此外,同線性回歸一樣,我們可以通過刪除與輸出變量無關(guān)的屬性以及彼此非常相似的屬性,來使模型的效果更好。

?

三、線性判別分析(Linear Discriminant Analysis)

邏輯回歸是一種僅限于兩分類問題的分類算法。但如果我們有兩個(gè)以上的類別,那么線性判別分析算法是首選的線性分類算法。LDA的表示是非常直接的:它由每個(gè)類計(jì)算的數(shù)據(jù)所統(tǒng)計(jì)的屬性組成。此外對(duì)于單個(gè)輸入變量,它包括:每個(gè)類別的平均值以及所有類別計(jì)算的方差。

LDA是通過計(jì)算每個(gè)類的判別值并對(duì)具有最大值的類進(jìn)行的預(yù)測(cè)。該技術(shù)的前提是假設(shè)數(shù)據(jù)具有高斯分布,因此我們需要事先從數(shù)據(jù)中刪除異常值。LDA也是分類預(yù)測(cè)建模問題的一種簡單而強(qiáng)大的算法。

?

四、決策樹模型(Classification and Regression Trees)

決策樹是機(jī)器學(xué)習(xí)中預(yù)測(cè)建模一種重要的算法。如下圖所示,決策樹模型的表示是二叉樹,和算法和數(shù)據(jù)結(jié)構(gòu)中的二叉樹一樣,每個(gè)節(jié)點(diǎn)表示一個(gè)輸入變量(x)和該變量上的一個(gè)分割點(diǎn)(假設(shè)變量是數(shù)字)。

樹的葉節(jié)點(diǎn)包含用于進(jìn)行預(yù)測(cè)的輸出變量(y)。預(yù)測(cè)過程是通過遍歷樹的分裂直到到達(dá)葉節(jié)點(diǎn)并輸出該葉節(jié)點(diǎn)處的類值。決策樹學(xué)模型的優(yōu)勢(shì)在于學(xué)習(xí)以及預(yù)測(cè)的速度都非常快。并且樹模型適用于各種各樣的問題,不需要對(duì)數(shù)據(jù)進(jìn)行任何特殊的處理。

?

五、樸素貝葉斯(?Naive Bayes)

Naive Bayes是一種簡單但非常強(qiáng)大的預(yù)測(cè)建模算法。該模型由兩種類型的概率組成,可以直接根據(jù)我們的訓(xùn)練數(shù)據(jù)進(jìn)行計(jì)算:(1)每個(gè)類的概率;(2)每個(gè)類給定每個(gè)x值的條件概率。一旦計(jì)算出來,概率模型可利用貝葉斯定理對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)。當(dāng)我們的數(shù)據(jù)是實(shí)數(shù)時(shí),通常會(huì)采用高斯分布,這樣就可以輕松估計(jì)這些概率了。

樸素貝葉斯之所以被稱為“naive”,是因?yàn)樗僭O(shè)每個(gè)輸入變量是獨(dú)立的。現(xiàn)實(shí)這是一個(gè)強(qiáng)有力的假設(shè),對(duì)于實(shí)際數(shù)據(jù)是不成立的,但該技術(shù)對(duì)于大范圍的復(fù)雜問題是非常有效。

?

六、K近鄰算法(K-Nearest Neighbors)

KNN算法非常的簡單、有效。KNN的模型表示是整個(gè)訓(xùn)練數(shù)據(jù)集。KNN算法的原理是通過搜索整個(gè)訓(xùn)練集來尋找K個(gè)最相似的實(shí)例,并總結(jié)這K個(gè)實(shí)例的輸出變量,進(jìn)而對(duì)新的數(shù)據(jù)點(diǎn)進(jìn)行預(yù)測(cè)。對(duì)于回歸問題,可能是平均輸出變量;對(duì)于分類問題,可能是常見的類值。

KNN的訣竅在于如何確定數(shù)據(jù)實(shí)例之間的相似性。 如果我們的屬性都具有相同的比例,則最簡單的方法是使用歐幾里德距離,我們可以根據(jù)每個(gè)輸入變量之間的差異直接計(jì)算該數(shù)字。

此外,KNN可能需要大量的內(nèi)存或空間來存儲(chǔ)所有數(shù)據(jù),但只有在需要預(yù)測(cè)時(shí)才會(huì)執(zhí)行計(jì)算的操作。所以,我們還可以隨著時(shí)間的推移更新和調(diào)整訓(xùn)練實(shí)例,以保持預(yù)測(cè)效果更加準(zhǔn)確。

?

七、學(xué)習(xí)矢量量化(Learning Vector Quantization)

K近鄰的缺點(diǎn)是我們需要等候整個(gè)訓(xùn)練數(shù)據(jù)集。而學(xué)習(xí)矢量量化算法(簡稱LVQ)是一種神經(jīng)網(wǎng)絡(luò)算法,允許我們選擇要掛起的訓(xùn)練實(shí)例數(shù)量,并可以準(zhǔn)確地學(xué)習(xí)到這些實(shí)例。如果我們的數(shù)據(jù)集可以使用KNN的方法訓(xùn)練出良好的結(jié)果,那么就可以嘗試使用LVQ算法來減少存儲(chǔ)整個(gè)訓(xùn)練數(shù)據(jù)集的內(nèi)存需求。

LVQ的表示是碼本(權(quán)值)向量的集合。這些碼本在開始時(shí)隨機(jī)選擇的,并且適合于在學(xué)習(xí)算法的多次迭代中最佳地總結(jié)訓(xùn)練數(shù)據(jù)集。在學(xué)習(xí)之后,可我們以使用碼本向量來進(jìn)行與KNN類似的預(yù)測(cè)。通過計(jì)算每個(gè)碼本矢量和新數(shù)據(jù)實(shí)例之間的距離來找到最相似的鄰居(即最佳匹配碼本矢量)。然后,將最佳匹配單元的類值或回歸值(實(shí)值)作為預(yù)測(cè)返回。如果將數(shù)據(jù)重新縮放至相同范圍(例如0到1之間),就可以獲得最好的結(jié)果。

八、支持向量機(jī)(Support Vector Machines)

支持向量機(jī)可能是目前最流行的機(jī)器學(xué)習(xí)算法之一。SVM算法的核心是選擇一個(gè)最佳的超平面將輸入變量空間中的點(diǎn)按照它們的類(0或1)分開。所謂的“超平面”其實(shí)就是一個(gè)分割輸入變量空間的線,在二維空間中,我們可以將其可視化為一條直線,并且假設(shè)我們所有的輸入點(diǎn)都可以被這條直線完全分開。

此外,超平面和最近數(shù)據(jù)點(diǎn)之間的距離稱為邊距。可以分離兩個(gè)類的最佳或最優(yōu)超平面是具有最大邊距的行。這些點(diǎn)與定義超平面和分類器的構(gòu)造是有關(guān),這些點(diǎn)稱為支持向量。它們可以支持或定義超平面。

最后,SVM可能是最強(qiáng)大的分類器之一,值得我們使用數(shù)據(jù)集嘗試使用。

?

九、隨機(jī)森林(Bagging and Random Forest)

隨機(jī)森林是最流行和最強(qiáng)大的機(jī)器學(xué)習(xí)算法之一。它是一種被稱為“bagging”的集成機(jī)器學(xué)習(xí)算法。Bagging是一種強(qiáng)大的統(tǒng)計(jì)方法,常用于估計(jì)從數(shù)據(jù)樣本的數(shù)量。如:我們?nèi)〈罅康臄?shù)據(jù)樣本后計(jì)算平均值,然后再對(duì)所有平均值進(jìn)行平均,以便更好地估計(jì)真實(shí)的平均值。

在bagging中,要對(duì)我們的訓(xùn)練數(shù)據(jù)進(jìn)行多次采樣,然后為每個(gè)數(shù)據(jù)樣本構(gòu)建模型。當(dāng)需要對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)時(shí),每個(gè)模型都進(jìn)行預(yù)測(cè),并對(duì)預(yù)測(cè)進(jìn)行平均,以更好地估計(jì)真實(shí)輸出值。

隨機(jī)森林是對(duì)這種方法的一種調(diào)整,通過創(chuàng)建決策樹,使得不是選擇最佳分裂點(diǎn),而是通過引入隨機(jī)性來進(jìn)行次優(yōu)分割。因此,為每個(gè)數(shù)據(jù)樣本構(gòu)建的模型與它們?cè)臼遣煌?#xff0c;這樣結(jié)合它們的預(yù)測(cè)可以更好地估計(jì)真實(shí)的輸出結(jié)果。

?

十、Boosting and AdaBoost

Boosting是一種集成方法,試圖從多個(gè)弱分類器中創(chuàng)建強(qiáng)分類器。這一過程是通過從訓(xùn)練數(shù)據(jù)種構(gòu)建模型,然后創(chuàng)建第二個(gè)模型來完成的,該模型試圖糾正來自第一個(gè)模型的錯(cuò)誤。以此類推,添加模型直到能完美預(yù)測(cè)訓(xùn)練集或是添加最大數(shù)量的模型。

AdaBoost是第一個(gè)真正成功實(shí)現(xiàn)Boosting的算法,是理解boosting方法的最佳起點(diǎn)。現(xiàn)在很多boosting方法都是建立在AdaBoost算法之上,效果最好的當(dāng)數(shù)是gradient boosting 。

此外,Adaboost通常會(huì)和短決策樹一起使用。在創(chuàng)建第一棵樹之后,使用樹在每個(gè)訓(xùn)練實(shí)例上的性能來衡量創(chuàng)建的下一棵樹應(yīng)該對(duì)每個(gè)訓(xùn)練實(shí)例關(guān)注多少。往往難以預(yù)測(cè)的訓(xùn)練數(shù)據(jù)會(huì)被賦予更多的權(quán)重,而容易預(yù)測(cè)的實(shí)例被賦予較少的權(quán)重。這樣,一個(gè)接一個(gè)地依次創(chuàng)建模型,每個(gè)模型更新訓(xùn)練實(shí)例上的權(quán)重,這些權(quán)重影響序列中的下一棵樹所執(zhí)行的學(xué)習(xí)。構(gòu)建完所有樹之后,將對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè),并根據(jù)訓(xùn)練數(shù)據(jù)的準(zhǔn)確性對(duì)每棵樹的性能進(jìn)行加權(quán)。

【總結(jié)】本篇文章針對(duì)需要入門機(jī)器學(xué)習(xí)的玩家,為大家準(zhǔn)備了十大最常用的機(jī)器學(xué)習(xí)算法,希望大家喜歡。

  • 入門
  • 機(jī)器學(xué)習(xí)
  • 算法

Previous

關(guān)于TensorFlow九件你非知不可的事

Next

使用條件隨機(jī)場(chǎng)模型解決文本分類問題(附Python代碼)

總結(jié)

以上是生活随笔為你收集整理的新手入门机器学习十大算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。