weka提供了几种处理数据的方式,其中分类和回归是平时用到最多的,也是非常容易理解的,分类就是在已有的数据基础上学习出一个分类函数或者构造出一个分类模型。这个函数或模型能够把数据集中地映射到某个给定的类别上,从而进行数据的预测。就是通过一系列的算法,将看起来本来分散的数据,给划分成一个个不同的类,我们可以知道某个数据为什么要划分到这个类别,后来的数据通过这个过程就可以知道把它划分到哪个类别,从而进行了数据的预测。

要进行分类,我们根据什么分类,这就需要把数据分为训练集和测试集两个部分,先分析训练集的数据的特点构建出分类模型。然后利用构建好的分类模型对测试集的数据进行分类,评估分类的准确性,从而进行分类器的选择。

常用的分类器也是最好容易理解的就是决策树,决策树的结构非常好理解,构建出来的决策树,用户也容易根据数据人工进行分类处理。决策树分类算法是将数据进行分类,生成一棵二叉或者多叉的树状结构。有一个根节点,没有入边(度),可能有多条出边,在树的内部的节点只有一个入边,没有出边的节点称为叶子节点,从根节点到叶子节点的一条路径是一条分类规则,一棵决策树有多条分类规则。

打开weka,选择Explorer

点击进去之后,在第一个选项卡下(Preprocess),选择Open file选择要打开的文件,注意:weka识别的文件只是arff后缀的文件,

arff格式文件主要由两个部分构成,头部定义和数据区。这种格式的文件以%开头的是注释,@attribute开头说明是属性,后面是属性名,属性取值或者属性值的类型,@data后的是数据集,以行为单位,一行代表一条数据,以逗号隔开每个属性值,注意用合适的软件打开,用记事本打开的时候,文件中的换行符号不识别,格式很难看,建议用EditPlus。

在weka的安装文件中有一个data文件夹,里面是weka自带的一些测试数据,我们可以利用他们进行练习,打开weather.nominal.arff文件,可以看到一些基本的信息,也可以利用Save按钮将csv格式的文件保存成arff格式的

,在这之前先将数据进行一下处理,利用提供的数据改成测试数据,从而对数据进行预测。把文件中的play属性值都变成?占位符,否则是无法识别的。选择第二个选项卡Classify分类

单击choose,在trees目录下选择J48,这是决策树的一个构建类,后期可以通过java调用完成这个操作,Test options中有四个单选按钮,选择第二个,单击右面的set按钮,设置测试数据集,Open file打开之前修改的测试数据集,单击Start,开始运行,右下角的那只鸟如果来回走动表示正在执行,可以看到右面的文本框输出信息

=== Run information ===

Scheme:       weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: weather.symbolic
Instances: 14
Attributes: 5
outlook
temperature
humidity
windy
play
Test mode: user supplied test set: size unknown (reading incrementally) === Classifier model (full training set) === J48 pruned tree
------------------ outlook = sunny
| humidity = high: no (3.0)
| humidity = normal: yes (2.0)
outlook = overcast: yes (4.0)
outlook = rainy
| windy = TRUE: no (2.0)
| windy = FALSE: yes (3.0) Number of Leaves : 5 Size of the tree : 8 Time taken to build model: 0 seconds === Evaluation on test set === Time taken to test model on supplied test set: 0 seconds === Summary === Total Number of Instances 0
Ignored Class Unknown Instances 14 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure MCC ROC Area PRC Area Class
0.000 0.000 0.000 0.000 0.000 0.000 ? ? yes
0.000 0.000 0.000 0.000 0.000 0.000 ? ? no
Weighted Avg. NaN NaN NaN NaN NaN NaN NaN NaN === Confusion Matrix === a b <-- classified as
0 0 | a = yes
0 0 | b = no

主要的我们看到输出了决策树的结构,我们可以根据输出的信息自己画出树的结构,也可以通过软件查看树的结构,在文本中在同一缩进距离的信息代表同一层的条件,

右键点击Result list中的选项,并选择visualize tree查看决策树的图形化结构,后期用户可以根据这个人工进行决策

右键点击Result list中的选项,并选择visualize classifier errors。

在出现的窗口中点击Sava按钮,保存输出的文件,之后我们打开输出的文件查看输出的结果,系统在文件中插入了两列数据,其中一列就是预测的值

通过对比结果,正确率100%

用weka创建一个简单的回归模型:

准备了一组数据,是所在城市一个商圈附近的二手房价(从二手房网站上抓到),houseSize房屋面积,bedrooms卧室数量,livingrooms客厅数量,restrooms卫生间数量,hardcover是否是精装修(0否,1是)

单击 Classify 选项卡,单击 Choose 按钮,然后扩展 functions 分支,选择 LinearRegression 。在同一个分支还有另外一个选项,称为 SimpleLinearRegression 简单回归,简单回归只有一个变量,我们有多个变量,所以使用LinearRegression,和上面的一样,单击Start,构建模型,得到一个输出文本

数据中的每个属性都对最后的结果有着很大或者很小的的影响,我们无法确定。

有三个选择是:Supplied test set 允许提供一个不同的数据集来构建模型; Cross-validation 让 WEKA 基于所提供的数据的子集构建一个模型,然后求出它们的平均值来创建最终的模型;Percentage split WEKA 取所提供数据的百分之一来构建一个最终的模型。这些不同的选择对于不同的模型非常有用。对于回归,我们可以选择 Use training set。这会告诉weka为了构建我们想要的模型,可以使用我们在 ARFF 文件中提供的那些数据。

我们通过weka构建了一个房屋价格的模型,通过这个沃恩可以分析得到,房屋价格主要与房子面积和卧室数量有关,至于客厅数量和卫生间数量,因为大多数房子只有一个客厅和卫生间,进而对总面积影响小。对于是否是精装修,分析可能原因是,房子都处于商圈附近,房子的精装修并不能带动整体的房价。

sellingPrice =

      1.9285 * houseSize +
-30.4737 * bedrooms +
-20.2685

我们可以通过以上得到的模型大致预测出其他房屋的价格,但是,房屋价格受各个方面影响太多,只能是估计,可能和实际相差巨大。

如有不对,欢迎指正!

参考:
《数据挖掘与机器学习 WEKA应用技术与实践》--袁梅宇
https://www.ibm.com/developerworks/cn/opensource/os-weka1/

weka实际操作--构建分类、回归模型的更多相关文章

  1. 逻辑回归模型(Logistic Regression, LR)--分类

    逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核 ...

  2. 逻辑回归模型(Logistic Regression, LR)基础

    逻辑回归模型(Logistic Regression, LR)基础   逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函 ...

  3. 用 WEKA 进行数据挖掘——第二章: 回归

    回归 回归是最为简单易用的一种技术,但可能也是最不强大(这二者总是相伴而来,很有趣吧).此模型可以简单到只有一个输入变量和一个输出变量(在 Excel 中称为 Scatter 图形,或 OpenOff ...

  4. Spark学习笔记——构建分类模型

    Spark中常见的三种分类模型:线性模型.决策树和朴素贝叶斯模型. 线性模型,简单而且相对容易扩展到非常大的数据集:线性模型又可以分成:1.逻辑回归:2.线性支持向量机 决策树是一个强大的非线性技术, ...

  5. SPSS数据分析—二分类Logistic回归模型

    对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...

  6. 分类-回归树模型(CART)在R语言中的实现

    分类-回归树模型(CART)在R语言中的实现 CART模型 ,即Classification And Regression Trees.它和一般回归分析类似,是用来对变量进行解释和预测的工具,也是数据 ...

  7. pytorch入门2.2构建回归模型初体验(开始训练)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  8. SPSS数据分析—多分类Logistic回归模型

    前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...

  9. 机器学习技法-决策树和CART分类回归树构建算法

    课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增 ...

随机推荐

  1. PHPstudy端口占用的问题

    phpStudy很多同学下好了 用localhost可能不能读取到WWW目录下的文件,这个是因为端口被占用,打开其他选项菜单 =>打开配置文件=>httpd-conf=>修改端口号如 ...

  2. R实践 第二篇:创建数据集

    准备数据是数据分析的第一步,由数据构成集合,我们称作数据集,数据集的结构是行列式的,行表示观测,列表示变量.把数据读入到R中,转换为合适的数据结构,能够提高数据分析的效率.在数据分析中,常用的存储数据 ...

  3. CSS盒模型的深度思考及BFC

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 题目:谈一谈你对CSS盒模型的认识 专业的面试,一定会问 CSS 盒模型 ...

  4. java 集合框架(十六)Map

    一.概述 Map是一个包含键值对的集合,一个map不能有重复的键(key),而且每个键至多只能对应一个值.Map同Collection一样,它的所有通用实现都会提供一个转换器构造函数,接收一个Map类 ...

  5. u盘安装ubuntu10.04 、11.04 server

    10.04 先将 ubuntu server 的 iso 放到优盘上,然后在提示无法找到光驱时,按 alt+f2 打开一个新的 console 窗口,将 iso mount 上,具体操作如下: ls ...

  6. dojo之dojox/data/CsvStore初始化

    dojo之dojox/data/CsvStore初始化 1.var csvStore = new dojox.data.CsvStore({url:"student.csv"}); ...

  7. FusionCharts MSBar2D图

    1.页面展示 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ...

  8. R语言︱集合运算——小而美法则

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 集合运算的一般规则如下:    union(x ...

  9. mysql字符串连接

    用SQL Server 连接字符串是用“+” 现在数据库用mysql, 写个累加两个字段值SQL语句居然不支持"+",郁闷了半天在网上查下,才知道mysql里的+是数字相加的操作, ...

  10. select(Linux 编程)

    select系统调用时用来让我们的程序监视多个文件句柄的状态变化的.程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变. 关于文件句柄,其实就是一个整数,通过socket函 ...