機器學習 day04

文章目錄

  • 前言
  • 一、線性回歸的基本概念
  • 二、損失函數
  • 三、最小二乘法


前言

通過今天的學習,我掌握了機器學習中的線性回歸的相關基本概念,包括損失函數的概念,最小二乘法的理論與算法實現。


一、線性回歸的基本概念

要理解什么是線性回歸,就要先理解什么是回歸。

回歸是通過訓練帶標簽的樣本數據得到模型參數,對連續型數據進行預測。

像這樣的式子: y = w x + b y=wx+b y=wx+b就是一個線性回歸模型,在實際的應用場景中往往不能找到某一個方程滿足所有特征,這時我們就需要使用計算機根據實際的數據求解得到最優(也就是最接近真實值)的方程式作為模型完成預測任務。

例如,如果我們將數據描繪在坐標軸上:
在這里插入圖片描述
線性回歸的任務就是找到一條最佳直線擬合所有點。

二、損失函數

我們想通過線性回歸,找到一條最優的直線擬合所有數據,有許多方式確定這條最優直線,這里我們使用損失函數進行評估。

對于線性回歸而言,我們使用均方誤差作為損失函數,即實際數據點數據到擬合直線的豎直距離的平方再求和。用公式可以表達為:
e ˉ = 1 n ∑ i = 1 n ( y i ? w x i ? b ) 2 \bar e = \frac{1}{n} \textstyle\sum_{i=1}^{n}(y_{i}-w x_{i} - b)^{2} eˉ=n1?i=1n?(yi??wxi??b)2
其中,每一個w值都會對應一個loss,我們要求的即是使得loss最小時的w值。

如果只有單個特征參數w,我們可以使用以前學習過的數學方法,如韋達定理,求導等直接解出;但如果有多個w值,我們就需要使用最小二乘法和梯度下降的思想進行求解了。

要推導接下來的最小二乘法和梯度下降,需要結合矩陣求導和矩陣除法的公式:
在這里插入圖片描述

三、最小二乘法

假設一共有多個特征,即組成損失函數的是一個多元二次方程,即:
h ( x ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + w 4 x 4 + w 5 x 5 + w 6 x 6 + w 7 x 7 + w 8 x 8 + w 0 x 0 h(x)=w_1x_1+w_2x_2+w_3x_3+w_4x_4+w_5x_5+w_6x_6+w_7x_7+w_8x_8+w_0x_0 h(x)=w1?x1?+w2?x2?+w3?x3?+w4?x4?+w5?x5?+w6?x6?+w7?x7?+w8?x8?+w0?x0?

l o s s = [ ( h 1 ( x ) ? y 1 ) 2 + ( h 2 ( x ) ? y 2 ) 2 + . . . ( h n ( x ) ? y n ) 2 ] / n = 1 n ∑ i = 1 n ( h ( x i ) ? y i ) 2 = 1 n ∣ ∣ ( X W ? y ) ∣ ∣ 2 = 1 2 ∣ ∣ ( X W ? y ) ∣ ∣ 2 這就是最小二乘法公式 ∣ ∣ A ∣ ∣ 2 是歐幾里得范數的平方 也就是每個元素的平方相加 loss=[(h_1(x)-y_1)^2+(h_2(x)-y_2)^2+...(h_n(x)-y_n)^2]/n\\=\frac{1}{n} \textstyle\sum_{i=1}^{n}(h(x_{i})-y_{i})^{2}\\=\frac{1}{n}||(XW-y)||^2\\=\frac{1}{2}||(XW-y)||^2 這就是最小二乘法公式 \\ ||A||^2 是歐幾里得范數的平方\,也就是每個元素的平方相加 loss=[(h1?(x)?y1?)2+(h2?(x)?y2?)2+...(hn?(x)?yn?)2]/n=n1?i=1n?(h(xi?)?yi?)2=n1?∣∣(XW?y)2=21?∣∣(XW?y)2這就是最小二乘法公式∣∣A2是歐幾里得范數的平方也就是每個元素的平方相加

由于我們是研究使得loss最小時的w值而非關心loss具體的值,所以我們將n改為2,這可以便于后續求導運算

接下來,我們對loss的矩陣形式進行化簡和求導(此處不再贅述),最終可以得到最后可以得到w值組成的矩陣W:
W = ( X T X ) ? 1 X T y W=(X^TX)^{-1}X^Ty W=(XTX)?1XTy
通過以上的式子,我們可以精確地求出每一個w值,我們將這種方法稱為最小二乘法。

API用法:sklearn.linear_model.LinearRegression()

  • 該函數返回模型的參數和偏置項,即coef_,intercept_
# 線性回歸(最小二乘法)
from sklearn.linear_model import LinearRegression
import numpy as np
data=np.array([[0,14,8,0,5,-2,9,-3,399],[-4,10,6,4,-14,-2,-14,8,-144],[-1,-6,5,-12,3,-3,2,-2,30],[5,-2,3,10,5,11,4,-8,126],[-15,-15,-8,-15,7,-4,-12,2,-395],[11,-10,-2,4,3,-9,-6,7,-87],[-14,0,4,-3,5,10,13,7,422],[-3,-7,-2,-8,0,-6,-5,-9,-309]])
x,y = data[:,:-1],data[:,-1]model = LinearRegression(fit_intercept=True) # 可指定偏置項
model.fit(x,y)x_new=[[0,14,8,0,5,-2,9,-3]]
w = model.coef_
b = model.intercept_
# y_pred = model.predict(x_new)
# y_pred = w@x_new.T + b
y_pred = np.sum(w*x_new) + b
print(y_pred)

tips:由于該模型使用最小二乘法,需要進行逆矩陣的計算,在計算機中逆矩陣的運算會消耗大量的算力和內存空間,所以在實際應用中我們使用接下來介紹的梯度下降來求解參數。


THE END

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

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

相關文章

img.dims() <= 2 in function ‘cv::matchTemplate報錯

Mat src mat_ori;//imread(img_original);Mat src_template imread(img_template);cvtColor(src, src, COLOR_BGR2RGB);//不轉換,matchTemplate將報錯cvtColor(src_template, src_template,COLOR_BGR2RGB);//不轉換,matchTemplate將報錯 error: (-215…

NY321NY322美光閃存芯片NY323NY336

NY321NY322美光閃存芯片NY323NY336 在存儲技術飛速發展的今天,美光科技的閃存芯片憑借其創新架構與高性能表現,已成為工業自動化、智能終端等領域的核心組件。本文將圍繞技術解析、產品評測、行業趨勢、應用案例及市場動態五大維度,深入探討…

exit耗時高

背景:程序退出發現被強制退出,而不是正常的退出。正常退出是發送15信號,而異常退出是發送信號9,強制退出。退出機制是先發送信號15,然后6s內沒有退出完成,會發送信號9。通過查看退出流程,是將初…

docker compose up -d 是一個用于 通過 Docker Compose 在后臺啟動多容器應用 的命令

docker compose 表示調用 Docker Compose 工具,用于管理基于 YAML 文件定義的多容器應用。 up 核心指令,作用是根據 docker-compose.yml 文件中的配置,創建并啟動所有定義的服務、網絡、卷等資源。 如果容器未創建,會先構建鏡像&…

從輔助到協作:GitHub Copilot的進化之路

如果說現代程序員的標配工具除了VS Code、Stack Overflow之外,還有誰能入選,那一定是GitHub Copilot。從2021年首次亮相,到如今深度集成進開發者日常流程,這個“AI編程助手”已經不只是寫幾行自動補全代碼的小幫手了,而…

局部放大maya的視圖HUD文字大小的方法

一、問題描述: 有網友問:有辦法局部放大maya的字體嗎比如hud中currenttime打開之后畫面右下角有個frame 想放大一下能做到嗎? 在 Maya 中,可以通過自定義 HUD(Heads-Up Display)元素的字體大小來局部放大特…

C++中隱式的類類型轉換知識詳解和注意事項

一、隱式轉換的基本概念 隱式類型轉換(implicit conversion)指編譯器在需要時自動在兩種類型之間插入轉換代碼,無需顯式調用。對于內置類型(如 int 到 double),轉換由標準定義;對于用戶自定義類…

【C++】18.二叉搜索樹

由于map和set的底層是紅黑樹,同時后面要講的AVL樹(高度平衡二叉搜索樹),為了方便理解,我們先來講解二叉搜索樹,因為紅黑樹和AVL樹都是在二叉搜索樹的前提下實現的 在之前的C語言數據結構章節中,我們講過二叉樹&#x…

Leaflet使用SVG創建動態Legend

接前一篇文章,前一篇文章我們使用 SVG 創建了帶有動態文字的圖標,今天再看看怎樣在地圖上根據動態圖標生成相關的legend,當然這里也還是使用了 SVG 來生成相關顏色的 legend。 看下面的代碼,生成了一個 svg 節點,其中…

Linux基礎開發工具二(gcc/g++,自動化構建makefile)

3. 編譯器gcc/g 3.1 背景知識 1. 預處理(進行宏替換/去注釋/條件編譯/頭文件展開等) 2. 編譯(生成匯編) 3. 匯編(生成機器可識別代碼) 4. 連接(生成可執行文件或庫文件) 3.2 gcc編譯選項 格式 : gcc …

PostGIS實現柵格數據入庫-raster2pgsql

raster2pgsql使用與最佳實踐 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于將GDAL支持的柵格格式(如GeoTIFF、JPEG、PNG等)導入PostgreSQL數據庫,支持批量加載、分塊切片、創建空間索引及金字塔概覽,是柵格數據入庫的核心工具。 二、核心功能與典型用法 1…

精益數據分析(64/126):移情階段的用戶觸達策略——從社交平臺到精準訪談

精益數據分析(64/126):移情階段的用戶觸達策略——從社交平臺到精準訪談 在創業的移情階段,精準找到目標用戶并開展深度訪談是驗證需求的關鍵。今天,我們結合《精益數據分析》中的方法論,探討如何利用Twit…

ORACLE RAC環境REDO日志量突然增加的分析

服務概述 CRM系統在7/11日出現REDO日志產生量突增,達到平時產生量的20倍以上,對數據同步已經造成了較大的影響。工程師接到故障申報后,及時進行響應,通過對相關日志等信息的深入分析,整理匯總此文檔。 二、數據庫REDO…

注冊表設置windows背景護眼色

方法一: CtrlR,輸入regedit打開注冊表 HKEY_CURRENT_USER\Control Panel\Colors 右側窗口Windows鍵值由255 255 255改為202 234 206。 方法二: 還是注冊表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\DefaultColo…

回溯法理論基礎 LeetCode 77. 組合 LeetCode 216.組合總和III LeetCode 17.電話號碼的字母組合

目錄 回溯法理論基礎 回溯法 回溯法的效率 用回溯法解決的問題 如何理解回溯法 回溯法模板 LeetCode 77. 組合 回溯算法的剪枝操作 LeetCode 216.組合總和III LeetCode 17.電話號碼的字母組合 回溯法理論基礎 回溯法 回溯法也可以叫做回溯搜索法,它是一…

自己手寫tomcat項目

一:Servlet的原理 在Servlet(接口中)有: 1.init():初始化servlet 2.getServletConfig():獲取當前servlet的配置信息 3.service():服務器(在HttpServlet中實現,目的是為了更好的匹配http的請求方式) 4.g…

蘭亭妙微:用系統化思維重構智能座艙 UI 體驗

蘭亭妙微設計專注于以產品邏輯驅動的界面體驗優化,服務領域覆蓋AI交互、智能穿戴、IoT設備、智慧出行等多個技術密集型產業。我們倡導以“系統性設計”為方法論,在用戶需求與技術邊界之間找到最優解。 此次智能駕駛項目,我們為某車載平臺提供…

ubuntu安裝google chrome

更新系統 sudo apt update安裝依賴 sudo apt install curl software-properties-common apt-transport-https ca-certificates -y導入 GPG key curl -fSsL https://dl.google.com/linux/linux_signing_key.pub | gpg --dearmor | sudo tee /usr/share/keyrings/google-chrom…

技術測評:小型單文件加密工具的功能解析

最近在測試一款名為OEMexe的文件加密工具,發現它確實有一些獨特之處值得分享。這款軟件體積非常小巧,僅209KB,屬于綠色單文件版程序,無需安裝即可直接運行。 主要特點 多格式支持:能夠處理多種常見文件格式&#xff0…

Java-Objects類高效應用的全面指南

Java_Objects類高效應用的全面指南 前言一、Objects 類概述二、Objects 類的核心方法解析2.1 requireNonNull系列方法:空指針檢查的利器2.2 equals方法:安全的對象比較2.3 hashCode方法:統一的哈希值生成2.4 toString方法:靈活的對…