找工作時(IT行業(yè)),除了常見的軟件開發(fā)以外,機器學(xué)習(xí)崗位也可以當(dāng)作是一個選擇,不少計算機方向的研究生都會接觸這個,如果你的研究方向是機器學(xué)習(xí)/數(shù)據(jù)挖掘之類,且又對其非常感興趣的話,可以考慮考慮該崗位,畢竟在機器智能沒達(dá)到人類水平之前,機器學(xué)習(xí)可以作為一種重要手段,而隨著科技的不斷發(fā)展,相信這方面的人才需求也會越來越大。
縱觀IT行業(yè)的招聘崗位,機器學(xué)習(xí)之類的崗位還是挺少的,國內(nèi)大點的公司里百度,阿里,騰訊,網(wǎng)易,搜狐,華為(華為的崗位基本都是隨機分配,機器學(xué)習(xí)等崗位基本面向的是博士)等會有相關(guān)職位,另外一些國內(nèi)的中小型企業(yè)和外企也會招一小部分。當(dāng)然了,其中大部分還是百度北京要人最多,上百人。阿里的算法崗位很大一部分也是搞機器學(xué)習(xí)相關(guān)的。
毫無疑問,機器學(xué)習(xí)/人工智能的子領(lǐng)域在過去幾年越來越受歡迎。目前大數(shù)據(jù)在科技行業(yè)已經(jīng)炙手可熱,而基于大量數(shù)據(jù)來進(jìn)行預(yù)測或者得出建議的機器學(xué)習(xí)無疑是非常強大的。一些最常見的機器學(xué)習(xí)例子,比如Netflix的算法可以根據(jù)你以前看過的電影來進(jìn)行電影推薦,而Amazon的算法則可以根據(jù)你以前買過的書來推薦書籍。
在這篇文章中,分享一些最常用的機器學(xué)習(xí)算法。
機器學(xué)習(xí)算法可以分為三大類:監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。
監(jiān)督學(xué)習(xí)可用于一個特定的數(shù)據(jù)集(訓(xùn)練集)具有某一屬性(標(biāo)簽),但是其他數(shù)據(jù)沒有標(biāo)簽或者需要預(yù)測標(biāo)簽的情況。無監(jiān)督學(xué)習(xí)可用于給定的沒有標(biāo)簽的數(shù)據(jù)集(數(shù)據(jù)不是預(yù)分配好的),目的就是要找出數(shù)據(jù)間的潛在關(guān)系。強化學(xué)習(xí)位于這兩者之間,每次預(yù)測都有一定形式的反饋,但是沒有精確的標(biāo)簽或者錯誤信息。因為這是一個介紹課程,我沒有學(xué)習(xí)過強化學(xué)習(xí)的相關(guān)內(nèi)容,但是我希望以下10個關(guān)于監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的算法足以讓你感興趣
監(jiān)督學(xué)習(xí)
1.決策樹(Decision Trees)
決策樹是一個決策支持工具,它使用樹形圖或者決策模型以及可能性序列,包括偶然事件的結(jié)果、資源成本和效用。
根據(jù)一些 feature 進(jìn)行分類,每個節(jié)點提一個問題,通過判斷,將數(shù)據(jù)分為兩類,再繼續(xù)提問。這些問題是根據(jù)已有數(shù)據(jù)學(xué)習(xí)出來的,再投入新數(shù)據(jù)的時候,就可以根據(jù)這棵樹上的問題,將數(shù)據(jù)劃分到合適的葉子上。
決策樹
決策樹的優(yōu)點:
計算量簡單,可解釋性強,比較適合處理有缺失屬性值的樣本,能夠處理不相關(guān)的特征;
缺點:
容易過擬合(后續(xù)出現(xiàn)了隨機森林,減小了過擬合現(xiàn)象);
2.樸素貝葉斯分類(Naive Bayesian classification)
樸素貝葉斯分類器是一類簡單的概率分類器,它基于貝葉斯定理和特征間的強大的(樸素的)獨立假設(shè)。圖中是貝葉斯公式,其中P(A|B)是后驗概率,P(B|A)是似然,P(A)是類先驗概率,P(B)是預(yù)測先驗概率。
樸素貝葉斯
一些應(yīng)用例子:
-
判斷垃圾郵件
-
對新聞的類別進(jìn)行分類,比如科技、政治、運動
-
判斷文本表達(dá)的感情是積極的還是消極的
-
人臉識別
-
樸素貝葉斯的優(yōu)點:
-
對小規(guī)模的數(shù)據(jù)表現(xiàn)很好,適合多分類任務(wù),適合增量式訓(xùn)練。
-
缺點:
-
對輸入數(shù)據(jù)的表達(dá)形式很敏感。
3.邏輯回歸(Logistic Regression)
邏輯回歸是一個強大的統(tǒng)計學(xué)方法,它可以用一個或多個解釋變量來表示一個二項式結(jié)果。它通過使用邏輯函數(shù)來估計概率,從而衡量類別依賴變量和一個或多個獨立變量之間的關(guān)系,后者服從累計邏輯分布。
總的來說,邏輯回歸可以用于以下幾個真實應(yīng)用場景:
-
信用評分
-
計算營銷活動的成功率
-
預(yù)測某個產(chǎn)品的收入
-
特定的某一天是否會發(fā)生地震
Logistic回歸優(yōu)點:
1、實現(xiàn)簡單;
2、分類時計算量非常小,速度很快,存儲資源低;
缺點:
1、容易欠擬合,一般準(zhǔn)確度不太高
2、只能處理兩分類問題(在此基礎(chǔ)上衍生出來的softmax可以用于多分類),且必須線性可分;
4.線性回歸:
線性回歸才是真正用于回歸的,而不像logistic回歸是用于分類,其基本思想是用梯度下降法對最小二乘法形式的誤差函數(shù)進(jìn)行優(yōu)化.最小二乘法是一種計算線性回歸的方法。你可以將線性回歸看做通過一組點來擬合一條直線。實現(xiàn)這個有很多種方法,“最小二乘法”就像這樣:你可以畫一條直線,然后對于每一個數(shù)據(jù)點,計算每個點到直線的垂直距離,然后把它們加起來,那么最后得到的擬合直線就是距離和盡可能小的直線。
線性回歸優(yōu)點:
實現(xiàn)簡單,計算簡單;
缺點:
不能擬合非線性數(shù)據(jù);
5.支持向量機(Support Vector Machine,SVM)
SVM是二進(jìn)制分類算法。給定N維坐標(biāo)下兩種類型的點,SVM生成(N-1)維的超平面來將這些點分成兩組。假設(shè)你在平面上有兩種類型的可以線性分離的點,SVM將找到一條直線,將這些點分成兩種類型,并且這條直線盡可能遠(yuǎn)離所有這些點。
從規(guī)模上看,使用SVM(經(jīng)過適當(dāng)?shù)男薷模┙鉀Q的一些最大的問題包括顯示廣告、人類剪切位點識別(human splice site recognition)、基于圖像的性別檢測,大規(guī)模圖像分類……
SVM算法優(yōu)點:
可用于線性/非線性分類,也可以用于回歸;
低泛化誤差;
容易解釋;
計算復(fù)雜度較低;
缺點:
對參數(shù)和核函數(shù)的選擇比較敏感;
原始的SVM只比較擅長處理二分類問題;
6.集成方法(Ensemble methods)
集成方法是學(xué)習(xí)算法,它通過構(gòu)建一組分類器,然后通過它們的預(yù)測結(jié)果進(jìn)行加權(quán)投票來對新的數(shù)據(jù)點進(jìn)行分類。原始的集成方法是貝葉斯平均,但是最近的算法包括糾錯輸出編碼、Bagging和Boosting。
那么集成方法如何工作?并且為什么它們要優(yōu)于單個模型?
-
它們平均了單個模型的偏差:如果你將民主黨的民意調(diào)查和共和黨的民意調(diào)查在一起平均化,那么你將得到一個均衡的結(jié)果,不偏向任何一方。
-
它們減少了方差:一組模型的總體意見比其中任何一個模型的單一意見更加統(tǒng)一。在金融領(lǐng)域,這就是所謂的多元化,有許多股票的組合比一個單獨的股票的不確定性更少,這也為什么你的模型在數(shù)據(jù)多的情況下會更好的原因。
-
它們不太可能過擬合:如果你有單個的模型沒有過擬合,那么把這些模型的預(yù)測簡單結(jié)合起來(平均、加權(quán)平均、邏輯回歸),那么最后得到的模型也不會過擬合。
無監(jiān)督學(xué)習(xí)
7.聚類算法(Clustering Algorithms)
聚類是將一系列對象分組的任務(wù),目標(biāo)是使相同組(集群)中的對象之間比其他組的對象更相似。
根據(jù)聚類思想劃分:
1. 基于劃分的聚類:
K-means, k-medoids(每一個類別中找一個樣本點來代表),CLARANS.
k-means是使下面的表達(dá)式值最小:
k-means算法的優(yōu)點:
(1)k-means算法是解決聚類問題的一種經(jīng)典算法,算法簡單、快速。
(2)對處理大數(shù)據(jù)集,該算法是相對可伸縮的和高效率的,因為它的復(fù)雜度大約是O(nkt),其中n是所有對象的數(shù)目,k是簇的數(shù)目,t是迭代的次數(shù)。通常k<
(3)算法嘗試找出使平方誤差函數(shù)值最小的k個劃分。當(dāng)簇是密集的、球狀或團狀的,且簇與簇之間區(qū)別明顯時,聚類效果較好。
缺點:
(1)k-平均方法只有在簇的平均值被定義的情況下才能使用,且對有些分類屬性的數(shù)據(jù)不適合。
(2)要求用戶必須事先給出要生成的簇的數(shù)目k。
(3)對初值敏感,對于不同的初始值,可能會導(dǎo)致不同的聚類結(jié)果。
(4)不適合于發(fā)現(xiàn)非凸面形狀的簇,或者大小差別很大的簇。
(5)對于"噪聲"和孤立點數(shù)據(jù)敏感,少量的該類數(shù)據(jù)能夠?qū)ζ骄诞a(chǎn)生極大影響。
2. 基于層次的聚類:
自底向上的凝聚方法,比如AGNES。
自上向下的分裂方法,比如DIANA。
3. 基于密度的聚類:
DBSACN,OPTICS,BIRCH(CF-Tree),CURE.
4. 基于網(wǎng)格的方法:
STING, WaveCluster.
5. 基于模型的聚類:
EM,SOM,COBWEB.
每一種聚類算法都不相同,下面是一些例子:
-
基于質(zhì)心的算法
-
基于連接的算法
-
基于密度的算法
-
概率
-
降維
8.主成分分析(Principal Component Analysis,PCA)
PCA是一個統(tǒng)計學(xué)過程,它通過使用正交變換將一組可能存在相關(guān)性的變量的觀測值轉(zhuǎn)換為一組線性不相關(guān)的變量的值,轉(zhuǎn)換后的變量就是所謂的主分量。
PCA的一些應(yīng)用包括壓縮、簡化數(shù)據(jù)便于學(xué)習(xí)、可視化等。請注意,領(lǐng)域知識在選擇是否繼續(xù)使用PCA時非常重要。 數(shù)據(jù)嘈雜的情況(PCA的所有成分具有很高的方差)并不適用。
9.奇異值分解(Singular Value Decomposition,SVD)
在線性代數(shù)中,SVD是復(fù)雜矩陣的因式分解。對于給定的m * n矩陣M,存在分解使得M=UΣV,其中U和V是酉矩陣,Σ是對角矩陣。
實際上,PCA是SVD的一個簡單應(yīng)用。在計算機視覺中,第一個人臉識別算法使用PCA和SVD來將面部表示為“特征面”的線性組合,進(jìn)行降維,然后通過簡單的方法將面部匹配到身份,雖然現(xiàn)代方法更復(fù)雜,但很多方面仍然依賴于類似的技術(shù)。
10.獨立成分分析(Independent Component Analysis,ICA)
ICA是一種統(tǒng)計技術(shù),主要用于揭示隨機變量、測量值或信號集中的隱藏因素。ICA對觀測到的多變量數(shù)據(jù)定義了一個生成模型,這通常是作為樣本的一個大的數(shù)據(jù)庫。在模型中,假設(shè)數(shù)據(jù)變量由一些未知的潛在變量線性混合,混合方式也是未知的。潛在變量被假定為非高斯分布并且相互獨立,它們被稱為觀測數(shù)據(jù)的獨立分量。
ICA與PCA有關(guān),但是當(dāng)這些經(jīng)典方法完全失效時,它是一種更強大的技術(shù),能夠找出源的潛在因素。 其應(yīng)用包括數(shù)字圖像、文檔數(shù)據(jù)庫、經(jīng)濟指標(biāo)和心理測量。
11.神經(jīng)網(wǎng)絡(luò)(Neural Networks)
Neural Networks 適合一個input可能落入至少兩個類別里
NN 由若干層神經(jīng)元,和它們之間的聯(lián)系組成
第一層是 input 層,最后一層是 output 層
在 hidden 層 和 output 層都有自己的 classifier
input 輸入到網(wǎng)絡(luò)中,被激活,計算的分?jǐn)?shù)被傳遞到下一層,激活后面的神經(jīng)層,最后output 層的節(jié)點上的分?jǐn)?shù)代表屬于各類的分?jǐn)?shù),下圖例子得到分類結(jié)果為 class 1
同樣的 input 被傳輸?shù)讲煌墓?jié)點上,之所以會得到不同的結(jié)果是因為各自節(jié)點有不同的weights 和 bias
這也就是 forward propagation
12.馬爾科夫(Markov Chains)
Markov Chains 由 state 和 transitions 組成
栗子,根據(jù)這一句話 ‘the quick brown fox jumps over the lazy dog’,要得到 markov chain
步驟,先給每一個單詞設(shè)定成一個狀態(tài),然后計算狀態(tài)間轉(zhuǎn)換的概率
這是一句話計算出來的概率,當(dāng)你用大量文本去做統(tǒng)計的時候,會得到更大的狀態(tài)轉(zhuǎn)移矩陣,例如 the 后面可以連接的單詞,及相應(yīng)的概率
生活中,鍵盤輸入法的備選結(jié)果也是一樣的原理,模型會更高級
-
機器人
+關(guān)注
關(guān)注
211文章
28379瀏覽量
206913 -
人工智能
+關(guān)注
關(guān)注
1791文章
47183瀏覽量
238246 -
機器學(xué)習(xí)算法
+關(guān)注
關(guān)注
2文章
47瀏覽量
6457
原文標(biāo)題:淺談常見的機器學(xué)習(xí)算法
文章出處:【微信號:eetop-1,微信公眾號:EETOP】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論