mlpack 基于逻辑回归的预测

教程

https://github.com/mlpack/mlpack

github中的readme提供了各种模型的使用方法

mlpack 是在cpp中使用机器学习

通常有两种使用方式,在命令行中执行可执行文件 or 在代码中使用mlpack的api

代码

在本教程中将使用代码的方式实现时序预测


# 说明
mlpack初始化逻辑回归模型时,就可以输入训练数据,默认初始化完成,即训练完成。
LinearRegression lr_x=LinearRegression(训练数据的特征,训练数据的标签);
训练数据的特征 要求格式为 arma::mat
训练数据的标签 要求格式为 arma::rowvec
训练数据要求的arma::mat 与python中的输入矩阵不同,mlpack默认arma::mat其一列属于一次的输入数据
也就是比如double[] a={1,2,3,4,5,6,7,8,9,10,11,12}
我们希望1,2,3,4是第一组数据的输入
			 5,6,7,8是第二组数据的输入
			9,10,11,12 是第三组数据的输入
那么mat需要这样初始化
mat data(a,4,3) 会初始化为以下的矩阵
1 5 9
2 6 10 
3 7 11
4 8 12 
训练数据的标签 要求格式为 arma::rowvec,例如
double[] b={1,2,3} 为以上三次输入的标签
rowvec res(b,3)

预测与训练时输入的格式一样

# 头文件
#include<mlpack.hpp>
using namespace arma;
using namespace mlpack;

# 训练
vector<double> xs_in={超多数据};
vector<double> xs_out={超多数据/4};
double* xs_arr_in= &xs_in[0];
double* xs_arr_out= &xs_out[0];
mat data_x(xs_arr_in,4,num); // The dataset itself.
rowvec responses_x(xs_arr_out,num); // The responses, one row for each row in data.
lr_x_=LinearRegression(data_x, responses_x);

# 预测
vector<double> predict_vec_x={1,2,3,4};
double* predict_in_x =&predict_vec_x[0];
mat data2_x(predict_in_x,4,1);
rowvec prediction_x(1);
lr_x_.Predict(data2_x,prediction_x);
cout<<prediction_x[0]<<endl;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值