選單
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Python 教程

Python 主頁 Python 簡介 Python 入門 Python 語法 Python 註釋 Python 變數 Python 資料型別 Python 數字 Python 型別轉換 Python 字串 Python 布林值 Python 運算子 Python 列表 Python 元組 Python 集合 Python 字典 Python If...Else Python While 迴圈 Python For 迴圈 Python 函式 Python Lambda Python 陣列 Python 類/物件 Python 繼承 Python 迭代器 Python 多型 Python 作用域 Python 模組 Python 日期 Python 數學 Python JSON Python 正則表示式 Python PIP Python Try...Except Python 使用者輸入 Python 字串格式化

檔案處理

Python 檔案處理 Python 讀取檔案 Python 寫入/建立檔案 Python 刪除檔案

Python 模組

NumPy 教程 Pandas 教程 SciPy 教程 Django 教程

Python Matplotlib

Matplotlib 簡介 Matplotlib 入門 Matplotlib Pyplot Matplotlib 繪圖 Matplotlib 標記 Matplotlib 線條 Matplotlib 標籤 Matplotlib 網格 Matplotlib 子圖 Matplotlib 散點圖 Matplotlib 條形圖 Matplotlib 直方圖 Matplotlib 餅圖

機器學習

入門 均值、中位數、眾數 標準差 百分位數 資料分佈 正態資料分佈 散點圖 線性迴歸 多項式迴歸 多重回歸 縮放 訓練/測試 決策樹 混淆矩陣 分層聚類 邏輯迴歸 網格搜尋 分類資料 K-means Bagging 交叉驗證 AUC - ROC 曲線 K-近鄰

Python MySQL

MySQL 入門 MySQL 建立資料庫 MySQL 建立表 MySQL 插入 MySQL 選擇 MySQL Where MySQL Order By MySQL 刪除 MySQL 刪除表 MySQL 更新 MySQL Limit MySQL Join

Python MongoDB

MongoDB 入門 MongoDB 建立資料庫 MongoDB 集合 MongoDB 插入 MongoDB Find MongoDB Query MongoDB Sort MongoDB 刪除 MongoDB 刪除集合 MongoDB 更新 MongoDB Limit

Python 參考

Python 概述 Python 內建函式 Python 字串方法 Python 列表方法 Python 字典方法 Python 元組方法 Python 集合方法 Python 檔案方法 Python 關鍵字 Python 異常 Python 詞彙表

模組參考

Random 模組 Requests 模組 Statistics 模組 Math 模組 cMath 模組

Python 如何操作

刪除列表重複項 反轉字串 兩個數字相加

Python 示例

Python 示例 Python 編譯器 Python 練習 Python 測驗 Python 伺服器 Python 面試問答 Python 訓練營 Python 證書

機器學習 - 多重回歸


多重回歸

多重回歸類似於 線性迴歸,但具有多個自變數,這意味著我們嘗試基於兩個或多個變數來預測一個值。

請看下面的資料集,它包含了一些關於汽車的資訊。

汽車 Model 音量 Weight CO2
豐田 Aygo 1000 790 99
Mitsubishi Space Star 1200 1160 95
Skoda Citigo 1000 929 95
Fiat 500 900 865 90
迷你 Cooper 1500 1140 105
VW Up! 1000 929 105
Skoda Fabia 1400 1109 90
賓士 A-Class 1500 1365 92
福特 Fiesta 1500 1112 98
奧迪 A1 1600 1150 99
Hyundai I20 1100 980 99
Suzuki Swift 1300 990 101
福特 Fiesta 1000 1112 99
本田 Civic 1600 1252 94
Hundai I30 1600 1326 97
Opel Astra 1600 1330 97
寶馬 1 1600 1365 99
Mazda 3 2200 1280 104
Skoda Rapid 1600 1119 104
福特 Focus 2000 1328 105
福特 Mondeo 1600 1584 94
Opel Insignia 2000 1428 99
賓士 C-Class 2100 1365 99
Skoda Octavia 1600 1415 99
沃爾沃 S60 2000 1415 99
賓士 CLA 1500 1465 102
奧迪 A4 2000 1490 104
奧迪 A6 2000 1725 114
沃爾沃 V70 1600 1523 109
寶馬 5 2000 1705 114
賓士 E-Class 2100 1605 115
沃爾沃 XC70 2000 1746 117
福特 B-Max 1600 1235 104
寶馬 2 1600 1390 108
Opel Zafira 1600 1405 109
賓士 SLK 2500 1395 120

我們可以根據發動機尺寸預測汽車的 CO2 排放量,但透過多重回歸,我們可以引入更多變數,例如汽車的重量,以使預測更準確。


它是如何工作的?

在 Python 中,我們有模組可以為我們完成工作。首先匯入 Pandas 模組。

import pandas

在我們的 Pandas 教程 中瞭解 Pandas 模組。

Pandas 模組允許我們讀取 csv 檔案並返回 DataFrame 物件。

該檔案僅用於測試目的,您可以在此處下載:data.csv

df = pandas.read_csv("data.csv")

然後,將自變數列入一個名為 X 的列表中。

將因變數放在一個名為 y 的變數中。

X = df[['Weight', 'Volume']]
y = df['CO2']

提示: 通常將自變數列表命名為大寫 X,將因變數列表命名為小寫 y。

我們將使用 sklearn 模組中的一些方法,所以我們也需要匯入該模組

from sklearn import linear_model

從 sklearn 模組中,我們將使用 LinearRegression() 方法來建立一個線性迴歸物件。

該物件有一個名為 fit() 的方法,它接受自變數和因變數作為引數,並用描述關係的資料填充迴歸物件。

regr = linear_model.LinearRegression()
regr.fit(X, y)

現在我們有了一個迴歸物件,可以根據汽車的重量和排量預測 CO2 值。

# 預測一輛重量為 2300kg、排量為 1300cm³ 的汽車的 CO2 排放量
predictedCO2 = regr.predict([[2300, 1300]])

示例

觀看整個示例的實際演示

import pandas
from sklearn import linear_model

df = pandas.read_csv("data.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

# 預測一輛重量為 2300kg、排量為 1300cm³ 的汽車的 CO2 排放量
predictedCO2 = regr.predict([[2300, 1300]])

print(predictedCO2)

結果

[107.2087328]

執行示例 »

我們預測,一輛發動機排量為 1.3 升、重量為 2300 公斤的汽車,每行駛一公里大約會釋放 107 克 CO2。



係數

係數是描述未知變數之間關係的因子。

例如:如果 x 是一個變數,那麼 2x 就是 x 的兩倍。x 是未知變數,數字 2 是係數。

在這種情況下,我們可以詢問重量與 CO2 之間的係數,以及排量與 CO2 之間的係數。我們得到的答案告訴我們,如果我們增加或減少其中一個自變數,會發生什麼。

示例

列印迴歸物件的係數

import pandas
from sklearn import linear_model

df = pandas.read_csv("data.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

print(regr.coef_)

結果

[0.00755095 0.00780526]

執行示例 »

結果解釋

結果陣列代表重量和排量的係數。

重量:0.00755095
排量:0.00780526

這些值告訴我們,如果重量增加 1 公斤,CO2 排放量增加 0.00755095 克。

如果發動機尺寸(排量)增加 1 cm³,CO2 排放量增加 0.00780526 克。

我認為這是一個合理的猜測,但讓我們來測試一下!

我們已經預測,如果一輛 1300cm³ 發動機的汽車重 2300 公斤,其 CO2 排放量將約為 107 克。

如果我們重量增加 1000 公斤呢?

示例

複製之前的示例,但將重量從 2300 改為 3300

import pandas
from sklearn import linear_model

df = pandas.read_csv("data.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

predictedCO2 = regr.predict([[3300, 1300]])

print(predictedCO2)

結果

[114.75968007]

執行示例 »

我們預測,一輛發動機排量為 1.3 升、重量為 3300 公斤的汽車,每行駛一公里大約會釋放 115 克 CO2。

這表明係數 0.00755095 是正確的

107.2087328 + (1000 * 0.00755095) = 114.75968


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援