weka源代码分析-总述

WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。

Weka是一个开源的软件,阅读并理解其源代码可以帮助我们更好的理解算法的细节,同时也能够扩展其算法以获得更广泛的应用。但是现在公开的资料中对weka源代码分析的内容很少,所以本博客推出weka源代码分析系列,将针对weka中实现各种算法分析器实现细节。

本系列根据weka功能的划分主要分析器分类算法、聚类算法、规则挖掘等,分别介绍其中的各个算法,最后介绍如何对weka进行扩展。

本系列主要分析weka3.7.6版本

本文首先概要列出分类、聚类以及规则挖掘等主要实现的算法以及类结构关系,以便有个大致的了解。

分类:

所有的分类器都继承自抽象类AbstractClassifier而AbstractClassifier继承自接口Classifier。集成关系如下图所示:


而类Classifier中主要包含以下接口:

public abstract voidbuildClassifier(Instances data) throws Exception;

该方法主要用于根据样本数据data训练出分类器;

public double classifyInstance(Instanceinstance) throws Exception;

该方法是对样本instance进行分类并返回最有可能的类;

public double[] distributionForInstance(Instanceinstance) throws Exception;

对样本instance进行分类,如果分类成功则返回的数组值包含该类别,否则数组元素全为0;

 

所有的classifier必须实现classifyInstance或distributionForInstance。

 

聚类:

所有的聚类算法都集成自AbstractClusterer,而AbstractClusterer继承自接口Clusterer,主要调用关系如下:



Clusterer主要实现的接口如下:

voidbuildClusterer(Instances data) throws Exception;

根据样本数据训练聚类算法;

intclusterInstance(Instance instance) throws Exception;

public double[]distributionForInstance(Instance instance) throws Exception;

为实例归类;

intnumberOfClusters() throws Exception;

返回聚类个数;

同样所有的聚类算法都必须实现clusterInstance或distributionForInstance。

 

规则挖掘:

关联规则主要实现的算法有Apriori,Fpgrowth等,

类关系如下:



Associator中主要实现

voidbuildAssociations(Instances data) throws Exception;

该方法主要用于生成规则生成器。

对于以上所列的算法的实现细节以及其他的诸如数据预处理、可视化等的代码后面会一一详细列出。


目录 Weka 开发[1]-Instances类 1 Weka开发[2]-分类器类 2 Weka开发[3]-Evaluation类 3 Weka开发[4]-特征选择 4 Weka开发[5]-半监督算法 6 Weka开发[0]-导入Weka包 8 半监督算法工具SVMlin使用 12 半监督算法工具SVMlin读取数据代码介绍 14 Weka开发[6]-参数设置 16 Weka开发[7]-LibSVM 17 Weka开发[8]-ID3源码介绍 18 Weka开发[9]—KMeans源码介绍 21 Weka开发[10]—NBTree源码介绍 25 Weka开发[11]—J48源代码介绍 31 Weka开发[13]-Ensemble 39 Weka开发[14]-AdaBoost源代码介绍 42 Weka开发[15]-ZeroR源代码介绍(入门篇) 45 Multi-Label Classification(多标签分类) 介绍 47 Weka开发[16]-OneR源代码介绍 47 Weka开发[-1]——在你的代码使用Weka 51 挖掘多标签数据综述(multi-label data mining)[Available] 62 数据流-移动超平面(HyperPlane)构造 63 Weka开发[17]——关联规则之Apriori 66 Weka开发[18]——寻找K个邻居 67 Weka开发[19]——NaiveBayes源代码分析 69 Weka开发[20]——IB1源代码分析 74 Weka开发[21]——IBk(KNN)源代码分析 77 Weka开发[22]——REPTree源代码分析(1) 81 Weka开发[23]——PART源代码分析 94 Weka开发[24]——Apriori源代码分析(1) 101 Weka开发[24]——Apriori源代码分析(2) 106 Weka开发[25]——Bagging源代码分析 112 Weka开发[26]——Voting源代码分析 116 Weka开发[27]——SMO源代码分析[1] 122 Weka开发[27]——SMO源代码分析[2] 127 weka开发[27]——SMO源代码分析[3] 132 Weka开发[27]——SMO源代码分析[4] 138
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值