使用Weka快速实践机器学习算法

【译者注】在当下人工智能火爆发展的局面,每时每刻都有新的技术在诞生,但如果你是一个新手,Weka或许能帮助你直观、快速的感受机器学习带来的解决问题的新思路。

Weka使机器学习的应用变得简单、高效并且充满乐趣。它拥有图形界面,并且允许你加载自己的数据集,运行算法并且产生足够可靠、让人信服的结果。

我把Weka推荐给机器学习的新手,因为它帮助我们把精力集中在机器学习应用的本身,而不是陷入数学和编程的泥潭。这些技能可以在后续的学习中逐渐掌握。

本文将一步步告诉你如何加载数据集,运行高级的分类算法并且展示分类结果,这看起来很简单。跟随我的操作,你会在5分钟内得到机器学习的结果,并且你可以使用这个方法常识更多的数据集和算法。

1. 下载并安装Weka

访问Weka下载页面,根据你的系统下载合适的版本(Windows,Mac 或Linux)。

运行Weka需要Java环境,请先确认你已经安装了Java。针对Windows平台,Weka提供了集成Java的版本,这样你不需要另外单独安装Java环境。

2. 启动Weka

双击weka.jar文件,程序将启动一个Weka GUI Chooser,通过这个界面可以运行Explorer(探索模式),Experimenter(实验),KnowledgeExplorer和Simple CLI(command line interface)。

点击“Explorer”按钮启动Weka Explorer。

这个界面中,你可以加载数据集,运行分类算法。也提供了数据过滤、聚类、关联规则提取和可视化等特性,但我们并不会现在就使用这些特性。

3. 打开 data/iris.arff 数据集(Dataset)

Weka提供了一些小型公共机器学习数据集可以用来实践。

单击“Open file...”按钮从本地目录中选择 “iris.arff” 文件加载Iris(鸢尾花)数据集。

鸢尾花(Iris)数据集是一个著名的统计学资料,被机器学习研究人员大量使用。它包含了150组实例,4种生物特征和每组实例对应的鸢尾花种类(setosa,versicolor,virginica),你可以从维基百科了解到更多关于鸢尾花数据集的信息

4.选择并且运行算法

现在你已经加载了数据集,是时候选择一个机器学习算法建立问题模型并且做出预测。

单击“Classify”选项卡,在这里你可以针对加载的数据集运行处理算法。

你需要注意到“ZeroR”算法被默认选中,单击“Start”按钮运行算法。

ZeroR算法选择数据集中的主要种类(鸢尾花的三种特性在数据中等比例呈现,所以它得出的结果是第一种:setosa)并以此完成所有的预测。这是衡量其它算法正确性的基准。正如我们所期望的,结果是33%(共三种类别,每种有相同的可能性,相当于三分之一,每次预测有33%的分类准确度)。

也许你注意到了测试选项(test options)使用了10倍交叉验证。这意味着数据集会被分为10份,前九份用来训练算法,第10份用来评估算法。重复这个过程,使者10份被分割的数据集都有可能被用作测试集。你可以从这里了解更多关于交叉验证的知识

ZeroR算法虽然重要,但太让人厌烦了。

单击“Choose”按钮,在Classifier区域单击“trees”然后选择“J48”算法。这是一个C4.8算法的Java实现(J 代表Java,48代表C4.8,因此使用了J48这个名字)同时也是著名的C4.5算法的延伸。你可以从跟这里了解更多关于C4.5的知识

单击“Start”运行算法。

5. 运行结果

运行J48算法之后,你会注意到“Classifier output”区域输出的结果。

算法运行了10倍交叉验证,这意味着数据集中的每组实例都有机会用来做预测(在分成不同份之后)展现的结果,是这些预测的汇总。

首先请注意“Classification Accuracy”,可以看出算法模型达到了96%的准确度,看起来比基准值33%好太多了。

然后看“Confusion Matrix”,你可以看到真实的分类结果的表格。其中1个错误,把Iris-vsetosa分类到了Iris-versicolor,2个把Iris-virginica分类到Iris-versicolor还有3个Iris-versicolor被分类到Iris-setosa(一共6个错误)。这个表格可以帮助解释算法的准确度。

总结

本文中你使用Weka加载了第一个数据集并且运行了第一个机器学习算法(C4.8算法的一种实现)。ZeroR算法不能计算在内,它只是一个好用的判断基准。

你现在知道了使用Weka加载数据和运行算法的方法,以后可以尝试不同的算法看能得出什么结果。

如果你使用Iris数据集得到了比96%更高的准确度,可以在评论区告诉我。

[1] How to run your first classify in Weka

[2] ZeroR算法介绍

时间: 2024-08-02 10:30:06

使用Weka快速实践机器学习算法的相关文章

Fregata 机器学习算法库开源:快速,无需调参

一. 大规模机器学习的挑战 随着互联网,移动互联网的兴起,可以获取的数据变得越来越多,也越来越丰富.数据资源的丰富,给机器学习带来了越来越多,越来越大创造价值的机会. 机器学习在计算广告,推荐系统这些价值上千亿美元的应用中起到的作用越来越大,创造的价值也越来越大.但是越来越大的数据规模也给机器学习带来了很多挑战. 最大的挑战就是庞大的数据量使得对计算资源的需求也急剧增长.首先经典的机器学习算法其计算量基本上都是与训练数据条数或者特征数量呈二次方甚至是三次方关系的[1].即是说数据量或者特征数每翻

轻量级大规模机器学习算法库Fregata开源:快速,无需调参

一. 大规模机器学习的挑战 随着互联网,移动互联网的兴起,可以获取的数据变得越来越多,也越来越丰富.数据资源的丰富,给机器学习带来了越来越多,越来越大创造价值的机会. 机器学习在计算广告,推荐系统这些价值上千亿美元的应用中起到的作用越来越大,创造的价值也越来越大.但是越来越大的数据规模也给机器学习带来了很多挑战. 最大的挑战就是庞大的数据量使得对计算资源的需求也急剧增长.首先经典的机器学习算法其计算量基本上都是与训练数据条数或者特征数量呈二次方甚至是三次方关系的[1].即是说数据量或者特征数每翻

机器学习算法与Python实践之(五)k均值聚类(k-means)

       机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了.        机器学习中有两类的大问题,一个是分类,一个是聚类.分类是根据一些给定的已知类别标号的样本,训练某种学习机器,使它能够对未知类别的样本进行分类.这属于supervised learning(监督学习).而聚类指事先

机器学习算法实践:朴素贝叶斯 (Naive Bayes)

前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾短信进行过滤,在最后对分类的错误率进行了计算. 正文 与决策树分类和k近邻分类算法不同,贝叶斯分类主要借助概率论的知识来通过比较提供的数据属于每个类型的条件概率, 将他们分别计算出来然后预测具有最大条件概率的那个类别是最后的类别.当然样本越多我们统计的不同类型的特征值分布就越准确,使用此分布进行预测则会更加准

【机器学习PAI实践十二】机器学习算法基于信用卡消费记录做信用评分

背景 如果你是做互联网金融的,那么一定听说过评分卡.评分卡是信用风险评估领域常用的建模方法,评分卡并不简单对应于某一种机器学习算法,而是一种通用的建模框架,将原始数据通过分箱后进行特征工程变换,继而应用于线性模型进行建模的一种方法. 评分卡建模理论常被用于各种信用评估领域,比如信用卡风险评估.贷款发放等业务.另外,在其它领域评分卡常被用来作为分数评估,比如常见的客服质量打分.芝麻信用分打分等等.在本文中,我们将通过一个案例为大家讲解如何通过PAI平台的金融板块组件,搭建出一套评分卡建模方案. 本

大数据分析:机器学习算法实现的演化

本文翻译自<BIG DATA ANALYTICS BEYOND HADOOP> 我将会对机器学习算法的不同的实现范式进行讲解,既有来自文献中的,也有来自开源社区里的.首先,这里列出了目前可用的三代机器学习工具. 传统的机器学习和数据分析的工具,包括SAS,IBM的SPSS,Weka以及R语言.它们可以在小数据集上进行深度分析--工具所运行的节点的内存可以容纳得下的数据集. 第二代机器学习工具,包括Mahout,Pentaho,以及RapidMiner.它们可以对大数据进行我称之为粗浅的分析.基

8种常见机器学习算法比较

简介 机器学习算法太多了,分类.回归.聚类.推荐.图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验.通常最开始我们都会选择大家普遍认同的算法,诸如SVM,GBDT,Adaboost,现在深度学习很火热,神经网络也是一个不错的选择.假如你在乎精度(accuracy)的话,最好的方法就是通过交叉验证(cross-validation)对各个算法一个个地进行测试,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个.但是如果你只是在寻

10 种机器学习算法的要点(附 Python 和 R 代码)(转载)

前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大型计算机,到个人电脑,再到现在的云计算.关键的不是过去发生了什么,而是将来会有什么发生. 工具和技术的民主化,让像我这样的人对这个时期兴奋不已.计算的蓬勃发展也是一样.如今,作为一名数据科学家,用复杂的算法建立数据处理机器一小时能赚到好几美金.但能做到这个程度可并不简单!我也曾有过无数黑暗的日日夜夜

【机器学习】机器学习算法总结

       找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位,毕竟在机器智能没达到人类水平之前,机器学习可以作为一种重要手段,而随着科技的不断发展,相信这方面的人才需求也会越来越大. 纵观IT行业的招聘岗位,机器学习之类的岗位还是挺少的,国内大点的公司里百度,阿里,腾讯,网易,搜狐,华为(华为的岗位基本都是随机分配,机器学习等岗位基本面向的是博