導航:首頁 > 源碼編譯 > 如何了解最新機器學習演算法

如何了解最新機器學習演算法

發布時間:2022-12-12 00:52:25

❶ 機器學習演算法和深度學習的區別

一、指代不同

1、機器學習演算法:是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法復雜度理論等多門學科。

2、深度學習:是機器學習(ML, Machine Learning)領域中一個新的研究方向,它被引入機器學習使其更接近於最初的目標人工智慧。

二、學習過程不同

1、機器學習演算法:學習系統的基本結構。環境向系統的學習部分提供某些信息,學習部分利用這些信息修改知識庫,以增進系統執行部分完成任務的效能,執行部分根據知識庫完成任務,同時把獲得的信息反饋給學習部分。

2、深度學習:通過設計建立適量的神經元計算節點和多層運算層次結構,選擇合適的輸人層和輸出層,通過網路的學習和調優,建立起從輸入到輸出的函數關系,雖然不能100%找到輸入與輸出的函數關系,但是可以盡可能的逼近現實的關聯關系。

三、應用不同

1、機器學習演算法::數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、DNA序列測序、語音和手寫識別、戰略游戲和機器人運用。

2、深度學習:計算機視覺、語音識別、自然語言處理等其他領域。

❷ 目前最流行的機器學習演算法是什麼

毫無疑問,機器學習在過去幾年越來越受歡迎。由於大數據是目前技術行業最熱門的趨勢,機器學習是非常強大的,可以根據大量數據進行預測或計算推理。
如果你想學習機器演算法,要從何下手呢?
監督學習
1. 決策樹:決策樹是一種決策支持工具,使用的決策及其可能產生的後果,包括隨機事件的結果,資源消耗和效用的樹狀圖或模型。
從業務決策的角度來看,決策樹是人們必須要選擇是/否的問題,以評估大多數時候作出正確決策的概率。它允許您以結構化和系統的方式來解決問題,以得出邏輯結論。
2.樸素貝葉斯分類:樸素貝葉斯分類器是一種簡單的概率分類器,基於貝葉斯定理,其特徵之間具有強大(樸素)的獨立性假設。
特徵圖像是方程 - P(A | B)是後驗概率,P(B | A)是似然度,P(A)是類先驗概率,P(B)是預測先驗概率。
一些現實世界的例子是:
判斷郵件是否為垃圾郵件
分類技術,將新聞文章氛圍政治或體育類
檢查一段表達積極情緒或消極情緒的文字
用於面部識別軟體
3.普通最小二乘回歸:如果你了解統計學,你可能已經聽說過線性回歸。最小二乘法是一種執行線性回歸的方法。
您可以將線性回歸視為擬合直線穿過點狀分布的任務。有多種可能的策略可以做到這一點,「普通最小二乘法」策略就像這樣 -你可以畫一條線,然後把每個數據點,測量點和線之間的垂直距離,添加上去;擬合線將是距離總和的盡可能小的線。
線性是指您正在使用的模型來迎合數據,而最小二乘可以最小化線性模型誤差。
4.邏輯回歸: Logistic回歸是一個強大的統計學方法,用一個或多個解釋變數建模二項式結果。它通過使用邏輯函數估計概率,來衡量分類因變數與一個或多個獨立變數之間的關系,後者是累積邏輯分布。
邏輯回歸用於生活中:
信用評級
衡量營銷活動的成功率
預測某一產品的收入
某一天會有地震嗎
5.支持向量機: SVM是二元分類演算法。給定N維空間中兩種種類型的點,SVM生成(N-1)維的超平面將這些點分成2組。
假設你有一些可以線性分離的紙張中的兩種類型的點。SVM將找到一條直線,將這些點分成兩種類型,並盡可能遠離所有這些點。
在規模上,使用SVM解決的一些特大的問題(包括適當修改的實現)是:廣告、人類基因剪接位點識別、基於圖像的性別檢測,大規模圖像分類...
6.集成方法:集成方法是構建一組分類器的學習演算法,然後通過對其預測進行加權投票來對新的數據點進行分類。原始的集成方法是貝葉斯平均法,但更新的演算法包括糾錯輸出編碼、bagging和boosting。
那麼集成方法如何工作,為什麼它們優於單個模型?
均衡偏差:如果你均衡了大量的傾向民主黨的投票和大量傾向共和黨的投票,你總會得到一個不那麼偏頗的結果。
降低方差:集合大量模型的參考結果,噪音會小於單個模型的單個結果。在金融領域,這被稱為投資分散原則(diversification)——一個混搭很多種股票的投資組合,比單獨的股票更少變故。
不太可能過度擬合:如果您有單個模型不完全擬合,您以簡單的方式(平均,加權平均,邏輯回歸)結合每個模型建模,那麼一般不會發生過擬合。
無監督學習
7. 聚類演算法:聚類是對一組對象進行分組的任務,使得同一組(集群)中的對象彼此之間比其他組中的對象更相似。
每個聚類演算法是不同的,比如:
基於Centroid的演算法
基於連接的演算法
基於密度的演算法
概率
降維
神經網路/深度學習
8. 主成分分析: PCA是使用正交變換將可能相關變數的觀察值轉換為主成分的線性不相關變數值的一組統計過程。
PCA的一些應用包括壓縮、簡化數據、便於學習、可視化。請注意,領域知識在選擇是否繼續使用PCA時非常重要。數據嘈雜的情況(PCA的所有組件都有很大差異)的情況不適用。
9.奇異值分解:在線性代數中,SVD是真正復雜矩陣的因式分解。對於給定的m * n矩陣M,存在分解,使得M =UΣV,其中U和V是酉矩陣,Σ是對角矩陣。
PCA實際上是SVD的簡單應用。在計算機視覺技術中,第一個人臉識別演算法使用PCA和SVD,以將面部表示為「特徵臉」的線性組合,進行降維,然後通過簡單的方法將面部匹配到身份;雖然這種方法更復雜,但仍然依賴於類似的技術。
10.獨立成分分析: ICA是一種統計技術,用於揭示隨機變數、測量或信號集合的隱藏因素。ICA定義了觀察到的多變數數據的生成模型,通常將其作為大型樣本資料庫。
在模型中,假設數據變數是一些未知潛在變數的線性混合,混合系統也是未知的。潛變數被假定為非高斯和相互獨立的,它們被稱為觀測數據的獨立成分。
ICA與PCA相關,但它是一種更強大的技術,能夠在這些經典方法完全失敗時找到潛在的源因素。其應用包括數字圖像、文檔資料庫、經濟指標和心理測量。

❸ 機器學習演算法中的SVM和聚類演算法

相信大家都知道,機器學習中有很多的演算法,我們在進行機器學習知識學習的時候一定會遇到過很多的演算法,而機器學習中的SVM演算法和聚類演算法都是比較重要的,我們在這篇文章中就重點給大家介紹一下這兩種演算法,希望這篇文章能夠幫助大家理解這兩種演算法。

機器學習演算法——SVM

提道機器學習演算法就不得不說一說SVM,這種演算法就是支持向量機,而支持向量機演算法是誕生於統計學習界,這也是機器學習中的經典演算法,而支持向量機演算法從某種意義上來說是邏輯回歸演算法的強化,這就是通過給予邏輯回歸演算法更嚴格的優化條件,支持向量機演算法可以獲得比邏輯回歸更好的分類界線。不過如果通過跟高斯核的結合,支持向量機可以表達出非常復雜的分類界線,從而達成很好的的分類效果。核事實上就是一種特殊的函數,最典型的特徵就是可以將低維的空間映射到高維的空間。

於是問題來了,如何在二維平面劃分出一個圓形的分類界線?其實我們在二維平面可能會很困難,但是通過核可以將二維空間映射到三維空間,然後使用一個線性平面就可以達成類似效果。也就是說,二維平面劃分出的非線性分類界線可以等價於三維平面的線性分類界線。接著,我們可以通過在三維空間中進行簡單的線性劃分就可以達到在二維平面中的非線性劃分效果。而支持向量機是一種數學成分很濃的機器學習演算法。在演算法的核心步驟中,有一步證明,即將數據從低維映射到高維不會帶來最後計算復雜性的提升。於是,通過支持向量機演算法,既可以維持計算效率,又可以獲得非常好的分類效果。因此支持向量機在90年代後期一直占據著機器學習中最核心的地位,基本取代了神經網路演算法。

機器學習演算法——聚類演算法

說完了SVM,下面我們給大家介紹一下聚類演算法,前面的演算法中的一個顯著特徵就是我的訓練數據中包含了標簽,訓練出的模型可以對其他未知數據預測標簽。在下面的演算法中,訓練數據都是不含標簽的,而演算法的目的則是通過訓練,推測出這些數據的標簽。這類演算法有一個統稱,即無監督演算法。無監督演算法中最典型的代表就是聚類演算法。而聚類演算法中最典型的代表就是K-Means演算法。這一演算法被廣大朋友所應用。

現在,我們可以清楚認識到機器學習是一個綜合性很強的學科。在這篇文章中我們給大家介紹了很多關於機器學習中的支持向量機和聚類演算法的相關知識,通過這些知識我們不難發現機器學習中有很多有用的演算法,熟練掌握這些演算法是我們真正學會機器學習的必經之路。

❹ 如何學習機器學習的一點心得

學習之前還是要了解下目前工業界所需要的機器學習/人工智慧人才所需要必備的技能是哪些?你才好針對性地去學習。正好我前兩天剛聽了菜鳥窩(一個程序猿的黃埔軍校)的一位阿里機器學習演算法工程師的課,幫助我理清了思路,在此分享下。

網路教程還是挺多的,就看怎麼學習了,不過遇到比較好的老師帶,會少走很多彎路。如果經濟上壓力不大,建議可以去報一下菜鳥窩的機器學習班,畢竟人家老師都是BAT實戰的,知道企業中真正要用到的東西。

不知道有沒幫到你?

❺ 初學者如何選擇合適的機器學習演算法(附演算法

如何為分類問題選擇合適的機器學習演算法 若要達到一定的准確率,需要嘗試各種各樣的分類器,並通過交叉驗證選擇最好的一個。但是,如果你只是為你的問題尋找一個「足夠好」的演算法或者一個起點,以下准則有利於選擇合適的分類器:你的訓練集有多大?如果訓練集很小,那麼高偏差/低方差分類器(如樸素貝葉斯分類器)要優於低偏差/高方差分類器(如k近鄰分類器),因為後者容易過擬合。然而,隨著訓練集的增大,低偏差/高方差分類器將開始勝出(它們具有較低的漸近誤差),因為高偏差分類器不足以提供准確的模型。這可以認為這是生成模型與判別模型的區別。一些特定演算法比較樸素貝葉斯優點:簡單;如果樸素貝葉斯(NB)條件獨立性假設成立,相比於邏輯回歸這類的判別模型,樸素貝葉斯分類器將收斂得更快,所以你只需要較小的訓練集。而且,即使NB假設不成立,樸素貝葉斯分類器在實踐方面仍然表現很好。如果想得到簡單快捷的執行效果,這將是個好的選擇。缺點:不能學習特徵之間的相互作用(比如,它不能學習出:雖然你喜歡布拉德·皮特和湯姆·克魯斯的電影,但卻不喜歡他們一起合作的電影)。邏輯回歸優點:有許多正則化模型的方法,不需要像在樸素貝葉斯分類器中那樣擔心特徵間的相互關聯性。與決策樹和支持向量機 不同,有一個很好的概率解釋,並能容易地更新模型來吸收新數據(使用一個在線梯度下降方法)。如果你想要一個概率框架(比如,簡單地調整分類閾值,說出什麼時候是不太確定的,或者獲得置信區間),或你期望未來接收更多想要快速並入模型中的訓練數據,就選擇邏輯回歸。決策樹優點:易於說明和解釋,很容易地處理特徵間的相互作用,並且是非參數化的,不用擔心異常值或者數據是否線性可分(比如,決策樹可以很容易地某特徵x的低端是類A,中間是類B,然後高端又是類A的情況)。缺點:1)不支持在線學習,當有新樣本時需要重建決策樹。2)容易過擬合,但這也正是諸如隨機森林(或提高樹)之類的集成方法的切入點。另外,隨機森林適用於很多分類問題(通常略優於支持向量機)---快速並且可擴展,不像支持向量機那樣調一堆參數。隨機森林正漸漸開始偷走它的「王冠」。 SVMs 優點:高准確率,為過擬合提供了好的理論保證;即使數據在基礎特徵空間線性不可分,只要選定一個恰當的核函數,仍然能夠取得很好的分類效果。它們在超高維空間是常態的文本分類問題中尤其受歡迎。然而,它們內存消耗大,難於解釋,運行和調參 復雜,盡管如此,更好的數據往往勝過更好的演算法,設計好的特徵非常重要。如果有一個龐大數據集,這時使用哪種分類演算法在分類性能方面可能並不要緊;因此,要基於速度和易用性選擇演算法。

❻ 機器學習的方法

機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法復雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。

它是人工智慧的核心,是使計算機具有智能的根本途徑,其應用遍及人工智慧的各個領域,它主要使用歸納、綜合而不是演繹。
機器學習是近20多年興起的一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法復雜度理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動「學習」的演算法。機器學習演算法是一類從數據中自動分析獲得規律,並利用規律對未知數據進行預測的演算法。因為學習演算法中涉及了大量的統計學理論,機器學習與統計推斷學聯系尤為密切,也被稱為統計學習理論。演算法設計方面,機器學習理論關注可以實現的,行之有效的學習演算法。很多推論問題屬於無程序可循難度,所以部分的機器學習研究是開發容易處理的近似演算法。

機器學習已經有了十分廣泛的應用,例如:數據挖掘、計算機視覺、自然語言處理、生物特徵識別、搜索引擎、醫學診斷、檢測信用卡欺詐、證券市場分析、DNA序列測序、語音和手寫識別、戰略游戲和機器人運用。
學習是人類具有的一種重要智能行為,但究竟什麼是學習,長期以來卻眾說紛紜。社會學家、邏輯學家和心理學家都各有其不同的看法。比如,Langley(1996) 定義的機器學習是「機器學習是一門人工智慧的科學,該領域的主要研究對象是人工智慧,特別是如何在經驗學習中改善具體演算法的性能」。(Machine learning is a science of the artificial. The field's main objects of study are artifacts, specifically algorithms that improve their performance with experience.')Tom Mitchell的機器學習(1997)對資訊理論中的一些概念有詳細的解釋,其中定義機器學習時提到,「機器學習是對能通過經驗自動改進的計算機演算法的研究」。(Machine Learning is the study of computer algorithms that improve automatically through experience.)Alpaydin(2004)同時提出自己對機器學習的定義,「機器學習是用數據或以往的經驗,以此優化計算機程序的性能標准。」(Machine learning is programming computers to optimize a performance criterion using example data or past experience.)

盡管如此,為了便於進行討論和估計學科的進展,有必要對機器學習給出定義,即使這種定義是不完全的和不充分的。顧名思義, 機器學習是研究如何使用機器來模擬人類學習活動的一門學科。稍為嚴格的提法是:機器學習是一門研究機器獲取新知識和新技能,並識別現有知識的學問。這里所說的「機器」,指的就是計算機;現在是電子計算機,以後還可能是中子計算機、光子計算機或神經計算機等等

機器能否象人類一樣能具有學習能力呢?1959年美國的塞繆爾(Samuel)設計了一個下棋程序,這個程序具有學習能力,它可以在不斷的對弈中改善自己的棋藝。4年後,這個程序戰勝了設計者本人。又過了3年,這個程序戰勝了美國一個保持8年之久的常勝不敗的冠軍。這個程序向人們展示了機器學習的能力,提出了許多令人深思的社會問題與哲學問題。

機器的能力是否能超過人的,很多持否定意見的人的一個主要論據是:機器是人造的,其性能和動作完全是由設計者規定的,因此無論如何其能力也不會超過設計者本人。這種意見對不具備學習能力的機器來說的確是對的,可是對具備學習能力的機器就值得考慮了,因為這種機器的能力在應用中不斷地提高,過一段時間之後,設計者本人也不知它的能力到了何種水平。

❼ 如何研究學習一個機器學習演算法

如何研究學習一個機器學習演算法
1. 還記得我剛來演算法組的時候,我不懂TFIDF是什麼,更不要說什麼SVD,LDA了聽都沒聽過,不懂user-based和item-based的區別,甚至連貝葉斯公式都寫不全。在最初的一段時間,我看別人的代碼,半懂不懂地聽組會分享,然後實現一個又一個現在看來很幼稚的演算法,感覺進步是飛速的。接過來一個演算法需求,我就去網上找篇paper,然後把演算法給實現了就丟給產品線用。
這個時候,同事A對我講,「演算法工程師不是懂一些數學,會寫些演算法就行了,演算法工程師最重要的技能,在於如何定義問題,然後接下來才是如何解決這個問題。」從那以後,當面臨一個需求時,我更願意分析這個需求的關鍵點在哪,然後從大腦里搜索已有的東西能不能解決這個問題,比如FM的演算法缺乏多樣性,那麼我想一下我看過的解決多樣性的paper都有什麼?能不能用在這個上面。如果不能,我再對應去搜問題的關鍵字,而不是演算法的關鍵字。

2. 轉眼間一年過去了,雖說看過的paper不夠多,但是可以應付大部分的需求了。但是我開始迷茫起來,我覺得自己在實現一個又一個的演算法trick,知道一個演算法可以用,我就去網上down一個對應的演算法包,然後把數據丟進去。沒了......那麼我的出路到底在哪?我的核心競爭力在哪?在於知道這么個東西,然後變成跑准備數據的么?
這個時候,同事B給我講了到底博士是如何完成一個畢業設計的,幾百篇論文作為基礎。那是不是把幾百篇論文全都和我以前一樣一字不差的看完?PHD為什麼很容易進入到一個他之前所未知的領域,在於在研究領域所積累的一套方法論。言歸正傳:
當接觸到一個新的演算法時要怎麼去入手?用SVM舉例吧:
第一,去找SVM的Survey,每一個成熟的演算法分支必定有著survey這樣的匯總性paper,通過這個paper,我們大致可以了解這個演算法為什麼出現,最基本的演算法原型是什麼樣的,接下來後人對他做了什麼樣的改進,他到底還有什麼問題。
第二,弄懂這個演算法的來龍去脈,為什麼出現,出現是因為改進了前面演算法所不能做的什麼事情?例如我們為什麼不用基本的線性分類器?和用傳統的分類演算法找到一個超平面區別在於哪?
第三,知道了來龍去脈,我們還要知道這個演算法的缺點在哪?不能適用於什麼?我們怎麼知道?這個就涉及到如何來快速地過一遍一篇paper。
第四,Abstract是最重要的,他告訴了我們這篇paper發的目的是什麼?他想解決什麼問題?然後是Future Work,之所以有著FutureWork是因為這個演算法還有一些問題沒有解決,這個就告訴了我們當前演算法還有什麼缺點?
第五,遞歸再去看這個缺點是否有其他的研究者已經解決掉了。

那麼我們為什麼看paper,為什麼實現某演算法,我歸結為兩點:
1. 學習目的,擴展思路,如果處於這種目的,理解paper的精髓是最重要的。
2. 解決實際問題。那麼應該丟棄的觀點是我最初那樣拿過來一篇paper也沒理解透徹也不知道能不能解決問題,也不知道到底是不是可行,就先實現了再說。勞民傷財~

3. 我自認為自己還算努力,看了很多書,看了很多演算法,但是其實有時候說起來,比如用PCA還是SVD,他們到底有什麼區別,我們如何選擇,我其實還是不明白。
這時,同事C對我說,理解一個演算法,最重要的是要理解這個演算法的世界觀,這個演算法背後的哲學基礎是什麼?只有理解了這個,才算理解一個演算法。
用Boosting來舉例,他背後的世界觀是PAC原則。那麼Boosting為什麼不能引入一個強分類器,因為這個做個類比就相當於Boosting原本是美國的民主政治,一旦引入了一個強勢的領導,就一下子變成了當年毛爺爺時候的政治了。Boosting的世界觀就崩塌掉了。至於說Boosting最終是如何調整數據集的權重,這些就都屬於了細節的層面。

最後,補充一個同事D,無意間的話讓我發覺自己要變得更優秀才行:
同事D在搜Resys,有一個快照上面寫著:本科生Resys十佳論文。同事扭頭對我說,靠,現在本科生都可以發Resys paper了。讓我意識到了自己其實在原本上差距有多大,我要付出更大的努力才能彌補這些也許別人覺得無法跨越的鴻溝。

❽ 機器學習的方法之回歸演算法

我們都知道,機器學習是一個十分實用的技術,而這一實用的技術中涉及到了很多的演算法。所以說,我們要了解機器學習的話就要對這些演算法掌握通透。在這篇文章中我們就給大家詳細介紹一下機器學習中的回歸演算法,希望這篇文章能夠幫助到大家。
一般來說,回歸演算法是機器學習中第一個要學習的演算法。具體的原因,第一就是回歸演算法比較簡單,可以讓人直接從統計學過渡到機器學習中。第二就是回歸演算法是後面若干強大演算法的基石,如果不理解回歸演算法,無法學習其他的演算法。而回歸演算法有兩個重要的子類:即線性回歸和邏輯回歸。
那麼什麼是線性回歸呢?其實線性回歸就是我們常見的直線函數。如何擬合出一條直線最佳匹配我所有的數據?這就需要最小二乘法來求解。那麼最小二乘法的思想是什麼呢?假設我們擬合出的直線代表數據的真實值,而觀測到的數據代表擁有誤差的值。為了盡可能減小誤差的影響,需要求解一條直線使所有誤差的平方和最小。最小二乘法將最優問題轉化為求函數極值問題。
那麼什麼是邏輯回歸呢?邏輯回歸是一種與線性回歸非常類似的演算法,但是,從本質上講,線型回歸處理的問題類型與邏輯回歸不一致。線性回歸處理的是數值問題,也就是最後預測出的結果是數字。而邏輯回歸屬於分類演算法,也就是說,邏輯回歸預測結果是離散的分類。而邏輯回歸演算法劃出的分類線基本都是線性的(也有劃出非線性分類線的邏輯回歸,不過那樣的模型在處理數據量較大的時候效率會很低),這意味著當兩類之間的界線不是線性時,邏輯回歸的表達能力就不足。下面的兩個演算法是機器學習界最強大且重要的演算法,都可以擬合出非線性的分類線。這就是有關邏輯回歸的相關事項。
在這篇文章中我們簡單給大家介紹了機器學習中的回歸演算法的相關知識,通過這篇文章我們不難發現回歸演算法是一個比較簡答的演算法,回歸演算法是線性回歸和邏輯回歸組成的演算法,而線性回歸和邏輯回歸都有自己實現功能的用處。這一點是需要大家理解的並掌握的,最後祝願大家能夠早日學會回歸演算法。

❾ 想了解機器學習,需要知道哪些基礎演算法

學一些概率論,導數和線性代數。機器學習的本質是拿訓練樣本去做數據擬合函數,然後用擬合函數解析輸入量。機器學習比較基礎的是最小二乘法,梯度下降之類的。到後面要學線性擬合,logistic函數,SVM等等。

❿ 機器學習新手必看十大演算法

機器學習新手必看十大演算法
本文介紹了機器學習新手需要了解的 10 大演算法,包括線性回歸、Logistic 回歸、樸素貝葉斯、K 近鄰演算法等。
在機器學習中,有一種叫做「沒有免費的午餐」的定理。簡而言之,它指出沒有任何一種演算法對所有問題都有效,在監督學習(即預測建模)中尤其如此。
例如,你不能說神經網路總是比決策樹好,反之亦然。有很多因素在起作用,例如數據集的大小和結構。
因此,你應該針對具體問題嘗試多種不同演算法,並留出一個數據「測試集」來評估性能、選出優勝者。
當然,你嘗試的演算法必須適合你的問題,也就是選擇正確的機器學習任務。打個比方,如果你需要打掃房子,你可能會用吸塵器、掃帚或拖把,但是你不會拿出鏟子開始挖土。
大原則
不過也有一個普遍原則,即所有監督機器學習演算法預測建模的基礎。
機器學習演算法被描述為學習一個目標函數 f,該函數將輸入變數 X 最好地映射到輸出變數 Y:Y = f(X)
這是一個普遍的學習任務,我們可以根據輸入變數 X 的新樣本對 Y 進行預測。我們不知道函數 f 的樣子或形式。如果我們知道的話,我們將會直接使用它,不需要用機器學習演算法從數據中學習。
最常見的機器學習演算法是學習映射 Y = f(X) 來預測新 X 的 Y。這叫做預測建模或預測分析,我們的目標是盡可能作出最准確的預測。
對於想了解機器學習基礎知識的新手,本文將概述數據科學家使用的 top 10 機器學習演算法。
1. 線性回歸
線性回歸可能是統計學和機器學習中最知名和最易理解的演算法之一。
預測建模主要關注最小化模型誤差或者盡可能作出最准確的預測,以可解釋性為代價。我們將借用、重用包括統計學在內的很多不同領域的演算法,並將其用於這些目的。
線性回歸的表示是一個方程,它通過找到輸入變數的特定權重(稱為系數 B),來描述一條最適合表示輸入變數 x 與輸出變數 y 關系的直線。
線性回歸
例如:y = B0 + B1 * x
我們將根據輸入 x 預測 y,線性回歸學習演算法的目標是找到系數 B0 和 B1 的值。
可以使用不同的技術從數據中學習線性回歸模型,例如用於普通最小二乘法和梯度下降優化的線性代數解。
線性回歸已經存在了 200 多年,並得到了廣泛研究。使用這種技術的一些經驗是盡可能去除非常相似(相關)的變數,並去除噪音。這是一種快速、簡單的技術,可以首先嘗試一下。
2. Logistic 回歸
Logistic 回歸是機器學習從統計學中借鑒的另一種技術。它是解決二分類問題的首選方法。
Logistic 回歸與線性回歸相似,目標都是找到每個輸入變數的權重,即系數值。與線性回歸不同的是,Logistic 回歸對輸出的預測使用被稱為 logistic 函數的非線性函數進行變換。
logistic 函數看起來像一個大的 S,並且可以將任何值轉換到 0 到 1 的區間內。這非常實用,因為我們可以規定 logistic 函數的輸出值是 0 和 1(例如,輸入小於 0.5 則輸出為 1)並預測類別值。
Logistic 回歸
由於模型的學習方式,Logistic 回歸的預測也可以作為給定數據實例(屬於類別 0 或 1)的概率。這對於需要為預測提供更多依據的問題很有用。
像線性回歸一樣,Logistic 回歸在刪除與輸出變數無關的屬性以及非常相似(相關)的屬性時效果更好。它是一個快速的學習模型,並且對於二分類問題非常有效。
3. 線性判別分析(LDA)
Logistic 回歸是一種分類演算法,傳統上,它僅限於只有兩類的分類問題。如果你有兩個以上的類別,那麼線性判別分析是首選的線性分類技術。
LDA 的表示非常簡單直接。它由數據的統計屬性構成,對每個類別進行計算。單個輸入變數的 LDA 包括:
每個類別的平均值;
所有類別的方差。
線性判別分析
進行預測的方法是計算每個類別的判別值並對具備最大值的類別進行預測。該技術假設數據呈高斯分布(鍾形曲線),因此最好預先從數據中刪除異常值。這是處理分類預測建模問題的一種簡單而強大的方法。
4. 分類與回歸樹
決策樹是預測建模機器學習的一種重要演算法。
決策樹模型的表示是一個二叉樹。這是演算法和數據結構中的二叉樹,沒什麼特別的。每個節點代表一個單獨的輸入變數 x 和該變數上的一個分割點(假設變數是數字)。
決策樹
決策樹的葉節點包含一個用於預測的輸出變數 y。通過遍歷該樹的分割點,直到到達一個葉節點並輸出該節點的類別值就可以作出預測。
決策樹學習速度和預測速度都很快。它們還可以解決大量問題,並且不需要對數據做特別准備。
5. 樸素貝葉斯
樸素貝葉斯是一個簡單但是很強大的預測建模演算法。
該模型由兩種概率組成,這兩種概率都可以直接從訓練數據中計算出來:1)每個類別的概率;2)給定每個 x 的值,每個類別的條件概率。一旦計算出來,概率模型可用於使用貝葉斯定理對新數據進行預測。當你的數據是實值時,通常假設一個高斯分布(鍾形曲線),這樣你可以簡單的估計這些概率。
貝葉斯定理
樸素貝葉斯之所以是樸素的,是因為它假設每個輸入變數是獨立的。這是一個強大的假設,真實的數據並非如此,但是,該技術在大量復雜問題上非常有用。
6. K 近鄰演算法
KNN 演算法非常簡單且有效。KNN 的模型表示是整個訓練數據集。是不是很簡單?
KNN 演算法在整個訓練集中搜索 K 個最相似實例(近鄰)並匯總這 K 個實例的輸出變數,以預測新數據點。對於回歸問題,這可能是平均輸出變數,對於分類問題,這可能是眾數(或最常見的)類別值。
訣竅在於如何確定數據實例間的相似性。如果屬性的度量單位相同(例如都是用英寸表示),那麼最簡單的技術是使用歐幾里得距離,你可以根據每個輸入變數之間的差值直接計算出來其數值。
K 近鄰演算法
KNN 需要大量內存或空間來存儲所有數據,但是只有在需要預測時才執行計算(或學習)。你還可以隨時更新和管理訓練實例,以保持預測的准確性。
距離或緊密性的概念可能在非常高的維度(很多輸入變數)中會瓦解,這對演算法在你的問題上的性能產生負面影響。這被稱為維數災難。因此你最好只使用那些與預測輸出變數最相關的輸入變數。
7. 學習向量量化
K 近鄰演算法的一個缺點是你需要遍歷整個訓練數據集。學習向量量化演算法(簡稱 LVQ)是一種人工神經網路演算法,它允許你選擇訓練實例的數量,並精確地學習這些實例應該是什麼樣的。
學習向量量化
LVQ 的表示是碼本向量的集合。這些是在開始時隨機選擇的,並逐漸調整以在學習演算法的多次迭代中最好地總結訓練數據集。在學習之後,碼本向量可用於預測(類似 K 近鄰演算法)。最相似的近鄰(最佳匹配的碼本向量)通過計算每個碼本向量和新數據實例之間的距離找到。然後返回最佳匹配單元的類別值或(回歸中的實際值)作為預測。如果你重新調整數據,使其具有相同的范圍(比如 0 到 1 之間),就可以獲得最佳結果。
如果你發現 KNN 在你的數據集上達到很好的結果,請嘗試用 LVQ 減少存儲整個訓練數據集的內存要求。
8. 支持向量機(SVM)
支持向量機可能是最受歡迎和最廣泛討論的機器學習演算法之一。
超平面是分割輸入變數空間的一條線。在 SVM 中,選擇一條可以最好地根據輸入變數類別(類別 0 或類別 1)對輸入變數空間進行分割的超平面。在二維中,你可以將其視為一條線,我們假設所有的輸入點都可以被這條線完全的分開。SVM 學習演算法找到了可以讓超平面對類別進行最佳分割的系數。
支持向量機
超平面和最近的數據點之間的距離被稱為間隔。分開兩個類別的最好的或最理想的超平面具備最大間隔。只有這些點與定義超平面和構建分類器有關。這些點被稱為支持向量,它們支持或定義了超平面。實際上,優化演算法用於尋找最大化間隔的系數的值。
SVM 可能是最強大的立即可用的分類器之一,值得一試。
9. Bagging 和隨機森林
隨機森林是最流行和最強大的機器學習演算法之一。它是 Bootstrap Aggregation(又稱 bagging)集成機器學習演算法的一種。
bootstrap 是從數據樣本中估算數量的一種強大的統計方法。例如平均數。你從數據中抽取大量樣本,計算平均值,然後平均所有的平均值以便更好的估計真實的平均值。
bagging 使用相同的方法,但是它估計整個統計模型,最常見的是決策樹。在訓練數據中抽取多個樣本,然後對每個數據樣本建模。當你需要對新數據進行預測時,每個模型都進行預測,並將所有的預測值平均以便更好的估計真實的輸出值。
隨機森林
隨機森林是對這種方法的一種調整,在隨機森林的方法中決策樹被創建以便於通過引入隨機性來進行次優分割,而不是選擇最佳分割點。
因此,針對每個數據樣本創建的模型將會與其他方式得到的有所不同,不過雖然方法獨特且不同,它們仍然是准確的。結合它們的預測可以更好的估計真實的輸出值。
如果你用方差較高的演算法(如決策樹)得到了很好的結果,那麼通常可以通過 bagging 該演算法來獲得更好的結果。
10. Boosting 和 AdaBoost
Boosting 是一種集成技術,它試圖集成一些弱分類器來創建一個強分類器。這通過從訓練數據中構建一個模型,然後創建第二個模型來嘗試糾正第一個模型的錯誤來完成。一直添加模型直到能夠完美預測訓練集,或添加的模型數量已經達到最大數量。
AdaBoost 是第一個為二分類開發的真正成功的 boosting 演算法。這是理解 boosting 的最佳起點。現代 boosting 方法建立在 AdaBoost 之上,最顯著的是隨機梯度提升。
AdaBoost
AdaBoost與短決策樹一起使用。在第一個決策樹創建之後,利用每個訓練實例上樹的性能來衡量下一個決策樹應該對每個訓練實例付出多少注意力。難以預測的訓練數據被分配更多權重,而容易預測的數據分配的權重較少。依次創建模型,每個模型在訓練實例上更新權重,影響序列中下一個決策樹的學習。在所有決策樹建立之後,對新數據進行預測,並且通過每個決策樹在訓練數據上的精確度評估其性能。
因為在糾正演算法錯誤上投入了太多注意力,所以具備已刪除異常值的干凈數據非常重要。
總結
初學者在面對各種機器學習演算法時經常問:「我應該用哪個演算法?」這個問題的答案取決於很多因素,包括:(1)數據的大小、質量和特性;(2)可用的計算時間;(3)任務的緊迫性;(4)你想用這些數據做什麼。
即使是經驗豐富的數據科學家在嘗試不同的演算法之前,也無法分辨哪種演算法會表現最好。雖然還有很多其他的機器學習演算法,但本篇文章中討論的是最受歡迎的演算法。如果你是機器學習的新手,這將是一個很好的學習起點。

閱讀全文

與如何了解最新機器學習演算法相關的資料

熱點內容
單片機高電平驅動 瀏覽:115
ios多選文件夾 瀏覽:907
加強行車調度命令管理 瀏覽:241
伺服器已禁用什麼意思 瀏覽:148
部隊命令回復 瀏覽:753
神奇寶貝伺服器地圖怎麼設置 瀏覽:380
加密演算法輸出固定長度 瀏覽:862
程序員去重慶還是武漢 瀏覽:121
伺服器如何撤銷網頁登錄限制 瀏覽:980
微信公眾平台php開發視頻教程 瀏覽:628
怎麼看蘋果授權綁定的app 瀏覽:255
壓縮機單級壓縮比 瀏覽:380
linux測試php 瀏覽:971
什麼時候梁旁邊需要加密箍筋 瀏覽:40
微信清粉軟體源碼 瀏覽:717
matlabdoc命令 瀏覽:550
如何去ping伺服器 瀏覽:75
ecshop安裝php55 瀏覽:817
javaword庫 瀏覽:958
php圖片路徑資料庫中 瀏覽:488