开始研究WEKA,一个开源java的数据挖掘工具。

HS沉寂这么多天,谁知道偏偏在我申请离职的时候给我安排了个任务,哎,无语。

于是,今天看了一天的Weka。

主要是看了HS提供的三个文章(E文,在google的帮助下看完的):

 
还有一个中文文档: http://www.doc88.com/p-881687347690.html
 
还有一个E文的PPT(http://www.cs.ccsu.edu/~markov/weka-tutorial.pdf),还没仔细看。里面有个数据挖掘经常用到的软件的列表。
 
简单学会了Weka的用法。
weka就是一个工具,他根据用户输入的N组数据,通过用户指定的算法,如:回归分析、分类分析、聚类分析、邻近分析等,然后输出一个统计分析的结果。还可以使用测试数据对统计结果进行验证,以确认分析结果的可用性。
weka本身有一个GUI,通过java -jar weka.jar启动。然后点击Explorer启动子程序(我只学了Explorer)。
在weka explorer中点击OpenFile打开*.arff格式的数据。arff其实就是文本文件。
 
weka explorer顶部标签的第二个标签,可以进行分类相关的分析,如回归分析、分类分析、临近分析等。
利用第三个标签为集群相关的分析可以进行聚类分析等。
算法是在标签的Classifier中的Choose按钮中选择的,其中,
以树的形式展示分类分析是用:Classify->Choose->Classifiers->trees->J48; 对应java类(weka.classifiers.trees.J48;)
回归分析是:Classify->Choose->Classifiers->Functions->LinearRegression 刚刚注意到界面上有这个类(weka.classifiers.functions.LinearRegression),也许就是用java编程时要用到的。
聚类分析是:Cluster->Choose->clusterers->SimpleKMeans
邻近分析是:Classify->Choose->Classifiers->lazy->IBK
 
WEKA Explorer的使用,在文档(http://www.doc88.com/p-881687347690.html)中的WEKA Explorer一节中有很详细的介绍。请参考之。
 
通过Java可以很简单的进行API的调用:如下代码从一个arff文件中读取数据,然后进行了回归分析,然后打印了根据回归分析结果预测的某个房屋的价格:
import java.io.FileNotFoundException;
import java.io.IOException;

import weka.classifiers.functions.LinearRegression;
import weka.core.Instances;

public class Weka {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String inputFile = "C:\\Documents and Settings\\Administrator\\My Documents\\Downloads\\weka-3-7-5\\weka-3-7-5\\my\\house.arff";
        java.io.Reader r;
        try {
            r = new java.io.BufferedReader(new java.io.FileReader(inputFile));
            Instances instances = new Instances(r);
            instances.setClassIndex(instances.numAttributes() - 1);
            LinearRegression linearRegression = new LinearRegression();
            linearRegression.buildClassifier(instances);
            double[] coef = linearRegression.coefficients();
            double myHouseValue = (coef[0] * 3198) + (coef[1] * 9669)
                    + (coef[2] * 5) + (coef[3] * 3) + (coef[4] * 1) + coef[6];
            System.out.println(myHouseValue);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

WEKA,一个开源java的数据挖掘工具的更多相关文章

  1. Nutch 是一个开源Java 实现的搜索引擎

    Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting,他同时也是Lucene.Hado ...

  2. 利用Google开源Java容器化工具Jib构建镜像

    转载:https://blog.csdn.net/u012562943/article/details/80995373 一.前言 容器的出现让Java开发人员比以往任何时候都更接近“编写一次,到处运 ...

  3. 7 款开源 Java 反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...

  4. 7款开源Java反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...

  5. FunDA:一个开源的函数式数据处理工具库,也是Slick的补充

    如果你是一个Slick用户,或者你是一个数据库编程人员正在尝试进入函数式编程模式,那么FunDA可能会帮到你. 目前市面上FRM(Functional Relational Mapper),即函数式的 ...

  6. Java基础学习总结(27)——7 款开源 Java 反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...

  7. java 爬虫:开源java爬虫 swing工具 Imgraber

    1实现点: 1.返回给定URL网页内,所有图像url list 2.返回给定URL网页内,自动生成图像文件路径.txt 文件 3.返回给定URL网页内,下载txt文件指定的图片url,并将所有图像保存 ...

  8. 介绍一个开源的在线管理SQLServer的小工具--SQLEntMan

    近来有许多人问起SQL在线管理的问题,遂将以前用过的一个开源SQL 在线管理工具修改了一下,并分享. 看下效果图: 原项目的地址:http://sourceforge.net/projects/asp ...

  9. Java静态检测工具/Java代码规范和质量检查简单介绍(转)

    静态检查: 静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码检查代码检查包括代码走查.桌面检查.代码审查等,主要检查代码 ...

随机推荐

  1. Node.js内置的工具和第三方模块来进行单步调试

    1.命令行调试: Node.js调试命令: run 执行脚本,在第一行暂停 restart 重新执行脚本 cont,c 继续执行,知道遇到下一个断点 next,n 单步执行 step,s 单步执行,并 ...

  2. SQL语句执行效率及分析

    查询效率分析:子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询.在这种情况下可以考虑用联接查询来取代.如果要用子查询,那就用EXISTS替代IN.用NOT EXISTS替代NOT IN. ...

  3. 解除被DenyHosts锁定的IP地址

    自己的本本无法ssh上服务器,提示 ssh_exchange_identification: read: Connection reset by peer 仔细回想,自己手贱把~下面的一个ssh文件删 ...

  4. C# 队列数据结构 (三)

    队列是一种先进先出的线性表 因此需要引用Clist线性类 class CQueue { private Clist m_list;//构造链表对象实例 public CQueue()//构造函数 { ...

  5. css案例学习之class执行的顺序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. android NDK jni下的c文件 Unresolved inclusion

    原因是在eclipse编辑环境中没有找到对应的include中的文件.解决方法是将包含该文件的include目录作为新的linked folder加入工程中.具体方法如下:1. 右击工程->Ne ...

  7. 编程内功修炼之数据结构—BTree(三)总结

    BTree必须通过各种编程约束,使得不脱离BTree的本身特性: 1)BTree关键字插入操作:插入过程中,如果节点关键字达到上限,添加分裂约束,从而控制每个节点的关键字数维持在 t-1~2*t-1内 ...

  8. hive中partition如何使用

    1.背景 1.在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作.有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念. 2.分区表指的是在创建表 ...

  9. 多校联合练习赛1 Problem1005 Deque LIS+LDS 再加一系列优化

    Deque Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  10. JFinal开发web项目出现故障小记

    导读 作为中国优秀的开源项目之中的一个JFinal有着极速开发的优点,是中小型应用开发的首选.在导师的建议下.我使用了JFinal来开发一个Java服务端应用,官方教程非常easy.就几十页(当然是中 ...