我正在做一个预测明年收藏的程序
数据库使用php-ml。
我发现了这个错误。
phpml\exception\matrixexception消息:矩阵是单数的
IM使用此功能
使用phpml\regression\leastsquares;
使用\phpml\math\matrix;
使用\phpml\math\set;
新来的。
回归控制器

public function index()
{
    $this->load->model("regression_model") ;
    $array = $this->regression_model->display_data();
    $targets = $this->regression_model->display_data2();

    $matrix = new Matrix($array);
    $set = new Set($targets);

    $arraytrix = $matrix->toArray();
    $arrayset = $set->toArray();

    $col[] = array_column($arraytrix, 'year');
    $col2[] = array_column($arrayset, 'total');

    var_dump($col);
    var_dump($col2);

    $regression = new LeastSquares();
    $regression->train($col, $col2);

    $predicted = $regression->predict([2018]);

    var_dump($predicted);

    $this->load->view('regression');

}

回归模型
function display_data()
{
    $query1 = $this->db->query("SELECT year from total_year");
    return $query1->result_array();

}
function display_data2()
{
    $query1 = $this->db->query("SELECT total from total_year");
    return $query1->result_array();
}

最佳答案

我也有这个问题,但我能解决它。确保您没有以下内容:
少于两个数据
格式错误
少于两个数据。经过反复试验,我发现它至少需要两个数据。
格式错误。确保遵循目标和示例的正确格式(请参见documentation)。

$samples = [[60], [61], [62], [63], [65]];
$targets = [3.1, 3.6, 3.8, 4, 4.1];

$regression = new LeastSquares();
$regression->train($samples, $targets);

正如您在$samples中看到的,它是一个数组数组。因此,确保数组中的每个值都是数组本身。

09-20 12:34