随机森林 java_机器学习weka,java api调用随机森林及保存模型
工作需要,了解了一下weka的java api,主要是随机森林这一块,刚开始学习,记录下。
了解不多,直接上demo,里面有一些注释说明:
package weka;
import java.io.File;
import weka.classifiers.Classifier;
import weka.classifiers.trees.RandomForest;
import weka.core.Instances;
import weka.core.SerializationHelper;
import weka.core.converters.ArffLoader;
public class demo {
public static void main(String[] args) throws Exception {
Classifier m_classifier = new RandomForest();
File inputFile = new File("F:/java/weka/trainData.arff");//训练语料文件
ArffLoader atf = new ArffLoader();
atf.setFile(inputFile);
Instances instancesTrain = atf.getDataSet(); // 读入训练文件
inputFile = new File("F:/java/weka/testData.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); //训练
System.out.println(m_classifier);
// 保存模型
SerializationHelper.write("LibSVM.model", m_classifier);//参数一为模型保存文件,classifier4为要保存的模型
for(int i = 0;i
{
if(m_classifier.classifyInstance(instancesTest.instance(i))==instancesTest.instance(i).classValue())//如果预测值和答案值相等(测试语料中的分类列提供的须为正确答案,结果才有意义)
{
right++;//正确值加1
}
}
// 获取上面保存的模型
Classifier classifier8 = (Classifier) weka.core.SerializationHelper.read("LibSVM.model");
double right2 = 0.0f;
for(int i = 0;i
{
if(classifier8.classifyInstance(instancesTest.instance(i))==instancesTest.instance(i).classValue())//如果预测值和答案值相等(测试语料中的分类列提供的须为正确答案,结果才有意义)
{
right2++;//正确值加1
}
}
System.out.println(right);
System.out.println(right2);
System.out.println(sum);
System.out.println("RandomForest classification precision:"+(right/sum));
}
}
其中包含了随机森林的使用,包括训练、模型保存及算法结果。实际使用时拆分为两部分,在后台进行训练,客户端使用训练后的模型计算结果。当然还有实时训练的情况,这个后面再去了解。
随机森林可能还有很多配置参数需要调整,后续慢慢去学习。
相关文章:

[转载]64位linux安装WPS
2019独角兽企业重金招聘Python工程师标准>>> 网上下载了最新的WPS*.deb 安装后发现运行不了。(点Unity > WP搜出来的图标) 还以为安装有问题。于是重装了几次。还是不成功。 然后打开终端 wps 原来是程序出错了 提示找不到/opt…

mybatis报错There is no getter for property named '***' in 'class ***'
mybatis报错There is no getter for property named *** in class ***, 检查一看是xml中映射字段拼写错误,大小写。 有的时候用插件生成了原始的代码没问题,增加了一个字段在没有再自动生成的时候, 喜欢自己手动加一部分进去&…

LTE - PUCCH Format2
LTE中有很多课题(尤其是物理层),如果不仔细阅读规范中给出的每个参数和方程,是无法解释清楚的。物理资源分配就是其中之一。 PUCCH格式2/2a/2b的物理资源分配由以下过程确定。看到这些公式千万不要惊慌,方程本身就是高中数学的一部分…
数据绑定(Binding)
Windows Presentation Foundation (WPF) 中的数据绑定为应用程序提供了一种简单、一致的数据表示和交互方法。元素能够以公共语言运行时 (CLR) 对象和 XML 形式绑定到来自各种数据源的数据。 什么是数据绑定? 数据绑定是在应用程序 UI 与业务逻辑之间建立连接的过程…
java exception源码_Java异常之 Error 和 Exception
简单了解 Java 异常1、实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求;你的程序要打开某个文件,这个文件可能不存在或者文件格式不对;你要读取数据库的数据&am…

面向对象解决了全局变量问题?
2019独角兽企业重金招聘Python工程师标准>>> 全局变量的应用场景 程序中的某些资源之多能有一个,比如计数器、配置信息、程序运行状态等,而且许多地方需要访问他,那么这个资源就应该,也只能设置成全局变量。在稍微大点…
物理层UL基本流程
物理层发端的基本流程在36.211/36.212(NR:38.211/38.212)中有详细的描述,现在归纳如下。下面列出的每个步骤对于某些信道而言可能会增加其它步骤,也可能有些步骤不需要。 CRC 相关 信道编码(channel coding) LTE: NR: 加扰-Scrambling 加扰过程是da…

java 建树源码_Java实现的二叉树常用操作【前序建树,前中后递归非递归遍历及层序遍历】...
import java.util.ArrayDeque;import java.util.Queue;import java.util.Stack;//二叉树的建树,前中后 递归非递归遍历 层序遍历//Node节点class Node {int element;Node left;Node right;public Node() {}public Node(int element) {this.element element;}}// Bi…

html5小趣味知识点系列(一)autofocus
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>autofocus</title> </head> <body><input type"text" autofocus value"页面中只能有一个哦"><!-- 如…

cisco aaa 授权后门测试
最近遇到一个客户aaa没有正确的配置,导致自己被关在设备外面的case;由于是生产环境的多交换机堆叠单元,重启忽略配置也是不允许的,且必须远程操作解决,无疑提升了解决问题的难度。多次尝试后发现通过cisco acs上的一些…

hive的基本命令
创建表 CREATE TABLE pokes (foo INT, bar STRING); 创建表并创建索引字段ds CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING); 显示所有表 SHOW TABLES; 按正条件(正则表达式)显示表, SHOW TABLES .*s; 表添加一列…
MMSE(Minimum Mean Square Error)
MMSE是一种最小化接收数据的MSE(均方误差)的模型。关于这句话,你的脑海里就会出现很多问题: 什么是均方误差? “最小化MSE”的物理意义是什么? 让我们从一个我们现在非常熟悉的信道模型开始. MMSE作为一种均衡器,是一种后处理算法,它帮助…

java控制台两个字符串_java控制台输入字符串
实验要求: 1/7 1.掌握 JDK 的安装及参数配置方法,能在控制台界面使用 Java 命令进行 Java 程序的编译及运行。 2.掌握 Eclipse 软件安装方法。3.掌握在 ......习题1. 数据类型转换应用【案例简介】下例说明了整型、浮点型、字符串型之间的相互转换。 【案例目的】掌握 Java 中两…

lua单链表实现
List {}--创建一个节点function List.new(val)return {pnext nil, value val}end--往一个节点后添加一个节点function List.addNode(nodeParent, nodeChild)nodeChild.pnext nodeParent.pnextnodeParent.pnext nodeChildreturn nodeChildend--输出链表function List.print…

Java语言的基础知识9
第十一章(线程)1、通过String nameThread.currentThread().getName();来获取当前线程的名称。2、多次启动一个线程或者启动一个已经运行的线程是非法的,会抛出IllegalThreadStateException异常对象。Thread.sleep((int)Math.random()*10000);3、java提供了Runnable接口使继承了…

Android Parcelable的介绍与使用
Parcelable使用的一个地方就是在进程间传递一个自定义的较为复杂的对象,对Parcelable学习了一下写下自己的观点。 将一个对象比如说一个名字为Cartoon的自定义类,由一个activity传递到另外一个activity去,这个时候就要用到Parcelable了。首先…

LTE PUCCH F2 TX/RX汇总
TX TX端的公式如下(下图来自sharetechnote): 发送端在36.212/36.211中有详细的描述,就是一系列的数学运算,过程概括如下: 编码、加扰、调制的过程暂不介绍,主要介绍下上图中乘以r_uv的过程,公式如下&#…

面试题:查询连续出现的数字
难度:中等 写一段SQL查询至少连续出现3次的数字。 --------- | Id | Num | --------- | 1 | 1 | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 1 | | 6 | 2 | | 7 | 2 | --------- 例如:上图表 Logs, 1 是唯一一个连续出现3次的…

php的数组排序方法,PHP数组排序函数
在使用 PHP 进行编程时,有时需要对数组进行排序,通常我们使用的对数组进行排序的方法有冒泡排序、快速排序等等。我们除了可以自定义一些数组排序的函数外,PHP 还内置了多种对数组进行排序的函数,这些函数允许用户在数组内部对元素…

介绍并扩展Fitnesse的测试模块化机制:Scenario
2019独角兽企业重金招聘Python工程师标准>>> 首先普及一下概念,什么是Fitnesse,听一听.NET版Cucumber的创始人Aslak Hellesy谈Fitnesse与Cucumber对比: FIT/Fitnesse和Cucumber都执行高级语言编写的验收测试。FIT仅识别HTML&#…

cmake, This may result in binaries being created in the wrong place
现象: CMake Error: The current CMakeCache.txt directory /home/etouch/minigui-64/minigui/libmgeff-1.0.0/CMakeCache.txt is different than the directory /home/weiym/devel/minigui/rel-3-0/libmgeff-1.0 where CMakeCache.txt was created. This may resul…

GDB调试技巧
1. GDB 调试程序 1.Run a program without any argument. gdb program 2. Run a program with arguments gdb --args program arg1 arg2 ... argN or gdb program (gdb) r arg1 arg2 ... argN 3. start with both an executable program and a core file specified gdb…

php 进程管理,php如何管理进程
进程管理-防止进程成为僵尸进程创建好了进程,那么怎么对子进程进行管理呢?使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通)posix_kill():此函数并不能顾名思义…

Linux分区的认识
有时候为了便于管理硬盘或允许在一块硬盘上使用多个文件系统或操作系统,需要对硬盘进行分区操作。硬盘的分区分为3种:主分区、扩展分区、逻辑分区。通常因为计算机BIOS和MBR的限制,一块硬盘最多只能有4个分区,其中一个主分区可用扩…

求小数的小数点的第n位是什么
链接:https://ac.nowcoder.com/acm/contest/548/B来源:牛客网 时间限制:C/C 1秒,其他语言2秒空间限制:C/C 262144K,其他语言524288K64bit IO Format: %lld题目描述 立华奏在学习初中数学的时候遇到了这样一…

Git 简介1-常用术语
常用术语 1. origin origin是对项目最初克隆(clone)的远程仓库的缩写。 更准确地说,origin 是用来代替原始(original)远程仓库的URL, 从而使在git 命令中使用原始仓库更加容易。 2. master master 是分支的命名约定。 从远程服务器克隆后,生成的本…

要过一遍的博客列表
面向GC的Java编程 (finish) java程序员也应该知道的系统知识系列 (finish) 一致性哈希算法及其在分布式系统中的应用(finish) NoSQL数据库的分布式算法 深入理解java内存模型系列文章 转载于:https://www.cnblogs.com/dongxiao-yang/p/4767179.html

b站弹幕 xml php 乱码,B站弹幕Python爬行XML响应中的代码转换问题,python,之,取,b,xml,时,转码...
在学习过程中,可以发现,对于xml类型的响应,了解到的方式lxml和bs解析器。frombs4importBeautifulSoup #主要使用BeautifulSoup类事实上可以认为:HTML文档和标签树,BeautifulSoup类是等价的Beautiful Soup库解析器&…

java.io包和杯子测楼
1 java.io 字符流:Reader 字节流:InputStream 2 杯子测楼 一种杯子,若在第N层被摔破,则在任何比N高的楼层均会破,若在第M层不破,则在任何比M低的楼层均不会破,给你两个这样的杯子,让…

JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。
JUnit测试类完成后事务是默认 回滚的。只能查询数据,不能增删改。 在测试类或者测试方法上面加上注解 Rollback(false) 表示事物不回滚,这样数据就可以提交到数据库中了。 转载于:https://www.cnblogs.com/zhangcheng1/p/11156389.html