weka实际操作--构建分类、回归模型
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实际操作--构建分类、回归模型的更多相关文章
- 逻辑回归模型(Logistic Regression, LR)--分类
逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数,使得逻辑回归模型成为了机器学习领域一颗耀眼的明星,更是计算广告学的核 ...
- 逻辑回归模型(Logistic Regression, LR)基础
逻辑回归模型(Logistic Regression, LR)基础 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函 ...
- 用 WEKA 进行数据挖掘——第二章: 回归
回归 回归是最为简单易用的一种技术,但可能也是最不强大(这二者总是相伴而来,很有趣吧).此模型可以简单到只有一个输入变量和一个输出变量(在 Excel 中称为 Scatter 图形,或 OpenOff ...
- Spark学习笔记——构建分类模型
Spark中常见的三种分类模型:线性模型.决策树和朴素贝叶斯模型. 线性模型,简单而且相对容易扩展到非常大的数据集:线性模型又可以分成:1.逻辑回归:2.线性支持向量机 决策树是一个强大的非线性技术, ...
- SPSS数据分析—二分类Logistic回归模型
对于分类变量,我们知道通常使用卡方检验,但卡方检验仅能分析因素的作用,无法继续分析其作用大小和方向,并且当因素水平过多时,单元格被划分的越来越细,频数有可能为0,导致结果不准确,最重要的是卡方检验不能 ...
- 分类-回归树模型(CART)在R语言中的实现
分类-回归树模型(CART)在R语言中的实现 CART模型 ,即Classification And Regression Trees.它和一般回归分析类似,是用来对变量进行解释和预测的工具,也是数据 ...
- pytorch入门2.2构建回归模型初体验(开始训练)
pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...
- SPSS数据分析—多分类Logistic回归模型
前面我们说过二分类Logistic回归模型,但分类变量并不只是二分类一种,还有多分类,本次我们介绍当因变量为多分类时的Logistic回归模型. 多分类Logistic回归模型又分为有序多分类Logi ...
- 机器学习技法-决策树和CART分类回归树构建算法
课程地址:https://class.coursera.org/ntumltwo-002/lecture 重要!重要!重要~ 一.决策树(Decision Tree).口袋(Bagging),自适应增 ...
随机推荐
- MySQL高级学习笔记
1. 变量相关 临时变量 -- 定义在函数体或存储过程中的变量 -- 用法在讲函数时会提到 用户变量,也称会话变量 -- 用户变量只对当前连接用户有效,其他连接用户无法访问 -- 使用 @ 标识符声明 ...
- GAN︱GAN 在 NLP 中的尝试、困境、经验
GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响,但是这么好的理论是否可以成功地被应用到自然语言处理(NLP)任务呢? Ian Goodfellow 博士 一年前,网友 ...
- vxWorks内核实现基本原理
内核实现基本原理 VxWorks 内核维护三个队列:tick队列.ready 队列.active 队列.另外还有一个队列涉及任务,即任务等待资源时所处的队列,这个队列可以是VxWorks内核提 ...
- (二十三)mongodb中group的问题
今天的工作中我需要从mongodb数据库中查出一定的数据,并排序后返回给前台,数据库表中包含了ruleID,processingID,userID,updateTime等字段. 同一个ruleI ...
- RAPIDIO高速串行协议
RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能. 低引脚数. 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准.RapidI ...
- MySQL查询所有数据库表出错
1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:show tables 错误代码: 1046 No database sel ...
- C# MVC的一种高效分页的html方法
首先创建一个html的扩展方法,这个方法是万能的,可以直接拿到您的项目中使用: //主要就是输出分页的超级链接的标签 //自定义分页Helper扩展 public static HtmlString ...
- 加深try catch Finnly的理解
上代码 public String twoGetFeeInfoByWithUnit(JSONArray jsonArray,String key1,String key2){ String Debit ...
- css设置居中的方案总结
回想一下,自己平时项目里遇到的比较多的就是css如何让元素居中显示,其实差不多每种情况都遇到过,所采用的方法也都各有利弊,下面对这些方法来做个概括,对其中的坑点,也会一一指出来,希望能给遇到问题的同学 ...
- luogu【P3387】【模板】缩点
原题入口 PS:这个题数据是由Hany01大大出出来的 %%% 这个题显然是一道强联通+DAGdp的题 (题目背景有= =) 缩点的原因就是:不缩会一直在一个地方绕圈圈 而且不能进行后面的DAPdp ...