正确的格式多功能csvinstance数组在谷歌预测api



我已经正确并成功地设置了训练数据,如果我以某种方式为Google预测API使用API浏览器界面,则可以运行具有预期结果的预测。

我也可以根据谷歌在php中给出的示例从localhost运行单个特征预测。

我的训练数据有51个特征,我想对它们进行预测。该模型是可靠的,并返回了92%的无偏准确率。我对基于25000个实例的训练模型没有问题。

在一个有点相关的问题中,Marc Cohen给出了下面的php示例来运行预测,该预测完美地适用于语言演示文件或任何单个特征预测。

//------------------

我只是写了一个测试程序来使用PHP进行预测,并且能够使其工作。下面是神奇的序列:

   $id = "your-model-id-goes-here";
   $predictionText = "This is a test";
   $predictionData = new InputInput();
   $predictionData->setCsvInstance(array($predictionText));
   // My model takes a single feature but if your model needs more than one 
   // feature, simply include more values in the csvInstance array, like this...
   // $predictionData->setCsvInstance(array($data1, $data2, ..., $dataN));
   $input = new Input();
   $input->setInput($predictionData);
   print_r($predictionService->trainedmodels->predict($id, $input));

显示来自预测请求的未格式化JSON响应,如下所示:

Array ( [kind] => prediction#output [id] => languages [selfLink] =>    
https://www.googleapis.com/prediction/v1.4/trainedmodels/languages/predict 
[outputLabel] => French [outputMulti] => Array ( [0] => Array ( [label] => 
English [score] => 0.333297 ) [1] => Array ( [label] => French [score] => 
0.339412 ) [2] => Array ( [label] => Spanish [score] => 0.327291 ) ) )

//--------------------

他所作的笔记是多方面的例如://我的模型采用单个特征,但如果你的模型需要多个特征//特性,简单地在csvInstance数组中包含更多的值,像这样…//$predictionData->setCsvInstance(array($data1, $data2,…)

, dataN美元));

对我来说意味着只需要将$predictionText变量传递为"Feature_1"、"Feature_2"、"Feature_3",…"Feature_N"和一个就可以了

我使用的数据主要是数字。例如:69年,13,9101,69,94,96,96,96……我试过带引号和不带引号,但始终得到相同的预测。

如果我使用API资源管理器,并输入一个新的数组元素到它的所有数据预测ie:

"input": {
"csvInstance": [
"84",
"63",
"30",
"30",
...........

它将预测正确答案。

如果我使用资源管理器并按照marc的示例输入数据。即:"84","63","30","30","207","83","87","94","94","94","94","94","94","94","38","57","143","144","164","164","164","164","164".........相同的数据会给出完全不同的结果,而第二个方法总是返回相同的结果。

显然我在这里做错了什么。我已经尝试了所有的php json编码选项和任何其他我能想到的格式正确地工作在我的php脚本或确实在API浏览器,但无济于事。

谁能告诉我如何正确格式化$predictionText ?

我的代码如下。(我已经尝试过带引号和不带引号和纯数字)

    $predictionText = '84,63,30,30,207,83,87,94,94,94,94,94,94,94,38,57,143,144,164,164,164,164,164,"New Moon",115,221,31,62,-14,-106,-43,-4,43,-174,-224,25,93,142,78,87,29,-65,44,33,34,19,16,14,13,12,11';
$predictionData = new Google_InputInput();
$predictionData->setCsvInstance(array($predictionText) ); 
$input = new Google_Input();    
$input->setInput($predictionData);   
$result = $predictionService->trainedmodels->predict($id, $input);
print("</div><br><br><h2>Prediction Result:</h2>");
print_r($result);

谢谢。

已解决。

Training要求字符串在引号中。例如"新月"。预测不需要引号。我已经改变了预测字符串,没有引号周围的单字符串功能,我有,一切都在工作。

相关内容

  • 没有找到相关文章

最新更新