开源机器学习:R Meets Weka zz
http://liouwei20051000285.blog.163.com/blog/static/2523674201052844649212/
背景介紹:?
1)Weka:
Weka有兩種意思:一種不會飛的鳥的名字,一個機(jī)器學(xué)習(xí)開源項目的簡稱(Waikato Environment for Knowledge Analysis,http://www.cs.waikato.ac.nz/~ml/weka/)。我們這里當(dāng)然要介紹的是第二種意思啦,Weka項目從1992年開始,由新西蘭政府支持,現(xiàn)在已在機(jī)器學(xué)習(xí)領(lǐng)域大名鼎鼎。Weka里有非常全面的機(jī)器學(xué)習(xí)算法,包括數(shù)據(jù)預(yù)處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則等。Weka的圖形界面對不會寫程序的人來說非常方便,而且提供“KnowledgeFlow” 功能,允許將多個步驟組成一個工作流。另外,Weka也允許在命令行執(zhí)行命令。?
2)R?
R就不用我廢話了吧,呵呵,越來越受歡迎的統(tǒng)計軟件(http://www.r-project.org/)。?
3)R與Weka:
R里有很多機(jī)器學(xué)習(xí)的函數(shù)和包,不過Weka里提供的函數(shù)更全面更集中,所以我有時候需要用到Weka。以前我是這樣用R和Weka的:?
在R中準(zhǔn)備好訓(xùn)練的數(shù)據(jù)(如:提取數(shù)據(jù)特征……);?
整理成Weka需要的格式(*.arff);?
在Weka里做機(jī)器學(xué)習(xí)(如:特征選擇、分類……);?
從Weka的預(yù)測結(jié)果計算需要的統(tǒng)計量(如:sensitivity, specificity, MCC……)。?
來回?fù)v騰兩個軟件還是挺麻煩的;為了偷懶,我沒學(xué)Weka的命令行,只會用圖形界面的,在數(shù)據(jù)量大的時候非常受罪,有時候還會內(nèi)存不夠。現(xiàn)在發(fā)現(xiàn)R竟然提供了和Weka的接口函數(shù)包RWeka,以后方便多了哦,下面介紹一下RWeka的功能:?
RWeka?(http://cran.r-project.org/web/packages/RWeka/index.html) :?
1) 數(shù)據(jù)輸入和輸出
WOW():查看Weka函數(shù)的參數(shù)。?
Weka_control():設(shè)置Weka函數(shù)的參數(shù)。?
read.arff():讀Weka Attribute-Relation File Format (ARFF)格式的數(shù)據(jù)。?
write.arff:將數(shù)據(jù)寫入Weka Attribute-Relation File Format (ARFF)格式的文件。?
2) 數(shù)據(jù)預(yù)處理
Normalize():無監(jiān)督的標(biāo)準(zhǔn)化連續(xù)性數(shù)據(jù)。?
Discretize():用MDL(Minimum Description Length)方法,有監(jiān)督的離散化連續(xù)性數(shù)值數(shù)據(jù)。?
3) 分類和回歸
IBk():k最近鄰分類?
LBR():naive Bayes法分類?
J48():C4.5決策樹算法(決策樹在分析各個屬性時,是完全獨(dú)立的)。?
LMT():組合樹結(jié)構(gòu)和Logistic回歸模型,每個葉子節(jié)點(diǎn)是一個Logistic回歸模型,準(zhǔn)確性比單獨(dú)的決策樹和Logistic回歸方法要好。?
M5P():M5 模型數(shù)算法,組合了樹結(jié)構(gòu)和線性回歸模型,每個葉子節(jié)點(diǎn)是一個線性回歸模型,因而可用于連續(xù)數(shù)據(jù)的回歸。?
DecisionStump():單層決策樹算法,常被作為boosting的基本學(xué)習(xí)器。?
SMO():支持向量機(jī)分類?
AdaBoostM1():Adaboost M1方法。-W參數(shù)指定弱學(xué)習(xí)器的算法。?
Bagging():通過從原始數(shù)據(jù)取樣(用替換方法),創(chuàng)建多個模型。?
LogitBoost():弱學(xué)習(xí)器采用了對數(shù)回歸方法,學(xué)習(xí)到的是實(shí)數(shù)值?
MultiBoostAB():AdaBoost 方法的改進(jìn),可看作AdaBoost 和 “wagging”的組合。?
Stacking():用于不同的基本分類器集成的算法。?
LinearRegression():建立合適的線性回歸模型。?
Logistic():建立logistic回歸模型。?
JRip():一種規(guī)則學(xué)習(xí)方法。?
M5Rules():用M5方法產(chǎn)生回歸問題的決策規(guī)則。?
OneR():簡單的1-R分類法。?
PART():產(chǎn)生PART決策規(guī)則。?
4) 聚類
Cobweb():這是種基于模型方法,它假設(shè)每個聚類的模型并發(fā)現(xiàn)適合相應(yīng)模型的數(shù)據(jù)。不適合對大數(shù)據(jù)庫進(jìn)行聚類處理。?
FarthestFirst():快速的近似的k均值聚類算法?
SimpleKMeans():k均值聚類算法?
XMeans():改進(jìn)的k均值法,能自動決定類別數(shù)?
DBScan():基于密度的聚類方法,它根據(jù)對象周圍的密度不斷增長聚類。它能從含有噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的聚類。此方法將一個聚類定義為一組“密度連接”的點(diǎn)集。?
5)關(guān)聯(lián)規(guī)則
Apriori():Apriori是關(guān)聯(lián)規(guī)則領(lǐng)域里最具影響力的基礎(chǔ)算法,是一種廣度優(yōu)先算法,通過多次掃描數(shù)據(jù)庫來獲取支持度大于最小支持度的頻繁項集。它的理論基礎(chǔ)是頻繁項集的兩個單調(diào)性原則:頻繁項集的任一子集一定是頻繁的;非頻繁項集的任一超集一定是非頻繁的。在海量數(shù)據(jù)的情況下,Apriori 算法的時間和空間成本非常高。?
Tertius():Tertius算法。?
6)預(yù)測和評估:
predict():根據(jù)分類或聚類結(jié)果預(yù)測新數(shù)據(jù)的類別?
table():比較兩個因子對象?
evaluate_Weka_classifier():評估模型的執(zhí)行,如:TP Rate,FP Rate,Precision,Recall,F-Measure。
總結(jié)
以上是生活随笔為你收集整理的开源机器学习:R Meets Weka zz的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 的分区
- 下一篇: 在weka中配置自己的算法 zz