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