WEKA是一个完全开放的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,如对数据进行预处理、分类预测、聚类分析、关联规则挖掘、属性选择等。
在数据挖掘建模过程中,包括准备要输入的数据,进行相应的数据挖掘,然后评估建模方案,以及可视化输入数据和挖掘结果。针对不同的功能,WEKA提供了多种可供选择的算法 。
WEKA功能及其算法
预处理器具有完成对数据的装载、对缺失数据项的填补、属性过滤及实例过滤等功能。其中WEKA中的过滤算法比较完备,能够完成常用的多种数据过滤,经过预处理器处理后的数据集,能够被分类器、聚类器、关联器、属性选择器及可视化工具所共享,此时可以将它们各自的算法运用于该数据集,以完成可能的数据挖掘任务。
分类器用于训练和测试分类或回归的学习方案,将已学习到的模型对新的实例做出预测。它被划分为贝叶斯分类器、树、规则、函数、元学习、懒惰分类器以及一个最终的杂项类分类器,实现的算法比较多,有将近50种。其中,比较经典的算法有NativeBays、ID3(分治决策树)、J4.8(C4.5version 8)、OneR(1R)、Decision Table、ZeroR、Bagging、LinearRegression函数等。
聚类器完成了5种算法,包括EM(Expectation-Maximization,期望-最大化)、Cobweb、SimpleKmeans(简单K均值)、FarthestFirst(远端优先遍历)及MakeDensityBasedCluster。其中,Cobweb算法实现了用于分类型属性的Cobweb算法和用于数值性属性的Classit算法。
关联规则学习器着力于找出数据项之间的关联规则,以发现大型数据集中有价值的信息或知识。它实现了3种算法,包括Apriori、Terius和PredictiveApriori,其中Apriori算法最为经典。
属性选择器用于对属性进行筛选,一般在预处理阶段进行,它包括属性评估器和搜索方法。属性选择一般通过搜索并评估属性子集空间来实现,属性选择器包括属性子集评估器和单一属性评估器。搜索方法则是遍历整个属性空间以找到一个好的子集。其中属性子集评估器和搜索方法里的算法是一对属性选择组合,单一属性评估器和排序方法里的算法是一对属性选择组合。当用户选择了不适当的组合,那么WEKA界面会显示出错信息,用户可通过日志(Log)查看具体的错误信息。
可视化工具既可实现对某一个数据集的可视化,又可实现对某一次分类或聚类等模型的输出结果的可视化。其中,前者显示的是关于每对属性的一个二维散点图,后者显示的是分类误差(Classifiererrors)、贝叶斯网络(Bayesiannetwork)、树(Tree)、阈曲线(Threshold curve)、成本曲线(Cost curve)或聚类的分布情况等,用来评估各学习方案的性能。