почему я не могу предсказать модель? - PullRequest
0 голосов
/ 10 сентября 2018

Я разработал модель, обучив данные с помощью LR. Затем я использую эту модель для прогнозирования с новыми данными. Я скачал обученную модель в локальный файл. Сценарий, который я использовал для прогнозирования, выглядит следующим образом: вести прогноз.php

<?php
$area_type=0 ;$location = 0;$size= 0; $total_sqft=0;$bath=1;$balcony=1;
$area_type =  $_POST['area_type'];
$location = $_POST['location'];
$size= $_POST['size'];
$total_sqft=$_POST['total_sqft'];
$bath=$_POST['bath'];
$balcony=$_POST['balcony'];

$jsonf = "'{\"data\":[$area_type,$location,$size,$total_sqft,$bath,$balcony]}'";
$shells = "/usr/bin/python3 -W ignore /predict.py $jsonf";

$result = exec($shells);
echo $result;

?>

predict.py

import sys, json
import numpy as np
from sklearn.externals import joblib


print(sys.argv)
data = json.loads(sys.argv[1])
print(data)
data = np.array(data['data'])
print(data)
sav = joblib.load('/LR_model.ml')
pred = sav.predict(data.reshape(1,-1))
print(pred)
result = int(round(pred[0],0))
result_a = format(abs[result],',')
print(result_a)

когда я пытаюсь запустить сценарий предиката pypy3 как предикат python3 1011 *

{'data': [1, 1180, 2, 5000, 1, 1]}

Я получаю сообщение об ошибке

повысить JSONDecodeError («Ожидаемое значение», s, err.value) из None json.decoder.JSONDecodeError: Ожидаемое значение: строка 1, столбец 1 (символ 0)

Так, как я могу предсказать цену для новых данных. Любое предложение по исправлению этой ошибки будет очень полезно. LR_model.ml - моя модель, различные переменные:

area_type, расположение, размер; total_sqft, ванна, балкон;

1 Ответ

0 голосов
/ 10 сентября 2018

Я предлагаю вам использовать объект, а затем кодировать с помощью json_encode()

$object = new stdClass();
$object->data = [$area_type, $location, $size, $total_sqft, $bath, $balcony];
$jsonf = json_encode($object));

Гораздо проще понять вывод json


Как вы пишете в своем вопросе

{'data': [1, 1180, 2, 5000, 1, 1]}

неверный JSON из-за одинарных кавычек.

$ jsonf = "'{\" data \ ": [$ area_type, $ location, $ size, $ total_sqft, $ bath, $ Балкон]}'";

Но вы пишете двойные кавычки в php-коде, это немного сбивает с толку.

...