線性模型--普通最小二乘法

線性模型

  • 一、模型介紹
  • 二、用于回歸的線性模型
    • 2.1 線性回歸(普通最小二乘法)

一、模型介紹

線性模型是在實踐中廣泛使用的一類模型,該模型利用輸入特征的線性函數進行預測。

二、用于回歸的線性模型

以下代碼可以在一維wave數據集上學習參數w和b,w是斜率,b是截距。

import mglearn 
mglearn.plots.plot_linear_regression_wave()

在這里插入圖片描述
我們在圖中添加了坐標網格,便于理解直線的含義。w的值是0.39,b的值是-0.03。
用于回歸的線性模型可以表示為這樣的回歸模型:對單一特征的預測結果是一條直線,兩個特征時是一個平面,或者在更高維度(即更多特征)時是一個超平面。
對于有多個特征的數據集而言,線性模型可以非常強大。特別地,如果特征數量大于訓練數據點的數量,任何目標y都可以(在訓練集上)用線性函數完美擬合。
有許多不同的線性回歸模型。這些模型之間的區別在于如何從訓練數據中學習參數w和b,以及如何控制模型復雜度。下面介紹最常見的線性回歸模型。

2.1 線性回歸(普通最小二乘法)

線性回歸,或者普通最小二乘法(ordinary least squares, OLS),是回歸問題最簡單也最經典的線性方法。線性回歸尋找參數w和b,使得對訓練集的預測值與真實的回歸目標值y之間的均方誤差最小。均方誤差是預測值與真實值之差的平方和除以樣本數。線性回歸沒有參數,這是一個優點,但也因此無法控制模型的復雜度。
以下代碼可以生成一個簡單的線性回歸模型:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
X, y = mglearn.datasets.make_wave(n_samples=60)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)model = LinearRegression()
model.fit(X_train, y_train)

“斜率”參數(w,也叫做權重或系數)被保存在coef_屬性中,英文單詞coef就是屬性的意思,而截距(b)或偏移被保存在intercept_屬性中,英文單詞intercept的意思是攔截、阻截的意思。
在這里插入圖片描述
intercept_屬性是一個浮點數,而coef_屬性是一個NumPy數組,每個元素對應一個輸入特征。由于wave數據集中只有一個輸入特征,所以model.coef_中只有一個元素。
再來看一下訓練集和測試集的性能:
在這里插入圖片描述
R2約為0.66,這個結果不是很好,但我們可以看到,訓練集和測試集上的分數非常接近。這說明可能存在欠擬合,而不是過擬合。對于這個一維數據集來說,過擬合的風險很小,因為模型非常簡單(或受限)。然而,對于更高維的數據集(即有大量特征的數據集),線性模型將變得更加強大,過擬合的可能性也會變大。我們來看一下LinearRegression在更復雜的數據集上的表現,比如波士頓房價數據集,這個數據集有506個樣本和105個導出特征,代碼如下:

X, y = mglearn.datasets.load_extended_boston()
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
model = LinearRegression().fit(X_train, y_train)

在這里插入圖片描述
線性回歸模型在訓練集上的預測非常準確,但測試集上的R2明顯低一些。訓練集和測試集之間的性能差異是過擬合的明顯標志,因此我們應該試圖找到一個可以控制復雜度的模型。標準線性回歸最常用的替代方法之一就是嶺回歸,下篇博客中將詳細介紹嶺回歸。

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

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

相關文章

基于51單片機的超聲波液位測量與控制系統

基于51單片機液位控制器 (仿真+程序+原理圖PCB+設計報告) 功能介紹 具體功能: 1.使用HC-SR04測量液位,LCD1602顯示; 2.當水位高于設定上限的時候,對應聲光報警報警&am…

手機卡該地塊

package demo; package demo; public class Phonetest { public static void main(String[] args) { Phone pnew Phone(); p.brand"小米"; p.price1998.98; System.out.println(…

在業務開發中使用ElasticSearch的指導手冊

文章目錄 該業務為什么需要ElasticSearch? / 該業務需要ElasticSearch的核心功能是哪些?正確示例錯誤示例 如何快速驗證分詞是否能夠滿足業務需求?分詞不滿足,如何自定義分詞? 業務數據的字段類型映射是否合理?實踐中…

MySQL設置表自增步長

在MySQL數據庫管理中,自增字段(AUTO_INCREMENT)是一種常見且重要的功能,通常用于生成唯一的標識符(如主鍵)。然而,在多種應用場景下,默認的自增步長(1)可能無…

【InternLM實戰營第二期筆記】02:大模型全鏈路開源體系與趣味demo

文章目錄 00 環境設置01 部署一個 chat 小模型02 Lagent 運行 InternLM2-chat-7B03 浦語靈筆2 第二節課程視頻與文檔: https://www.bilibili.com/video/BV1AH4y1H78d/ https://github.com/InternLM/Tutorial/blob/camp2/helloworld/hello_world.md 視頻和文檔內容基…

003 CentOS 7.9 mysql8.3.0安裝及配置

文章目錄 Windows PowerShell測試端口安裝及配置1. 下載MySQL安裝包2. 解壓安裝包3. 安裝MySQL4. 啟動MySQL服務5. 獲取并設置MySQL root密碼6. 創建數據庫7. 配置遠程連接(可選) 卸載mysql檢查并卸載已有的MySQL或MariaDB: https://download…

云計算和大數據處理

文章目錄 1.云計算基礎知識1.1 基本概念1.2 云計算分類 2.大數據處理基礎知識2.1 基礎知識2.3 大數據處理技術 1.云計算基礎知識 1.1 基本概念 云計算是一種提供資源的網絡,使用者可以隨時獲取“云”上的資源,按需求量使用,并且可以看成是無…

AWS安全性身份和合規性之WAF(Web Application Firewall)

AWS WAF(Web Application Firewall)是一項AWS托管的網絡安全服務,用于保護Web應用程序免受常見的Web攻擊,如SQL注入、跨站腳本(XSS)、跨站請求偽造(CSRF)等。 應用場景:…

STM32應用開發進階--IIC總線(SHT20溫濕度+HAL庫_硬件I2C)

實現目標 1、掌握IIC總線基礎知識; 2、會使用軟件模擬IIC總線和使用STM32硬件IIC總線; 3、 學會STM32CubeMX軟件關于IIC的配置; 4、掌握SHT20溫濕度傳感器的驅動; 5、具體目標:(1)用STM32硬件IIC驅動S…

49 序列化和反序列化

本章重點 理解應用層的作用,初識http協議 理解傳輸層的作用,深入理解tcp的各項特性和機制 對整個tcp/ip協議有系統的理解 對tcp/ip協議體系下的其他重要協議和技術有一定的了解 學會使用一些網絡問題的工具和方法 目錄 1.應用層 2.協議概念 3. 網絡計…

CSRF跨站請求偽造實戰

目錄 一、定義 二、與XSS的區別 三、攻擊要點 四、實戰 一、定義 CSRF (Cross-site request forgery,跨站請求偽造),攻擊者利用服務器對用戶的信任,從而欺騙受害者去服務器上執行受害者不知情的請求。在CSRF的攻擊場景中,攻擊…

Django模板層——模板引擎配置

作為Web 框架,Django 需要一種很便利的方法以動態地生成HTML。最常見的做法是使用模板。 模板包含所需HTML 輸出的靜態部分,以及一些特殊的語法,描述如何將動態內容插入。 模板引擎配置 模板引擎使用該TEMPLATES設置進行配置。這是一個配置列…

C++數據結構——哈希桶HashBucket

目錄 一、前言 1.1 閉散列 1.2 開散列 1.3 string 與 非 string 二、哈希桶的構成 2.1 哈希桶的節點 2.2 哈希桶類 三、 Insert 函數 3.1 無需擴容時 3.2 擴容 復用 Insert: 逐個插入: 優缺點比對: 第一種寫法優點 第一種寫法…

gfast:基于全新Go Frame 2.3+Vue3+Element Plus構建的全棧前后端分離管理系統

gfast:基于全新Go Frame 2.3Vue3Element Plus構建的全棧前后端分離管理系統 隨著信息技術的飛速發展和數字化轉型的深入,后臺管理系統在企業信息化建設中扮演著越來越重要的角色。為了滿足市場對于高效、靈活、安全后臺管理系統的需求,gfast應…

OpenUI 可視化 AI:打造令人驚艷的前端設計!

https://openui.fly.dev/ai/new 可視化UI的新時代:通過人工智能生成前端代碼 許久未更新, 前端時間在逛github,發現一個挺有的意思項目,通過口語化方式生成前端UI頁面,能夠直觀的看到效果,下面來給大家演示下 在現代…

SAP FS00如何導出會計總賬科目表

輸入T-code : S_ALR_87012333 根據‘FS00’中找到的總賬科目,進行篩選執行 點擊左上角的列表菜單,選擇‘電子表格’導出即可

echarts-地圖

使用地圖的三種的方式: 注冊地圖(用json或svg,注冊為地圖),然后使用map地圖使用geo坐標系,地圖注冊后不是直接使用,而是注冊為坐標系。直接使用百度地圖、高德地圖,使用百度地圖或高德地圖作為坐標系。 用json或svg注…

C++中string類的初步介紹

C語言中的字符串 在C語言中,字符串是以\0結尾的一些字符的集合,C標準庫中提供了一系列str系列的庫函數,但這些庫函數與字符串是分離的,不符合面向對象的編程思想。 string類的大致介紹 1.string是表示字符串的字符串類 2.stri…

GpuMall智算云:meta-llama/llama3/Llama3-8B-Instruct-WebUI

LLaMA 模型的第三代,是 LLaMA 2 的一個更大和更強的版本。LLaMA 3 擁有 35 億個參數,訓練在更大的文本數據集上GpuMall智算云 | 省錢、好用、彈性。租GPU就上GpuMall,面向AI開發者的GPU云平臺 Llama 3 的推出標志著 Meta 基于 Llama 2 架構推出了四個新…

pycharm畫圖貓和老鼠

在PyCharm中,你可以使用turtle模塊來畫圖。以下是一個簡單的例子,展示如何使用turtle模塊來繪制一個貓和一個老鼠。 import turtle # 設置窗口標題 turtle.title("畫圖貓和老鼠") # 創建兩個turtle對象,一個用于繪制貓&#xf…