談到機器學習算法,網上充斥着無數枯燥或看不懂的資料,但經過圖文解讀,並以本身的學習經從來介紹的,恐怕只有James Le了。他在 KDnuggets 上發佈了一篇文章,逐一介紹了十大經常使用的機器學習算法。算法
(如下內容由OpenFEA編譯,未經許可不得轉載)。數據庫
機器學習算法分爲三類:有監督學習、無監督學習、加強學習。有監督學習須要標識數據(用於訓練,即有正例又有負例),無監督學習不須要標識數據,加強學習介於二者之間(有部分標識數據)。所以,算法的分類主要仍是有監督和無監督。網絡
這兩類算法,FEA所有能夠實現,並且語法結構極爲簡潔。如下咱們將分別介紹。機器學習
1、有監督的學習函數
(一)決策樹學習
一、概念測試
決策樹是一種樹形結構,爲人們提供決策依據,決策樹能夠用來回答yes和no問題,它經過樹形結構將各類狀況組合都表示出來,每一個分支表示一次選擇(選擇yes仍是no),直到全部選擇都進行完畢,最終給出正確答案。編碼
二、FEA實現方法對象
功能文檔 |
對應的FEA原語,默認public工做區 |
訓練模型 |
dt = @udf dfx,dfy by ML.dt |
預測 |
df = @udf dfz by ML.predict with (dt@public) |
打分 |
score = @udf dfx,dfy by ML.score with (dt@public) |
決策條件圖形輸出 |
dot = @udf df0@sys by ML.dt2dot with (dt@public) |
(二)樸素貝葉斯分類
一、概念
樸素貝葉斯分類是一族基於貝葉斯定理和特徵之間的強獨立性(樸素)的簡單分類器。顯著特色是方程式—— P(A|B) 是後驗機率,P(B|A) 是似然機率,P(A) 是類的先驗機率,P(B) 是預測的先驗機率。
目前,該算法用於解決以下問題:
標記一個電子郵件爲垃圾郵件或非垃圾郵件;
將新聞文章分爲技術類、政治類或體育類;
檢查一段文字表達積極的情緒,或消極的情緒?
用於人臉識別軟件。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
訓練模型 |
gnb = @udf dfx,dfy by ML.gnb |
預測 |
df = @udf dfz by ML.predict with (gnb@public) |
打分 |
score = @udf dfx,dfy by ML.score with (gnb@public) |
(三)普通的最小二乘迴歸
一、概念
若是你瞭解統計學,你之前可能據說過線性迴歸。最小二乘法是一種進行線性迴歸的方法。你能夠把線性迴歸看成使用一條直線來擬合一系列的點的任務。有多種可能的方法來作到這一點,最小二乘的策略是這樣的——你能夠畫一條線,而後對於每個數據點,計算數據點和這條線的垂直距離,而後把它們加起來;擬合的線就是那個總和的距離儘量小的線。
線性是指你用來擬合數據的模型,而最小二乘指的是你正在最小化的偏差的度量。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
訓練模型 |
model = @udf dfx,dfy by ML.LR |
預測 |
df = @udf dfz by ML.predict with (model@public) |
打分 |
score = @udf dfx,dfy by ML.score with (model@public) |
(四)邏輯迴歸
一、概念
邏輯迴歸是一種強大的統計方法,它使用一個或者更多的解釋變量對一個二項式結果建模。它經過使用logistic函數估計機率,這是累積logistic分佈,來度量分類變量和一個或者更多的自變量之間的關係。
目前,該算法用於解決以下問題:
信用評分;
度量營銷活動的成功率;
預測某一產品的收入;
在一個特定的日子裏會發生地震嗎?
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
訓練模型 |
model = @udf dfx,dfy by ML.lr |
預測 |
df = @udf dfz by ML.predict with (model@public) |
打分 |
score = @udf dfx,dfy by ML.score with (model@public) |
(五)支持向量機(SVM)
一、概念
支持向量機是一個二分類算法。給出N維空間的一組二分類的點,支持向量機產生一個 N-1 維的超平面將這些點分紅兩組。假設你在一張紙上有一些線性可分的二分類的點,支持向量機將會找到一條直線,將這些點分紅兩類,並位於離全部這些點儘量遠的位置。
就規模而言,其中一些最主要的問題已經使用支持向量機解決了(經過適當的修改),如,廣告顯示,人類的剪接位點識別,基於圖像的性別檢測,大規模圖像分類等等。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
訓練模型 |
model = @udf dfx,dfy by ML.svm |
預測 |
df = @udf dfz by ML.predict with (model@public) |
打分 |
score = @udf dfx,dfy by ML.score with (model@public) |
SVM迴歸 |
model2 = @udf dfx,dfy by ML.SVR |
(六)集成方法
一、概念
集成方法是構建一組分類器,而後經過對預測結果進行加權投票來對新的數據點進行分類。原始的集成方法是貝葉斯平均,但最近的算法包括糾錯輸出編碼,bagging, 和boosting。
那麼集成方法是怎樣工做的,爲何他們會優於單個的模型?
(1)他們拉平了輸出誤差:若是你將具備民主黨傾向的民意調查和具備共和黨傾向的民意調查取平均,你將獲得一箇中和的沒有傾向一方的結果。
(2)它們減少了方差:一堆模型的聚合結果和單一模型的結果相比具備更少的噪聲。在金融領域,這被稱爲多元化——多隻股票的混合投資要比一隻股票變化更小。這就是爲何數據點越多你的模型會越好,而不是數據點越少越好。
(3)它們不太可能產生過擬合:若是你有一個單獨的沒有過擬合的模型,你是用一種簡單的方式(平均,加權平均,邏輯迴歸)將這些預測結果結合起來,而後就沒有產生過擬合的空間了。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
訓練模型 |
model = @udf dfx,dfy by ML.gbdt |
預測 |
df = @udf dfz by ML.predict with (model@public) |
打分 |
score = @udf dfx,dfy by ML.score with (model@public) |
弱分類 |
model2 = @udf dfx,dfy by ML.adaBoost |
隨機森林 |
model2 = @udf dfx,dfy by ML.rf |
2、非監督學習
(一)聚類算法
一、概念
聚類是將一組對象進行分組,使得同一組(簇)內的對象類似性遠大於不一樣組之間的類似性。
每一種聚類算法都不太同樣,但常見的有:基於質心的算法、基於連通性的算法、基於密度的算法、機率聚類、降維、神經網絡/深度學習等。
二、FEA實現方法
聚類 |
分紅4類,對應的FEA原語 |
kmeans |
k = @udf df by ML.kmeans with 4 |
均值漂移聚類 |
k = @udf df by ML.means with 4 |
譜聚類 |
k = @udf df by ML.sc with 4 |
密度聚類 |
k = @udf df by ML.db |
傳播聚類 |
k = @udf df by ML.ap |
綜合層次聚類 |
k = @udf df by ML.brich |
(二)主成分分析(PCA)
一、概念
主成分分析是一個統計過程,它使用正交變換,將一組可能相關的變量的一組觀測值變換成線性不相關的變量,這些變量稱爲主成分。
PCA的應用包括壓縮,簡化數據使它們更容易學習,可視化。注意,選擇是否使用主成分分析,領域知識是很是重要的。當數據充滿噪聲時,主成分分析是不合適的(主成分分析的全部成分都有很高的方差)。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
降維 |
df2 = @udf df by ML.pca with (2) |
模型數據 |
cmpts = @udf df by ML.pca_cmpts |
各變量佔比 |
ratio = @udf df by ML.pca_ratio |
(三)奇異值分解(SVD)
一、概念
在線性代數中,SVD是分解一個實數的比較複雜的矩陣。對於一個給定的m*n的矩陣M,存在一個分解M = UΣV,這裏U和V是酉矩陣,Σ是一個對角矩陣。
PCA 是 SVD 的一個簡單應用,在計算機視覺中,第一我的臉識別算法,就運用了 PCA 和 SVD 算法。使用這兩個算法能夠將人臉表示爲 「特徵臉」線性組合,降維,而後經過簡單的方法匹配人臉的身份;雖然現代的方法複雜得多,但許多仍然依賴於相似的技術。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
降維 |
df2 = @udf df by ML.svd with (2) |
模型數據 |
cmpts = @udf df by ML.svd_cmpts |
各變量佔比 |
ratio = @udf df by ML.svd_ratio |
(四)獨立成分分析(ICA)
一、概念
獨立成分分析是一種統計方法,用來揭示隨機變量集測試,信號集中的隱藏因素。獨立成分分析爲觀測到的多變量的集合定義生成模型,它一般做爲大型的樣本數據數據庫。在這個模型中,數據變量被假定爲與一些潛在的未知變量的線性混合,混合系統也不知道。潛在變量被假設爲非高斯而且相互獨立的,它們被稱爲所觀察到的數據的獨立成分。
ICA 和 PCA 是相關的,可是它是一種更強大的技術,當那些經典的方法徹底失效的時候,它可以從數據源中發現潛在的因素。它的應用包括數字圖像,文檔數據庫,經濟指標和心理測量。
二、FEA實現方法
功能 |
對應的FEA原語,默認public工做區 |
降維 |
df2 = @udf df by ML.ica with (2) |
模型數據 |
cmpts = @udf df by ML.ica_cmpts |
除了上述10大算法外,FEA裏還集成了KNN分類算法、lda線性判別分析、tsne二維可視化等算法,總之你搞機器學習,選FEA就對了。