首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Phpml\Exception\MatrixException消息:矩阵为单数

Phpml\Exception\MatrixException消息:矩阵为单数
EN

Stack Overflow用户
提问于 2018-01-19 03:36:23
回答 2查看 653关注 0票数 3

我正在编写一个程序,它将使用php-ml从数据库中预测明年的收集结果。

我得到了这个错误。

Phpml\Exception\MatrixException消息:矩阵是奇异的

我正在使用这个函数

使用Phpml\回归\最小二乘;

使用Phpml\Math\矩阵;

使用Phpml\Math\Set;

新手来了。

Regression_controller

代码语言:javascript
复制
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');

}

Regression_model

代码语言:javascript
复制
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();
}
EN

回答 2

Stack Overflow用户

发布于 2019-08-06 18:38:05

当dataset属性的所有值在所有记录中都相似时,就会出现问题。

代码语言:javascript
复制
$samples = [ [1000,3,145], [1000,5,135], [1000,4,143], [1000,3,123]];

$targets = [ 4, 1, 3, 2];

$regression->train($samples, $targets);

在上面的示例中,所有记录的第一个值ar等于1000。因此,在执行$regression->train($samples, $targets)时,它看到$sample的属性计数是2而不是3,这在数组维度(即3 x 4而不是2 x 4 )之间造成了不匹配。

票数 2
EN

Stack Overflow用户

发布于 2019-08-05 01:36:22

我也有这个问题,但我能够解决它。确保您没有以下内容:

  • 少于两个数据
  • 错误格式

少于两个数据。在试验和错误时,我发现它至少需要两个数据。

格式错误。确保遵循目标和示例的正确格式(参见文档)。

代码语言:javascript
复制
$samples = [[60], [61], [62], [63], [65]];
$targets = [3.1, 3.6, 3.8, 4, 4.1];

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48333755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档