亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在php中準備從sql輸出的數據以通過PHP機器學習庫運行

如何在php中準備從sql輸出的數據以通過PHP機器學習庫運行

PHP
青春有我 2023-06-30 16:04:35
我正在使用 PHP ML 庫中的 LeastSquares 回歸算法。我可以使用給定的示例成功運行代碼,但是當我嘗試運行數據庫中的數據時,我返回一個空白屏幕,并且服務器上沒有錯誤日志。以下是 ML 庫中的工作示例 php 文件:$samples = [[50000, 2017], [40000, 2015], [75000, 2014], [30000, 2016]];   $targets = [15000,13000,14500,14000];regression = new LeastSquares();$regression->train($samples, $targets);echo $regression->predict([60000, 2015]);// returns 4094.82這是我的腳本$sql = "SELECT price, mileage, year From table";$result = $conn->query($sql);if ($result->num_rows > 0) {    while($row = $result->fetch_assoc()) {        // The output I am looking for is [[mileage, year],[mileage, year]..] & [price, price,..]        $mileage = $row['mileage'];        $year = $row['year'];           $price = $row['price'];    }}regression = new LeastSquares();$regression->train($samples, $targets);echo $regression->predict([60000, 2015]);我正在嘗試使用數據庫表中的值重新創建 $samples 和 $targets 變量,但我沒有正確準備它。我嘗試 preg_replace 創建一個逗號分隔的字符串,但這不起作用,我懷疑這是因為它是一個字符串而不是整數值,但我不太確定。我編寫了所示的示例,因此可能是語法錯誤,但我只是想找出準備數組值的正確方法,如 ML 庫提供的那樣。當我做var_dump($samples);var_dump($targets);我明白了array(4) { [0]=> array(2) { [0]=> int(50000) [1]=> int(2017) } [1]=> array(2) { [0]=> int(40000) [1]=> int(2015) } [2]=> array(2) { [0]=> int(75000) [1]=> int(2014) } [3]=> array(2) { [0]=> int(30000) [1]=> int(2016) } }array(4) { [0]=> int(15000) [1]=> int(13000) [2]=> int(14500) [3]=> int(14000) }這就是我試圖通過 SQL 輸出實現的目標
查看完整描述

1 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

您只需將從數據庫讀取的值推送到循環中的$samples和數組中即可。$targets可能還需要將它們轉換為整數,我也包含了該代碼。


$sql = "SELECT price, mileage, year From table";

$result = $conn->query($sql);

$samples = array();

$targets = array();

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {

        $mileage = (int)$row['mileage'];

        $year = (int)$row['year'];

        $samples[] = array($mileage, $year);

        $price = (int)$row['price'];

        $targets[] = array($price);

    }

}

請注意,如果沒有else子句,則該if ($result->num_rows > 0) {子句在此代碼中沒有任何用處,因為while循環不會執行任何$result->num_rows == 0操作(即結果集中沒有行)。


查看完整回答
反對 回復 2023-06-30
  • 1 回答
  • 0 關注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號