2. 由于FuzzyCMeans是聚类算法,所以直接将FuzzyCMeans.java 源程序考到 weka.clusterers 包下
3. 再修改weka.gui.GenericObjectEditor.props ,在#Lists the Clusterers I want to choose from的weka.clusterers.Clusterer=\下加入:weka.clusterers.FuzzyCMeans
4. 相应的修改weka.gui.GenericPropertiesCreator.props ,此去不用修改,因为包weka.clusterers已经存在,若加入新的包时则必须修改这里,加入新的包
我试了一下,这样加入之后,重新编译,运行后,可以在weka的Explorer界面上的Cluster选项卡中的聚类算法中找到刚刚新添加的FuzzyCMeans算法。
添加过程简单吧!关键问题是要弄清楚Weka的内核以及其接口标准,然后编写出符合此规范的新算法。
你可以用程序debug跟踪一下,以前是weka中NaiveBayesSimple类的主要函数和作用。(1) globalInfo()
返回该分类器的描述字符串.
(2) getTechnicalInformation()
返回一个TechnicalInformation类型的对象实例,包含该类的技术背景等信息.
(3) getCapabilities()
返回默认参数.
(4) BuildClassifier(Instances instances)
BuildClassifier()方法从一个训练数据集合instances构造一个分类器.求出所有名称型属性的后验概率,类属性的先验概率,数值属性的均值和方差,为后来的分类工作做准备.
(5) distributionForInstance (Instance instance)
该方法计算待分类实例instance属于各个类标的百分比,并且将各个百分比数值存于一个数组中,最后返回该数组.
(6)toString()
把分类器的参数(均值,方差,各先验概率,各后验概率)以字符串的形式返回.
(7)normalDens(double x, double mean, double stdDev)
该方法用于根据正态分布(均值为mean,方差为stdDev)计算数值型属性当属性值为x时的概率密度.
(8) getRevision()
返回程序的版本号.
(9) Main()
当类从命令行被执行时,就会调用main()方法.他只是用所给的命令行选项告诉Weka的Evaluation类来评估朴素贝叶斯,并且打印所得到的数组.完成这个功能的一行表达式包括在try-catch声明中.try-catch声明用于发现Weka例程或其他Java方法中抛出的各种异常.
在explorer中open file后见到的第一个直方图是你的Attribute属性与class(Visualize All左边的那个)的出现次数统计图,比如你的Attribute属性选择了Session ID(包含了A1,A2,B1,B2,C1,C2,C3...),class选择了Name(属性值包含Petter, Marry,Kate,Ken,Artoria),那么你得到的统计数据就是在Petter中A1,A2,B1B2,C1...各出现了多少次...Marry中A1,A2,B1,B2,C1...各出现了多少次,等等。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)