You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决PHP ML中LeastSquares::predict()参数不足的错误?

解决PHP ML中LeastSquares::predict()的ArgumentCountError错误

错误原因

你遇到的ArgumentCountError是因为调用predict()方法时未传入必要参数,Phpml\Regression\LeastSquares::predict()要求必须传入1组或多组特征样本作为参数;同时代码中$predict变量未定义,会导致后续计算R2分数时出现未定义变量错误。

修正后的代码

<?php
require 'vendor/autoload.php';

// 加载数据
$data = new \Phpml\Dataset\CsvDataset(filepath: "./data/insurance.csv", features: 1, headingRow: true);

// 预处理数据:拆分训练集和测试集
$dataset = new \Phpml\CrossValidation\RandomSplit($data, testSize: 0.2, seed: 156);

// 训练模型
$regression = new \Phpml\Regression\LeastSquares();
$regression->train($dataset->getTrainSamples(), $dataset->getTrainLabels());

// 生成测试集预测结果(必须传入测试样本作为参数)
$predict = $regression->predict($dataset->getTestSamples());

// 计算并输出R2分数
$score = \Phpml\Metric\Regression::r2Score($dataset->getTestLabels(), $predict);
echo "r2score is : " . $score;

关键修改点

  • 将$regression->predict();改为$predict = $regression->predict($dataset->getTestSamples());:传入测试集样本作为predict()的参数,同时将预测结果赋值给$predict变量,供后续评估使用。
  • 确保$predict变量被正确定义,避免后续计算R2分数时出现未定义变量的错误。

补充说明

如果需要对单个样本进行预测,只需传入单个特征数组即可,例如:

// 单个样本预测
$singlePrediction = $regression->predict([[25]]); // 假设特征是数值类型

内容的提问来源于stack exchange,提问作者Arshado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 06:10:07