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. Oracle安装、Navicat for Oracle、JDBCl连接、获取表结构

    Oracle安装 Navicat for Oracle配置 Oracle JDBC连接(增删改查) Oracle安装 环境windows 7 64位 安装版本:oracle 11g(64位) 下载地址 ...

  2. ios学习- 10大iOS开发者最喜爱的类库

    该10大iOS开发者最喜爱的库由“iOS辅导团队”成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个最好的库: 1)不能 ...

  3. pycaffe︱caffe中fine-tuning模型三重天(函数详解、框架简述)

    本文主要参考caffe官方文档[<Fine-tuning a Pretrained Network for Style Recognition>](http://nbviewer.jupy ...

  4. android WebP解析开源库-支持高清无损

    在我们的项目中需要支持WebP高清无损图片,推荐一个我们已经使用的解析开源库给大家:https://github.com/keshuangjie/WebpExample/tree/master/lib ...

  5. 笔记︱信用风险模型(申请评分、行为评分)与数据准备(违约期限、WOE转化)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 巴塞尔协议定义了金融风险类型:市场风险.作业风 ...

  6. 嵌入式linux------ffmpeg移植 编码H264(am335x编码H264)

    [cpp] view plaincopy <pre name="code" class="cpp"><pre name="code& ...

  7. Openstack_O版(otaka)部署_认证服务keystone部署

    安装和配置服务 1. 建keystone库建用户 在控制节点执行 mysql -uroot -p123456 CREATE DATABASE keystone; GRANT ALL PRIVILEGE ...

  8. Ajax前后台交互函数

    function AJAX(obj){ //做网络请求的时候参数以对象的形式传递进来 //我们规定obj里面包含属性:url, //请求方式type, //date前端给后端传递的参数 //回调函数s ...

  9. MFC与Webbrower交互(通过JS)

    最近修改老旧的MFC项目,用的网页做界面,和HTML交互采用的是COM方式,繁琐,丑陋又性能低,于是考虑利用js来进行界面交互,查了一天的资料,现在整理如下,供后来需要的人参考,虽然大概几乎不会有人用 ...

  10. jsTree树形菜单分类

    这里我演示的jsTree是基于ABP框架 ,展示部分代码,话不多说首先看效果如: 1:引入JS <link href="/jstree/themes/default/style.css ...