Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ dlib krr_trainer给出多维数据错误_C++_Dlib - Fatal编程技术网

C++ dlib krr_trainer给出多维数据错误

C++ dlib krr_trainer给出多维数据错误,c++,dlib,C++,Dlib,我正在尝试dlib解决一个问题。考虑到当地的房屋面积和树木数量,提供了房屋价格。我们希望使用krr trainer预测给定面积和树木数量的房屋价格 area , noOfTrees, priceOFHouse 100 , 10 , 400 100 ,50, 2000 200 , 1,200 .... lots more 我计划使用内核岭回归 typedef matrix<double, 2, 1> sample_type; typedef radial_basis_kernel&l

我正在尝试dlib解决一个问题。考虑到当地的房屋面积和树木数量,提供了房屋价格。我们希望使用krr trainer预测给定面积和树木数量的房屋价格

area , noOfTrees, priceOFHouse
100 , 10 , 400
100 ,50, 2000
200 , 1,200
.... lots more
我计划使用内核岭回归

typedef matrix<double, 2, 1> sample_type;
typedef radial_basis_kernel<sample_type> kernel_type;
krr_trainer<kernel_type> trainer;

// i took trainign data and put htose data in 2 vectors 
//  std::vector<std::vector<double> > feactureVector;
//  std::vector<double> resultVector;
populateTrainigData(feactureVector, resultVector) ; 
// so featurevector[0] is {100,10} resultvector[0] is 400 
decision_function<kernel_type>  test = trainer.train(feactureVector, resultVector);

sample_type m;
m(0, 0) = 100; // area of house is 100 
m(1, 0) = 25; // no of treess in neighbourhood is 25 

double result = test(m);
typedef矩阵样本类型;
typedef径向基核核型;
krr_培训师;
//我获取训练数据并将这些数据放在两个向量中
//std::载体feactureVector;
//std::向量结果向量;
populateTrainigData(feactureVector,resultVector);
//所以特征向量[0]是{100,10}结果向量[0]是400
决策功能测试=培训师培训(特征向量、结果向量);
m型样品;
m(0,0)=100;//房子的面积是100
m(1,0)=25;//这附近的树的数目是25
双结果=试验(m);
在第
decision\u function test
行,它给出了编译错误

d:\dlib-19.15\dlib\svm\krr_trainer.h(300): error C2664: 'const dlib::matrix<double,0,1,dlib::default_memory_manager,dlib::row_major_layout> &dlib::empirical_kernel_map<dlib::radial_basis_kernel<sample_type>>::project(const dlib::matrix<T,2,1,dlib::default_memory_manager,dlib::row_major_layout> &,double &) const': cannot convert argument 1 from 'const std::vector<double,std::allocator<_Ty>>' to 'const dlib::matrix<T,2,1,dlib::default_memory_manager,dlib::row_major_layout> &'
1> 
d:\dlib-19.15\dlib\svm\krr\u trainer.h(300):错误C2664:“const dlib::matrix&dlib::emerical_kernel_map::project(const dlib::matrix&,double&)const”:无法将参数1从“const std::vector”转换为“const dlib::matrix&”
1> 

有人能给我指出解决这个问题的正确方向吗?dlib站点上的示例只显示了一个一维示例。我用它作为参考指南,错误和系统对我来说很奇怪。

它不支持这样做。您应该为每个输出调用一次.train()。也就是说,为每个输出变量训练单独的预测器

我想你是因为这一行而出错的:

std::vector<std::vector<double> > feactureVector;

如本例所示:

删除了ml标记,这是编程语言ml的标记。您的意思是,对于训练集中的每一行,比如1000行,我们将调用train方法1000次。主席先生,届时将如何更新训练对象ie返回ie决策者?因为我的输出仅为1 ie房屋成本和功能是面积和树的数量,我的意思是使用它就像dlib中的krr_示例程序一样。先生,您有上面的链接吗。我最初是指,但它是一维的,这就是我所说的。一次只训练一个维度。。主席先生,你的意思是我将进行决策函数测试1和决策函数测试2;对于两个特征,即面积和树木数量。然后我还有两个结果,即双成本1=test1(m1)和双成本2=test2(m2);我怎样才能得到最终的成本。。
std::vector< sample_type > feactureVector;