使用Weka进行数据挖掘(Weka教程七)Weka分类/预测模型构建与评价

  • 数据挖掘分类

数据挖掘主要包括以下几个方面:
· 分类 (Classification)
· 估计(Estimation)
· 预测(Prediction)
· 相关性分组或关联规则(Affinity grouping or association rules)
· 聚类(Clustering)
· 复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)

其中对于分类算法,首先从数据中选出已经分好类的训练集,在该训练集上运用数据挖掘分类的技术,建立分类模型,对于没有分类的数据进行分类。

  • 实现分类算法

以最简单的决策树算法为例,在Weka中,决策树算法的实现是J48类,因此我们只需要创建J48对象就可以创建决策树。整个过程可以分为如下步骤:
数据准备
所有的Weka算法接受的数据都是Instances,之前的博客已经讲过了,我们要做的就是加载数据,然后使用Filter对数据进行一定的操作,满足特定算法的需求。具体的将在决策树中讲解。

模型配置
在模型准备前,要对模型进行适当的配置,Weka中是通过传入Options数组来实现的,然后使用模型的setOptions(options)方法将模型配置信息传入

模型学习
模型学习过程就是使用训练数据对模型进行训练,在Weka中只需要调用模型的buildClassifier(data)方法即可。
上述三个过程可以用以下代码表示:

class CARTModel {
    public CARTModel(Instances data) throws Exception{
        J48 model = new J48();
        String[] options = {"-M","5","-R"};
        model.setOptions(options);
        model.buildClassifier(data);
    }
}

以上几行简短的代码就可以完成模型的整个训练过程。

模型评价
模型训练完后,接下来要对模型进行评价,常见的评价指标有很多,对于分类模型,如TP,FP,TN,FN,Recall,Precision,ROC曲线等等,这些在Weka中都有实现。具体指标的意义将在其他博客中讲解。
那么在Weka中怎么实现对模型的评价呢?
你可以通过创建Evaluation对象来实现评价,具体代码如下:

 Evaluation eval = new Evaluation(testData);
 eval.crossValidateModel(model, trainSet, 10, new Random(1));
 System.out.println(eval.toSummaryString("\nResult", false));
 System.out.println(eval.toClassDetailsString());

评价的典型输出如下:


可以看到输出的信息是十分丰富的。
上述过程中使用到了交叉验证,具体将在接下来的博客中分析。

模型的预测
模型训练完毕后,接下来就是对传入的新数据进行预测了,在Weka中,新数据的预测也十分简单,代码如下:

 try {
      res = model.classifyInstance(sample);
     } catch (Exception e) {
            e.printStackTrace();
     }

注意传入的数据必须是Instance,因此对于数据集,我们要先将它转换成Instance才可以进行Predict。如何生成Instance,之前的博客已经讲过了,在此不再赘述。

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值