十大經(jīng)典機器學習方法
現(xiàn)在,讓我們來進一步了解機器學習算法,它是實現(xiàn)人工智能的核心。
1. 監(jiān)督學習(Supervised Learning)
在監(jiān)督學習中,我們有一組帶有標簽的數(shù)據(jù),其中包含了輸入和輸出的對應關(guān)系。我們的目標是通過訓練模型,使其能夠根據(jù)輸入預測正確的輸出。常見的監(jiān)督學習算法包括線性回歸、邏輯回歸和支持向量機(SVM)等。
2. 無監(jiān)督學習(Unsupervised Learning)
與監(jiān)督學習不同,無監(jiān)督學習中的數(shù)據(jù)沒有標簽。我們的目標是通過模型發(fā)現(xiàn)數(shù)據(jù)中的隱藏模式和結(jié)構(gòu)。無監(jiān)督學習算法通常用于聚類、降維和異常檢測等任務。常見的無監(jiān)督學習算法包括K均值聚類、主成分分析(PCA)和異常檢測算法等。
3. 強化學習(Reinforcement Learning)
強化學習是一種通過與環(huán)境進行交互來訓練模型的學習方法。在強化學習中,模型會根據(jù)環(huán)境的反饋來調(diào)整自己的行為,以獲得最大的獎勵。這種學習方式常用于制定機器人的決策策略和自動駕駛等領(lǐng)域。
4. 深度學習(Deep Learning)
深度學習是一種基于人工神經(jīng)網(wǎng)絡(luò)的機器學習方法。它模仿人腦神經(jīng)元之間的連接方式,通過多層的神經(jīng)網(wǎng)絡(luò)來進行計算和學習。深度學習在圖像識別、語音識別和自然語言處理等領(lǐng)域取得了巨大的成功。
5. 遷移學習(Transfer Learning)
遷移學習是一種將已經(jīng)訓練好的模型應用于新任務的學習方法。通過遷移學習,我們可以利用已有模型的知識和經(jīng)驗,減少新任務的訓練時間和數(shù)據(jù)需求。這種學習方式常用于數(shù)據(jù)稀缺或任務相似的情況下。
以上只是機器學習算法的一小部分,每種算法都有自己的特點和適用場景。作為初學者,建議你從最基礎(chǔ)的算法開始學習,逐步掌握它們的原理和實現(xiàn)方法。在實踐中,多嘗試不同的算法,并根據(jù)數(shù)據(jù)和任務的特點選擇最合適的算法。
1. 線性回歸
在統(tǒng)計學和機器學習領(lǐng)域,線性回歸可能是最廣為人知也最易理解的算法之一。
預測建模主要關(guān)注的是在犧牲可解釋性的情況下,盡可能最小化模型誤差或做出最準確的預測。我們將借鑒、重用來自許多其它領(lǐng)域的算法(包括統(tǒng)計學)來實現(xiàn)這些目標。
線性回歸模型被表示為一個方程式,它為輸入變量找到特定的權(quán)重(即系數(shù) B),進而描述一條最佳擬合了輸入變量(x)和輸出變量(y)之間關(guān)系的直線。
線性回歸
例如: y = B0 + B1 * x
我們將在給定輸入值 x 的條件下預測 y,線性回歸學習算法的目的是找到系數(shù) B0 和 B1 的值。
我們可以使用不同的技術(shù)來從數(shù)據(jù)中學習線性回歸模型,例如普通最小二乘法的線性代數(shù)解和梯度下降優(yōu)化。
線性回歸大約有 200 多年的歷史,并已被廣泛地研究。在使用此類技術(shù)時,有一些很好的經(jīng)驗規(guī)則:我們可以刪除非常類似(相關(guān))的變量,并盡可能移除數(shù)據(jù)中的噪聲。線性回歸是一種運算速度很快的簡單技術(shù),也是一種適合初學者嘗試的經(jīng)典算法。
2. Logistic 回歸
Logistic 回歸是機器學習從統(tǒng)計學領(lǐng)域借鑒過來的另一種技術(shù)。它是二分類問題的首選方法。
像線性回歸一樣,Logistic 回歸的目的也是找到每個輸入變量的權(quán)重系數(shù)值。但不同的是,Logistic 回歸的輸出預測結(jié)果是通過一個叫作「logistic 函數(shù)」的非線性函數(shù)變換而來的。
logistic 函數(shù)的形狀看起來像一個大的「S」,它會把任何值轉(zhuǎn)換至 0-1 的區(qū)間內(nèi)。這十分有用,因為我們可以把一個規(guī)則應用于 logistic 函數(shù)的輸出,從而得到 0-1 區(qū)間內(nèi)的捕捉值(例如,將閾值設(shè)置為 0.5,則如果函數(shù)值小于 0.5,則輸出值為 1),并預測類別的值。
Logistic 回歸
由于模型的學習方式,Logistic 回歸的預測結(jié)果也可以用作給定數(shù)據(jù)實例屬于類 0 或類 1 的概率。這對于需要為預測結(jié)果提供更多理論依據(jù)的問題非常有用。
與線性回歸類似,當刪除與輸出變量無關(guān)以及彼此之間非常相似(相關(guān))的屬性后,Logistic 回歸的效果更好。該模型學習速度快,對二分類問題十分有效。
3. 線性判別分析
Logistic 回歸是一種傳統(tǒng)的分類算法,它的使用場景僅限于二分類問題。如果你有兩個以上的類,那么線性判別分析算法(LDA)是首選的線性分類技術(shù)。
LDA 的表示方法非常直接。它包含為每個類計算的數(shù)據(jù)統(tǒng)計屬性。對于單個輸入變量而言,這些屬性包括:
每個類的均值。
所有類的方差。
線性判別分析
預測結(jié)果是通過計算每個類的判別值、并將類別預測為判別值最大的類而得出的。該技術(shù)假設(shè)數(shù)據(jù)符合高斯分布(鐘形曲線),因此最好預先從數(shù)據(jù)中刪除異常值。LDA 是一種簡單而有效的分類預測建模方法。
4. 分類和回歸樹
決策樹是一類重要的機器學習預測建模算法。
決策樹可以被表示為一棵二叉樹。這種二叉樹與算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)中的二叉樹是一樣的,沒有什么特別。每個節(jié)點都代表一個輸入變量(x)和一個基于該變量的分叉點(假設(shè)該變量是數(shù)值型的)。
決策樹
決策樹的葉子結(jié)點包含一個用于做出預測的輸出變量(y)。預測結(jié)果是通過在樹的各個分叉路徑上游走,直到到達一個葉子結(jié)點并輸出該葉子結(jié)點的類別值而得出。
決策樹的學習速度很快,做出預測的速度也很快。它們在大量問題中往往都很準確,而且不需要為數(shù)據(jù)做任何特殊的預處理準備。
5. 樸素貝葉斯
樸素貝葉斯是一種簡單而強大的預測建模算法。
該模型由兩類可直接從訓練數(shù)據(jù)中計算出來的概率組成:1)數(shù)據(jù)屬于每一類的概率;2)給定每個 x 值,數(shù)據(jù)從屬于每個類的條件概率。一旦這兩個概率被計算出來,就可以使用貝葉斯定理,用概率模型對新數(shù)據(jù)進行預測。當你的數(shù)據(jù)是實值的時候,通常假設(shè)數(shù)據(jù)符合高斯分布(鐘形曲線),這樣你就可以很容易地估計這些概率。
貝葉斯定理
樸素貝葉斯之所以被稱為「樸素」,是因為它假設(shè)每個輸入變量相互之間是獨立的。這是一種很強的、對于真實數(shù)據(jù)并不現(xiàn)實的假設(shè)。不過,該算法在大量的復雜問題中十分有效。
6. K 最近鄰算法
K 最近鄰(KNN)算法是非常簡單而有效的。KNN 的模型表示就是整個訓練數(shù)據(jù)集。這很簡單吧?
對新數(shù)據(jù)點的預測結(jié)果是通過在整個訓練集上搜索與該數(shù)據(jù)點最相似的 K 個實例(近鄰)并且總結(jié)這 K 個實例的輸出變量而得出的。對于回歸問題來說,預測結(jié)果可能就是輸出變量的均值;而對于分類問題來說,預測結(jié)果可能是眾數(shù)(或最常見的)的類的值。
關(guān)鍵之處在于如何判定數(shù)據(jù)實例之間的相似程度。如果你的數(shù)據(jù)特征尺度相同(例如,都以英寸為單位),那么最簡單的度量技術(shù)就是使用歐幾里得距離,你可以根據(jù)輸入變量之間的差異直接計算出該值。
K 最近鄰
KNN 可能需要大量的內(nèi)存或空間來存儲所有數(shù)據(jù),但只有在需要預測時才實時執(zhí)行計算(或?qū)W習)。隨著時間的推移,你還可以更新并管理訓練實例,以保證預測的準確率。
使用距離或接近程度的度量方法可能會在維度非常高的情況下(有許多輸入變量)崩潰,這可能會對算法在你的問題上的性能產(chǎn)生負面影響。這就是所謂的維數(shù)災難。這告訴我們,應該僅僅使用那些與預測輸出變量最相關(guān)的輸入變量。
7. 學習向量量化
KNN 算法的一個缺點是,你需要處理整個訓練數(shù)據(jù)集。而學習向量量化算法(LVQ)允許選擇所需訓練實例數(shù)量,并確切地學習這些實例。