Как заполнить образец в библиотеке машинного обучения php

$samples = [[0], [5], [10], [20], [25], [18], [30]];
$labels = ['fail', 'fail', 'pass', 'pass'];

$classifier = new NaiveBayes();
$classifier->train($samples, $labels);

echo $classifier->predict([14]);

Приведенный выше код взят из машинной библиотеки php с именем php ml.
Образец и этикетка жестко закодированы в приведенном выше коде. Что я хочу сделать, это заполнить массив $ sample из базы данных. Но проблема, которую я вижу, заключается в том, что я не могу понять это, поскольку вы можете видеть ее $ sample = [[], [], []]. Это массив с в массиве? И как его заселить

Я успешно заполнил метку $ из базы данных.

0

Решение

$samples = [[0], [5], [10], [20], [25], [18], [30]];

Это похоже на $samples является массивом, который содержит подмассивы для каждого из образцов 0, 5, 10 и т. д.
Согласно NaiveBayes для PHP, примерный параметр ожидает массив.

0

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

Вы можете использовать рекурсивную итерацию для выравнивания массива. Это будет работать для вас на основе данных вашего примера.

С другой стороны, я бы попытался манипулировать вашим запросом, чтобы предоставить вам результаты в правильном формате.

Это решение создает ненужный налог на ваши ресурсы, требующие итерации по всему массиву, который, как я предполагаю, будет довольно большим, когда правильный запрос полностью устранит необходимость в этом.

Попробуй это:

$samples = [[0], [5], [10], [20], [25], [18], [30]];
$labels = ['fail', 'fail', 'pass', 'pass'];

$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($samples));
$results = iterator_to_array($iterator, false);

echo '<pre>';
print_r($results);
print_r($labels);
echo '</pre>';

Это выведет:

Образец:

Array
(
[0] => 0
[1] => 5
[2] => 10
[3] => 20
[4] => 25
[5] => 18
[6] => 30
)

Этикетки

Array
(
[0] => fail
[1] => fail
[2] => pass
[3] => pass
)

Удачи!

0

Вот как мы можем это сделать. Всем спасибо

 while($row = mysqli_fetch_assoc($result)){

array_push($samples, array($row['result_midterm']));
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector