【转】开源机器学习之RWeka
背景介紹:
1)Weka:
Weka有兩種意思:一種不會(huì)飛的鳥的名字,一個(gè)機(jī)器學(xué)習(xí)開源項(xiàng)目的簡稱(Waikato Environment for Knowledge Analysis,http://www.cs.waikato.ac.nz/~ml/weka/)。我們這里當(dāng)然要介紹的是第二種意思啦,Weka項(xiàng)目從1992年開始,由新西蘭政府支持,現(xiàn)在已在機(jī)器學(xué)習(xí)領(lǐng)域大名鼎鼎。Weka里有非常全面的機(jī)器學(xué)習(xí)算法,包括數(shù)據(jù)預(yù)處理、分類、回歸、聚類、關(guān)聯(lián)規(guī)則等。Weka的圖形界面對不會(huì)寫程序的人來說非常方便,而且提供“KnowledgeFlow” 功能,允許將多個(gè)步驟組成一個(gè)工作流。另外,Weka也允許在命令行執(zhí)行命令。
2)R
R就不用我廢話了吧,呵呵,越來越受歡迎的統(tǒng)計(jì)軟件(http://www.r-project.org/)。
3)R與Weka:
R里有很多機(jī)器學(xué)習(xí)的函數(shù)和包,不過Weka里提供的函數(shù)更全面更集中,所以我有時(shí)候需要用到Weka。以前我是這樣用R和Weka的:
在R中準(zhǔn)備好訓(xùn)練的數(shù)據(jù)(如:提取數(shù)據(jù)特征……);
整理成Weka需要的格式(*.arff);
在Weka里做機(jī)器學(xué)習(xí)(如:特征選擇、分類……);
從Weka的預(yù)測結(jié)果計(jì)算需要的統(tǒng)計(jì)量(如:sensitivity, specificity, MCC……)。
來回?fù)v騰兩個(gè)軟件還是挺麻煩的;為了偷懶,我沒學(xué)Weka的命令行,只會(huì)用圖形界面的,在數(shù)據(jù)量大的時(shí)候非常受罪,有時(shí)候還會(huì)內(nèi)存不夠?,F(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決策樹算法(決策樹在分析各個(gè)屬性時(shí),是完全獨(dú)立的)。
LMT():組合樹結(jié)構(gòu)和Logistic回歸模型,每個(gè)葉子節(jié)點(diǎn)是一個(gè)Logistic回歸模型,準(zhǔn)確性比單獨(dú)的決策樹和Logistic回歸方法要好。
M5P():M5 模型數(shù)算法,組合了樹結(jié)構(gòu)和線性回歸模型,每個(gè)葉子節(jié)點(diǎn)是一個(gè)線性回歸模型,因而可用于連續(xù)數(shù)據(jù)的回歸。
DecisionStump():單層決策樹算法,常被作為boosting的基本學(xué)習(xí)器。
SMO():支持向量機(jī)分類
AdaBoostM1():Adaboost M1方法。-W參數(shù)指定弱學(xué)習(xí)器的算法。
Bagging():通過從原始數(shù)據(jù)取樣(用替換方法),創(chuàng)建多個(gè)模型。
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è)每個(gè)聚類的模型并發(fā)現(xiàn)適合相應(yīng)模型的數(shù)據(jù)。不適合對大數(shù)據(jù)庫進(jìn)行聚類處理。
FarthestFirst():快速的近似的k均值聚類算法
SimpleKMeans():k均值聚類算法
XMeans():改進(jìn)的k均值法,能自動(dòng)決定類別數(shù)
DBScan():基于密度的聚類方法,它根據(jù)對象周圍的密度不斷增長聚類。它能從含有噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的聚類。此方法將一個(gè)聚類定義為一組“密度連接”的點(diǎn)集。
5)關(guān)聯(lián)規(guī)則
Apriori():Apriori是關(guān)聯(lián)規(guī)則領(lǐng)域里最具影響力的基礎(chǔ)算法,是一種廣度優(yōu)先算法,通過多次掃描數(shù)據(jù)庫來獲取支持度大于最小支持度的頻繁項(xiàng)集。它的理論基礎(chǔ)是頻繁項(xiàng)集的兩個(gè)單調(diào)性原則:頻繁項(xiàng)集的任一子集一定是頻繁的;非頻繁項(xiàng)集的任一超集一定是非頻繁的。在海量數(shù)據(jù)的情況下,Apriori 算法的時(shí)間和空間成本非常高。
Tertius():Tertius算法。
6)預(yù)測和評估:
predict():根據(jù)分類或聚類結(jié)果預(yù)測新數(shù)據(jù)的類別
table():比較兩個(gè)因子對象
evaluate_Weka_classifier():評估模型的執(zhí)行,如:TP Rate,FP Rate,Precision,Recall,F-Measure。
轉(zhuǎn)載于:https://www.cnblogs.com/caleb/archive/2011/05/03/2035583.html
總結(jié)
以上是生活随笔為你收集整理的【转】开源机器学习之RWeka的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PE关于导入表(IAT)知识复习
- 下一篇: day 01 python爬虫原理