Weka使用及其他 – 李栋

Weka 简介

Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,基于JAVA环境下开源的数据挖掘软件。

WekaMooc视频

一个数据挖掘项目的流程

  1. 数据预处理
  2. 属性选择
  3. 算法(聚类、分类、关联规则等)
  4. 验证模型

Weka提供的功能

预处理

数据导入

weka支持4种数据格式

Filter

分类

4种评判方式

聚类

关联规则

属性选择

可视化

JAVA调用

Classifier m_classifier = new J48();
File inputFile = new File("D://tiedao//weka//weather.arff");//训练语料文件
ArffLoader atf = new ArffLoader(); 
try {
    atf.setFile(inputFile);
} catch (IOException e) {
    e.printStackTrace();
}
Instances instancesTrain = atf.getDataSet(); // 读入训练文件 
instancesTrain.setClassIndex(instancesTrain.numAttributes()-1);
m_classifier.buildClassifier(instancesTrain); //训练     
DatabaseLoader d1=new DatabaseLoader();
d1.setSource("jdbc:mysql://localhost:3306/wekatest","root","123456");
d1.connectToDatabase();
d1.setQuery("SELECT outlook,temperature,humidity,windy,play FROM wekatest.weather;");
Instances temTrain=d1.getDataSet();
SerializationHelper.write("D://tiedao//weka//j48.model", m_classifier);//导出分类器  
Classifier  cls=(Classifier)SerializationHelper.read("D://tiedao//weka//j48.model");//导入分类器
Evaluation eval=new Evaluation(instancesTrain);
eval.crossValidateModel(m_classifier, instancesTrain, 10, new Random(1));
System.out.println(eval.toSummaryString("\nResults\n\n",false));

for(int i=0;i< instancesTest.numInstances();i++)
{
    double clusterno= m_classifier. classifyInstance(instancesTest.instance(i));//分类类结果
    ......
}

你想搜索weka的任何帮助文档,直接在谷歌中输入”weka J48”或者“weka instance”

如何应用

现在的时代是数据的时代
《点球成金》 莫雷 股票交易
你知道影响NBA胜负的指标是什么吗?
对NBA2013-2014赛季30支球队常规赛的各项指标的平均值进行统计。包括:投篮命中率、出手次数、三分命中率、三分出手次数、罚球命中率、罚球次数、篮板数、前场篮板数、后场篮板数、助攻数、抢断数、盖帽数、失误数、犯规数以及胜场数。

经过逐步回归分析,对于胜场数线性相关的属性主要为投篮命中率、后场篮板数、失误数三项。得到的线性归回方程为:

        胜场数= -274.7 + 投篮命中率*5.2 + 后场篮板数*4.1 - 失误数*3.9 

相关系数R为0.863

Kaggle网站https://www.kaggle.com/