个人推荐的Weka教程,包含了数据格式、数据准备、分类和聚类Demo
2013-10-20 22:03
447 查看
转载自:http://irwenqiang.iteye.com/blog/1308834
博客分类:
Data mining related
development tools
WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到
同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。如果想自己实现数据挖掘算法的话,可以看一看weka的接口文档。在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
我学习的过程中会持续把有用的教材上传...
------
调用weka API写了两个java程序,很基本:
Java代码
package cn.edu.xmu.bdm.wekainjava.test;
import java.io.FileReader;
import weka.core.Instances;
/**
* desc:试试Weka中最基本最重要的Instance类
* <code>InstanceTest</code>
* @version 1.0 2011/12/13
* @author chenwq
*
*/
public class InstanceTest {
public static Instances getFileInstances(String fileName) throws Exception {
FileReader frData = new FileReader(fileName);
Instances data = new Instances(frData);
return data;
}
public static void main(String[] args) throws Exception {
Instances instances = getFileInstances("C:\\Program Files\\Weka-3-6\\data\\bank-data-final.arff");
// 把数据集全部输入出
// System.out.println( instances );
// 用numInstances可以获得数据集中有多少样本
for (int i = 0; i < instances.numInstances(); i++) {
// instance( i )是得到第i个样本
System.out.println(instances.instance(i));
}
}
}
Java代码
package cn.edu.xmu.bdm.wekainjava.test;
/**
* desc:试试Weka的决策树类
* <code>J48Test</code>
* @version 1.0 2011/12/13
* @author chenwq
*
*/
import java.io.File;
import java.io.IOException;
import weka.classifiers.Classifier;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class J48Test {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Classifier m_classifier = new J48();
File inputFile = new File("C:\\Program Files\\Weka-3-6\\data\\cpu.with.vendor.arff");//训练语料文件
ArffLoader atf = new ArffLoader();
atf.setFile(inputFile);
Instances instancesTrain = atf.getDataSet(); // 读入训练文件
inputFile = new File("C:\\Program Files\\Weka-3-6\\data\\cpu.with.vendor.arff");//测试语料文件
atf.setFile(inputFile);
Instances instancesTest = atf.getDataSet(); // 读入测试文件
instancesTest.setClassIndex(0); //设置分类属性所在行号(第一行为0号),instancesTest.numAttributes()可以取得属性总数
double sum = instancesTest.numInstances(),//测试语料实例数
right = 0.0f;
instancesTrain.setClassIndex(0);
m_classifier.buildClassifier(instancesTrain); //训练
for(int i = 0;i<sum;i++)//测试分类结果
{
if(m_classifier.classifyInstance(instancesTest.instance(i))==instancesTest.instance(i).classValue())//如果预测值和答案值相等(测试语料中的分类列提供的须为正确答案,结果才有意义)
{
right++;//正确值加1
}
}
System.out.println("J48 classification precision:"+(right/sum));
}
}
ps:
weka官网地址:http://www.cs.waikato.ac.nz/ml/weka/
数据集: UCIDataSet http://archive.ics.uci.edu/ml/
http://download.csdn.net/detail/suntiezhu101288/4178053
个人推荐的Weka教程,包含了数据格式、数据准备、分类和聚类Demo
博客分类: Data mining related
development tools
WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http://www.cs.waikato.ac.nz/ml/weka得到
同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。如果想自己实现数据挖掘算法的话,可以看一看weka的接口文档。在weka中集成自己的算法甚至借鉴它的方法自己实现可视化工具并不是件很困难的事情。
我学习的过程中会持续把有用的教材上传...
------
调用weka API写了两个java程序,很基本:
Java代码
package cn.edu.xmu.bdm.wekainjava.test;
import java.io.FileReader;
import weka.core.Instances;
/**
* desc:试试Weka中最基本最重要的Instance类
* <code>InstanceTest</code>
* @version 1.0 2011/12/13
* @author chenwq
*
*/
public class InstanceTest {
public static Instances getFileInstances(String fileName) throws Exception {
FileReader frData = new FileReader(fileName);
Instances data = new Instances(frData);
return data;
}
public static void main(String[] args) throws Exception {
Instances instances = getFileInstances("C:\\Program Files\\Weka-3-6\\data\\bank-data-final.arff");
// 把数据集全部输入出
// System.out.println( instances );
// 用numInstances可以获得数据集中有多少样本
for (int i = 0; i < instances.numInstances(); i++) {
// instance( i )是得到第i个样本
System.out.println(instances.instance(i));
}
}
}
Java代码
package cn.edu.xmu.bdm.wekainjava.test;
/**
* desc:试试Weka的决策树类
* <code>J48Test</code>
* @version 1.0 2011/12/13
* @author chenwq
*
*/
import java.io.File;
import java.io.IOException;
import weka.classifiers.Classifier;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class J48Test {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Classifier m_classifier = new J48();
File inputFile = new File("C:\\Program Files\\Weka-3-6\\data\\cpu.with.vendor.arff");//训练语料文件
ArffLoader atf = new ArffLoader();
atf.setFile(inputFile);
Instances instancesTrain = atf.getDataSet(); // 读入训练文件
inputFile = new File("C:\\Program Files\\Weka-3-6\\data\\cpu.with.vendor.arff");//测试语料文件
atf.setFile(inputFile);
Instances instancesTest = atf.getDataSet(); // 读入测试文件
instancesTest.setClassIndex(0); //设置分类属性所在行号(第一行为0号),instancesTest.numAttributes()可以取得属性总数
double sum = instancesTest.numInstances(),//测试语料实例数
right = 0.0f;
instancesTrain.setClassIndex(0);
m_classifier.buildClassifier(instancesTrain); //训练
for(int i = 0;i<sum;i++)//测试分类结果
{
if(m_classifier.classifyInstance(instancesTest.instance(i))==instancesTest.instance(i).classValue())//如果预测值和答案值相等(测试语料中的分类列提供的须为正确答案,结果才有意义)
{
right++;//正确值加1
}
}
System.out.println("J48 classification precision:"+(right/sum));
}
}
ps:
weka官网地址:http://www.cs.waikato.ac.nz/ml/weka/
数据集: UCIDataSet http://archive.ics.uci.edu/ml/
Weka同步课本-Data_Mining:
http://download.csdn.net/detail/suntiezhu101288/4178053
相关文章推荐
- 详解BI/数据分析/数据挖掘/业务分析概念 7fe0
- Sedgewick之巨著《算法》,与高德纳TAOCP一脉相承
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用2
- 聚类算法总结
- 一位数据挖掘成功人士给数据挖掘在读研究生的建议
- 数据挖掘网上资料大全
- 数据挖掘技术与用户知识获取
- Data mining 数据挖掘
- 数据挖掘
- 大数据,且行且思( 文/ 占超群)
- kmeans python版
- 长期招聘:个性化推荐
- 2013年1季度中国汽车车型动力满意度研究报告 ——合资A+级车
- DB2技术专家沙龙活动演讲主题(9月5日上海站)
- EXCEL-1 基础学习
- (转)智能+可视化 看商业智能的发展方向
- 写在3月8号的话
- 数据挖掘--分类--决策树--算法
- 数据挖掘--分类--决策树--特征
- Web数据挖掘综述