WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。wekaWEKA作为一个公开的数据挖掘工作,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。
如果想自己实现数据挖掘算法的话,可以参考weka的接口文档。在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习 历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。Weka的每月次数已超过万次。
eka是很好用的机器学习库,这里就不详细介绍了。言归正传,要使用程序方式使用weka,步骤如下:
一、在eclipse里新建一个java project:
1. 建立工程:单击菜单中file->new->java project,在d出对话框的project name中起任意一个名字,此处假设是wekaTest。单击Finish按钮(在对话框底部)。
2. 建立package:在package Explorer中找到刚才新建的工程,在其上右键->New->package。在Name文本框里面输入名称,此处假设为Test。单击Finish按钮。
3. 建立程序文件:在刚才新建的package上面右键->New->class,选中public static void main(String[] args)多选框,单击Finish。
二、在该工程中添加weka的引用:
1.package Explorer中工程名上右键,选择d出菜单最后一项properties->在左面选中java Build Path->在右面的Library页面->单击Add External JARs…->浏览weka所在目录,将weka.jar添加进来,然后单击ok。
weka图形界面很多 *** 作做不了,像这种属性类别转化需调用API,写个java程序可以帮你搞定, filterOptionsNN[1] = "2-last"这个是需要转换为nominal的行数,
根据自己实际情况设置。还有读取数据和保存数据的位置也根据你的改。记得导入weka.jar。
public class xlsTOarff {
public static void main(String args[]) throws Exception{
DataSource source = new DataSource("E:\\lsn\\Rts\\Reuters-21578.csv")
Instances insTraining = source.getDataSet()
insTraining.setClassIndex(0)
String[] filterOptionsNN = new String[2]
filterOptionsNN[0] = "-C"
filterOptionsNN[1] = "2-last"
Instances finalFilteredInst = null
try{
NumericToNominal ntn = new NumericToNominal()
ntn.setOptions(filterOptionsNN)
ntn.setInputFormat(filteredInst)
finalFilteredInst = Filter.useFilter(filteredInst, ntn)
}
catch(Exception e)
{
e.printStackTrace()
}
ArffSaver saver = new ArffSaver()
saver.setInstances(finalFilteredInst)
String outputdir = "E:\\lsn\\Rts\\xlstoarff.arff"
saver.setFile(new File(outputdir))
saver.writeBatch()
System.out.println("finished!")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)