Weka使用及其他 – 李栋
Weka 简介
Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,基于JAVA环境下开源的数据挖掘软件。
一个数据挖掘项目的流程
- 数据预处理
- 属性选择
- 算法(聚类、分类、关联规则等)
- 验证模型
Weka提供的功能
- 预处理
- 分类
- 聚类
- 关联规则
- 属性选择
- 可视化
预处理
数据导入
weka支持4种数据格式
- arff文件
- csv文件
- 网页数据
- 数据库
Filter
- Normalize 将数值性数据标准化
- Discretize 将连续性属性离散化到一个个区间中
分类
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/