【AI知識】有監督學習之回歸任務(附線性回歸代碼及可視化)

1. 回歸的基本概念
在機器學習的有監督學習中,回歸(Regression)是一種常見的任務,它的目標是通過觀察數據來建立一個模型,用一個或多個自變量來預測因變量的值。

回歸分析通常用于: a.預測,基于已有數據,預測未知的數據,b. 解釋關系,分析自變量與因變量之間的關系和影響。

回歸任務舉例: 根據房屋的面積、位置、房齡等信息,預測房屋的市場價格。

回歸模型的類型: 線性回歸(Linear Regression)、 非線性回歸(Nonlinear Regression)、嶺回歸(Ridge Regression)等

2. 線性回歸(Linear Regression)

線性回歸是最基礎的回歸方法,它假設自變量和因變量之間存在線性關系。常見的線性回歸模型有:

在這里插入圖片描述
3. 非線性回歸(Nonlinear Regression)

當自變量和因變量之間的關系不再是線性時,可使用非線性回歸,適用于那些數據呈現曲線而不是直線趨勢的情況。這種回歸模型包含了更復雜的數學關系,例如:

在這里插入圖片描述
4. 回歸任務的評估指標

回歸模型的評估指標用來衡量模型的預測能力和擬合程度。常見的評估指標有:

在這里插入圖片描述

5. 使用 scikit-learn 庫進行單變量線性回歸分析

# 導入必要的庫
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score# 生成模擬數據
np.random.seed(42)  # 為了可復現性
X = 2 * np.random.rand(100, 1)  # 生成100個隨機自變量
Y = 4 + 3 * X + np.random.randn(100, 1)  # 生成因變量(線性關系加上噪聲)# 可視化數據
plt.scatter(X, Y, color='blue', label='Data Points')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Generated Data')
plt.show()

在這里插入圖片描述

# 數據集劃分:80%訓練,20%測試
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)# 創建線性回歸模型
model = LinearRegression()# 訓練模型
model.fit(X_train, Y_train)# 進行預測
Y_pred = model.predict(X_test)# 打印回歸系數和截距
print(f"回歸系數 (β1): {model.coef_[0]}")
print(f"截距 (β0): {model.intercept_}")
#回歸系數 (β1): [2.79932366]
#截距 (β0): [4.14291332]

# 評估模型
mse = mean_squared_error(Y_test, Y_pred)
r2 = r2_score(Y_test, Y_pred)
print(f"均方誤差 (MSE): {mse}")
print(f"決定系數 (R2): {r2}")
#均方誤差 (MSE): 0.6536995137170021
#決定系數 (R2): 0.8072059636181392# 可視化結果
plt.scatter(X_test, Y_test, color='blue', label='True Data')
plt.plot(X_test, Y_pred, color='red', label='Regression Line')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Linear Regression Model')
plt.legend()
plt.show()

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62936.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62936.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62936.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

fastadmin批量壓縮下載遠程視頻文件

后端代碼 // 批量下載并壓縮 public function downloadAll(){$ids input(ids);$row $this->model->where(id, in, $ids)->field(id,title,video_url)->select();if (!$row) {$this->error(記錄不存在);}$arr [];$tempFiles []; // 用來存儲臨時下載的視頻文…

邊緣計算+人工智能:讓設備更聰明的秘密

引言:日常生活中的“智能”設備 你是否發現,身邊的設備正變得越來越“聰明”? 早上醒來時,智能音箱已經根據你的日程播放舒緩音樂;走進廚房,智能冰箱提醒你今天的食材庫存;而在城市道路上&…

JVM 雙親委派模型以及垃圾回收機制

目錄 1. JVM 內存區域劃分 2. JVM 中類加載的過程 1) 類加載的基本流程 2) 雙親委派模型 3. JVM 中垃圾回收機制 1) 找到垃圾 a) 引用計數 b) 可達性分析 2) 釋放垃圾 1. JVM 內存區域劃分 一個運行起來的 Java 進程,其實就是一個 JVM 虛擬機。 而進程是…

ansible自動化運維(四)jinjia2模板

Jinjia2模板 前面說到playbook組成的時候,有介紹到template模塊,而template模塊對模板文件進行渲染時,使用的就是jinja2模板引擎,jinja2本身就是基于python的模板引擎,所以下面先來了解一下jinjia2模板的一些用法 基…

通過k-means對相似度較高的語句進行分類

本文介紹了如何使用K-Means算法對相似度較高的語句進行分類,并附上java案例代碼 import java.util.ArrayList; import java.util.List; import java.util.Random;public class KMeansTextClustering {public static void main(String[] args) {// 初始化語句數據集…

Oracle 19c rac 補丁升級,從19.7 to19.22-集群

1. 補丁包概述 數據庫環境 角色 數據庫 IP地址 數據庫版本 主機名 數據庫名稱 源端 RAC 172.30.21.166/167 19.7 hfcwdb66/hfcwdb67 hfdb 將以下補丁包上傳到/soft下 上傳到兩個節點的soft目錄下:p6880880_190000_Linux-x86-64.zip (更新o…

Windows安裝Jira

下載 Download Jira Data Center | Atlassian https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-10.3.0-x64.exe 以管理員身份安裝,否則彈出以下提醒 創建和配置MySQL數據庫:參照 Connecting Jira applicat…

uniapp - 微信小程序

一、background-image 大圖不顯示的問題 解決方法: 1、使用網絡地址;2、使用 base64 urlTobase64(filePath) {// #ifdef MP-WEIXINlet img ${filePath},imgBase64 wx.getFileSystemManager().readFileSync(img, "base64"),base64Url data:…

DETR: End-to-End Object Detection with Transformers論文學習

論文地址:https://arxiv.org/pdf/2005.12872 代碼地址:https://github.com/facebookresearch/detr 相關學習視頻:https://space.bilibili.com/94779326/lists?sid1531941 標題前言: DETR 是 Facebook 團隊于 2020 年提出的基于…

LeetCode 24反轉鏈表

單鏈表反轉:詳細解析與代碼實現 在數據結構的學習過程中,鏈表是一個非常重要且有趣的部分,而單鏈表的反轉操作更是常考的基礎知識點。今天就來和大家詳細講講如何實現單鏈表的反轉,并通過代碼示例來加深理解呀。 題目 給定單鏈…

Redis學習筆記之——學習計劃

Redis——Remote Dictionary Server,開源、基于內存、速度快、key-value... Redis做為一個高性能的鍵值存儲系統,廣泛應用于緩存、會話存儲、分布式鎖以及其他需要快速訪問的數據場景中。熟悉掌握redis,似乎已成為廣大碼農們必備的一項技能。…

網絡安全教學博客(二):常見網絡安全威脅剖析

在上一篇博客中,我們了解了網絡安全的基礎概念和重要性。今天,讓我們深入探討一下常見的網絡安全威脅,以便我們能夠更好地識別和防范它們。 惡意軟件(Malware) 病毒(Virus):病毒是一…

Vue3狀態管理:Pinia架構設計分析

Vue3狀態管理:Pinia架構設計分析 介紹 在Vue.js開發中,狀態管理是一個非常重要的部分。隨著Vue3的發布,Pinia作為一種新的狀態管理架構也相繼問世。本文將對Pinia架構進行深入分析,幫助讀者了解其設計原理、特點以及在實際項目中的應用。 架構…

【IDEA】啟動報錯

今天啟動IDEA報錯 報錯信息: Cannot connect to already running IDE instance. Exception: Process 5,444 is still running 打開任務管理器,關掉進程ID5444的任務

socket編程UDP-實現停等機制(接收確認、超時重傳)

在下面博客中,我介紹了利用UDP模擬TCP連接、按數據包發送文件的過程,并附上完整源碼。 socket編程UDP-文件傳輸&模擬TCP建立連接脫離連接(進階篇)_udp socket發送-CSDN博客 下面博客實現的是滑動窗口機制: sock…

uniapp小程序的錨點定位(將頁面滾動到目標位置)

小程序中,a頁面跳轉到b頁面,跳轉后滾動定位到b頁面的特定位置。 1.uni.pageScrollTo傳遞一個scrollTop參數可以滾動到特定位置。2.可以通過 uni.createSelectorQuery()等獲取定位元素的位置信息。3.uni.getSystemInfoSync()獲取設備的導航欄和狀態欄高度…

php基礎:命名空間

1.PHP 命名空間可以解決以下兩類問題: 1.用戶編寫的代碼與PHP內部的類/函數/常量或第三方類/函數/常量之間的名字沖突。 2.為很長的標識符名稱(通常是為了緩解第一類問題而定義的)創建一個別名(或簡短)的名稱,以提高源代碼的可讀…

分布式 CAP理論 總結

前言 相關系列 《分布式 & 目錄》《分布式 & CAP理論 & 總結》《分布式 & CAP理論 & 問題》 分布式 分布式的核心是將大型業務拆解成多個子業務以使之在不同的機器上執行。分布式是用于解決單個物理機容量&性能瓶頸問題而采用的優化手段&#xf…

python xpath解析筆記

與bs4的區別 bs4有很多屬性和方法,而xpath只有一個方法,是通過不同的xpath表達式實現很多功能的。 html例子 定位 tree.xpath(‘/html/head/title’) 返回列表。 開頭的斜杠表示從根節點遍歷。 中間的斜杠表示層級。(相當于bs4中的>…

Q學習(Q-Learning)詳解

?作者簡介:2022年博客新星 第八。熱愛國學的Java后端開發者,修心和技術同步精進。 🍎個人主頁:Java Fans的博客 🍊個人信條:不遷怒,不貳過。小知識,大智慧。 💞當前專欄…