内容简介:版权声明:本文为博主原创文章,未经博主允许不得转载商用。 https://blog.csdn.net/andy_5826_liu/article/details/84075473
版权声明:本文为博主原创文章,未经博主允许不得转载商用。 https://blog.csdn.net/andy_5826_liu/article/details/84075473
工作需要,了解了一下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<sum;i++)//测试分类结果 1
{
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<sum;i++)//测试分类结果 2 (通过)
{
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));
}
}
原文: 简书ThinkinLiu 博客: IT老五
其中包含了随机森林的使用,包括训练、模型保存及算法结果。实际使用时拆分为两部分,在后台进行训练,客户端使用训练后的模型计算结果。当然还有实时训练的情况,这个后面再去了解。
随机森林可能还有很多配置参数需要调整,后续慢慢去学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 调用 TensorFlow 已训练好的模型做图像识别
- TensorFlow 调用预训练好的模型—— Python 实现
- 加入Transformer-XL,这个PyTorch包能调用各种NLP预训练模型
- 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 间接调用 Python 实现
- 在 C/C++ 中使用 TensorFlow 预训练好的模型—— 直接调用 C++ 接口实现
- 直观讲解-RPC调用和HTTP调用的区别
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Nature of Code
Daniel Shiffman / The Nature of Code / 2012-12-13 / GBP 19.95
How can we capture the unpredictable evolutionary and emergent properties of nature in software? How can understanding the mathematical principles behind our physical world help us to create digital w......一起来看看 《The Nature of Code》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
正则表达式在线测试
正则表达式在线测试