почему я не могу предсказать модель?

Я разработал модель, обучив данные с помощью LR. Затем я использую эту модель для прогнозирования с новыми данными. Я скачал обученную модель в локальный файл. Сценарий, который я использовал для прогноза, выглядит следующим образом prediction.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 в качестве предиката

{'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; ванна; балкон;

0

Решение

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

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

Это намного проще для понимания вывода JSON таким образом

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

{‘данные’: [1, 1180, 2, 5000, 1, 1]}

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]