zoukankan      html  css  js  c++  java
  • 【转】开源机器学习之RWeka

    背景介绍:
    1)Weka:

    Weka有两种意思:一种不会飞的鸟的名字,一个机器学习开源项目的简称(Waikato Environment for Knowledge Analysis,http://www.cs.waikato.ac.nz/~ml/weka/)。我们这里当然要介绍的是第二种意思啦,Weka项目从1992年开始,由新西兰政府支持,现在已在机器学习领域大名鼎鼎。Weka里有非常全面的机器学习算法,包括数据预处理、分类、回归、聚类、关联规则等。Weka的图形界面对不会写程序的人来说非常方便,而且提供“KnowledgeFlow” 功能,允许将多个步骤组成一个工作流。另外,Weka也允许在命令行执行命令。
    2)R
    R就不用我废话了吧,呵呵,越来越受欢迎的统计软件(http://www.r-project.org/)。
    3)R与Weka:
    R里有很多机器学习的函数和包,不过Weka里提供的函数更全面更集中,所以我有时候需要用到Weka。以前我是这样用R和Weka的:
    在R中准备好训练的数据(如:提取数据特征……);
    整理成Weka需要的格式(*.arff);
    在Weka里做机器学习(如:特征选择、分类……);
    从Weka的预测结果计算需要的统计量(如:sensitivity, specificity, MCC……)。
    来回捣腾两个软件还是挺麻烦的;为了偷懒,我没学Weka的命令行,只会用图形界面的,在数据量大的时候非常受罪,有时候还会内存不够。现在发现R竟然提供了和Weka的接口函数包RWeka,以后方便多了哦,下面介绍一下RWeka的功能:
    RWeka (http://cran.r-project.org/web/packages/RWeka/index.html) :
    1) 数据输入和输出
    WOW():查看Weka函数的参数。
    Weka_control():设置Weka函数的参数。
    read.arff():读Weka Attribute-Relation File Format (ARFF)格式的数据。
    write.arff:将数据写入Weka Attribute-Relation File Format (ARFF)格式的文件。
    2) 数据预处理
    Normalize():无监督的标准化连续性数据。
    Discretize():用MDL(Minimum Description Length)方法,有监督的离散化连续性数值数据。
    3) 分类和回归
    IBk():k最近邻分类
    LBR():naive Bayes法分类
    J48():C4.5决策树算法(决策树在分析各个属性时,是完全独立的)。
    LMT():组合树结构和Logistic回归模型,每个叶子节点是一个Logistic回归模型,准确性比单独的决策树和Logistic回归方法要好。
    M5P():M5 模型数算法,组合了树结构和线性回归模型,每个叶子节点是一个线性回归模型,因而可用于连续数据的回归。
    DecisionStump():单层决策树算法,常被作为boosting的基本学习器。
    SMO():支持向量机分类
    AdaBoostM1():Adaboost M1方法。-W参数指定弱学习器的算法。
    Bagging():通过从原始数据取样(用替换方法),创建多个模型。
    LogitBoost():弱学习器采用了对数回归方法,学习到的是实数值
    MultiBoostAB():AdaBoost 方法的改进,可看作AdaBoost 和 “wagging”的组合。
    Stacking():用于不同的基本分类器集成的算法。
    LinearRegression():建立合适的线性回归模型。
    Logistic():建立logistic回归模型。
    JRip():一种规则学习方法。
    M5Rules():用M5方法产生回归问题的决策规则。
    OneR():简单的1-R分类法。
    PART():产生PART决策规则。
    4) 聚类
    Cobweb():这是种基于模型方法,它假设每个聚类的模型并发现适合相应模型的数据。不适合对大数据库进行聚类处理。
    FarthestFirst():快速的近似的k均值聚类算法
    SimpleKMeans():k均值聚类算法
    XMeans():改进的k均值法,能自动决定类别数
    DBScan():基于密度的聚类方法,它根据对象周围的密度不断增长聚类。它能从含有噪声的空间数据库中发现任意形状的聚类。此方法将一个聚类定义为一组“密度连接”的点集。
    5)关联规则
    Apriori():Apriori是关联规则领域里最具影响力的基础算法,是一种广度优先算法,通过多次扫描数据库来获取支持度大于最小支持度的频繁项集。它的理论基础是频繁项集的两个单调性原则:频繁项集的任一子集一定是频繁的;非频繁项集的任一超集一定是非频繁的。在海量数据的情况下,Apriori 算法的时间和空间成本非常高。
    Tertius():Tertius算法。
    6)预测和评估:
    predict():根据分类或聚类结果预测新数据的类别
    table():比较两个因子对象
    evaluate_Weka_classifier():评估模型的执行,如:TP Rate,FP Rate,Precision,Recall,F-Measure。

  • 相关阅读:
    Jmeter在命令行运行技巧
    Tomcat6 一些调优设置内存和连接数
    用例结构优化心得
    LoadRunner 调用dll方法
    DLL接口自动化测试总结
    Loadrunner进行md5加密方法
    Loadrunner检查点使用总结
    网络上可供测试的Web Service
    04 json,xml混合封装通信
    03 xml封装通信接口
  • 原文地址:https://www.cnblogs.com/caleb/p/2035583.html
Copyright © 2011-2022 走看看