一文弄懂線性回歸模型

1、引言

今天,我們將深入探討機器學習中的三個關鍵概念:線性回歸、代價函數和梯度下降。這些概念構成了許多機器學習算法的基礎。起初,我決定不寫一篇關于這些主題的文章,因為它們已經被廣泛涉及。不過,我改變了主意,因為理解這些概念對于理解神經網絡等更高級的主題至關重要。

閑話少說,我們直接開始吧!

2、問題引入

與任何機器學習問題一樣,我們首先要回答一個具體的問題。在本例中,我們的朋友馬克正在考慮出售他 2400 平方英尺的房子,并向我們尋求幫助,以確定最合適的掛牌價格。
在這里插入圖片描述

憑直覺,我們首先要查找朋友所在社區的同類房屋。經過一番挖掘,我們找到了附近三棟房子的清單,并查看了它們的售價。當然,一個典型的數據集會有數千甚至數萬個數據點,但我們只用這三棟房子就夠了。
在這里插入圖片描述

在這里插入圖片描述

接著,讓我們來繪制這些數據:
在這里插入圖片描述

通過觀察數據,房屋價格似乎與房屋面積呈線性關系。為了模擬這種關系,我們可以使用一種稱為線性回歸的機器學習技術。這需要在散點圖上畫出一條最能代表數據點模式的線。我們的模型可能是這樣的:
在這里插入圖片描述

根據這條線,2400 平方英尺的房子應該賣多少錢?
在這里插入圖片描述

大概$260,000。這就是答案。

現在最大的問題是:我們如何確定數據的最佳擬合線?

3、 確認最佳擬合方程

經過上述分析,我們的問題轉化為如何確定數據的最佳擬合線?我畫的線可能有點偏,就像這樣:
在這里插入圖片描述

我們可以清楚地知道,這種情況下對數據的擬合程度遠不如第一種情形。要找出最佳的擬合線,我們首先要做的就是用數學方法來衡量一條糟糕的線。

讓我們來看看這條 "相對糟糕 "的擬合線,根據這條線,一棟 2000 平方英尺的房子應該賣 14 萬美元,而我們知道它實際上賣了 30 萬美元:

在這里插入圖片描述

線上其他數值也有明顯差異:

在這里插入圖片描述

平均而言,這條線的上預測差額約為 94,000 美元(50,000 美元 + 160,000 美元 + 72,000 美元/3)。

事實上,我們有預測差額更小的預測線,如下:

在這里插入圖片描述

這條線路的平均預測差額約為 44 000 美元,這要好得多。這 4.4 萬美元被稱為使用這條線的costcost就是用來衡量這條線與真實數據的偏差程度。與真實數據偏差最小或cost最低的預測線就是最佳選擇。要找出哪條線是最佳線,我們需要使用損失cost函數。

4、損失函數

以上章節我們利用平均絕對誤差 (MAE) 代價函數來確定實際房價與預測房價的偏差。這基本上是計算實際房價(用 y 表示,因為它代表 y 軸上的值)與預測房價(用 ? 表示)偏離程度的平均值。我們可以這樣用以下數學公式來計算 MAE:
在這里插入圖片描述

注:在計算 MAE 時使用絕對值,因為絕對值可確保預測值與實際值之間的差值始終為正值,無論預測值是高還是低。這樣就可以公平地比較不同預測值之間的誤差,因為如果不采用絕對值,正負差值就會抵消。

根據不同機器學習算法,我們可以采用不同類型的成本代價函數,也叫損失函數。對于我們的問題,我們將不使用 MAE,而是采用一種更加常用的方法,即平均平方誤差 (MSE),它計算的是預測房價與實際房價之差的平方平均數。
在這里插入圖片描述

歸根結底,任何代價函數的目的都是使其取值最小化,并盡可能降低損失。

5、 直線方程

在深入研究損失函數之前,讓我們先回顧一下基礎知識。下面是一條直線的示例:
y = 1 + 2x,第一項數字稱為截距,它告訴我們起始線應該有多高。
在這里插入圖片描述

第二項告訴我們直線的角度(或專業術語,斜率):
在這里插入圖片描述

既然我們已經理解了直線方程的工作原理,那么我們只需要確定這兩個值的最佳值–斜率和截距,就可以得到線性回歸問題的最佳擬合線。為了讓事情變得更簡單,讓我們假設我們已經神奇地得到了斜率值 0.069。因此,我們的線性回歸線方程如下:
在這里插入圖片描述

要獲得某一面積房屋的預測價格,我們只需輸入截距值和所需房屋面積。例如,如果房屋面積為 1000 平方英尺,截距為 0時,如下:
在這里插入圖片描述

得出預測房價為 69,000 美元。因此,我們現在要做的就是找到截距的最佳值,從而得到線性回歸模型。

6、求解截距

如何來求解截距呢?有一種方法(我們很快就會發現這種方法非常乏味,而且并不有趣)是"暴力枚舉",即反復猜測截距值,畫一條 LR 線,然后計算 MSE。為了實驗起見,讓我們嘗試一下這種方法。
首先隨機猜測一個截距值(從 0 開始),然后繪制直線:
在這里插入圖片描述

然后我們計算這條線的 MSE:
在這里插入圖片描述

為了獲得直觀的理解,讓我們在圖表上繪制截距值和相應的 MSE:
在這里插入圖片描述

接下來,我們將測試另一個截距值(比如 25),繪制相應的直線,并計算 MSE。
在這里插入圖片描述

我們可以用不同的截距值(0、25、50、75、100、125、150 和 175)繼續這一過程,直到最后得到如下圖形:

在這里插入圖片描述

從圖中繪制的點可以看出,當截距設置為 100 時,MSE 最低。不過,在 75 和 100 之間可能還有另一個截距值,會導致更低的 MSE。尋找最小 MSE 的一種緩慢而痛苦的方法是,如下圖所示,為截距設置更多的值:

在這里插入圖片描述

盡管我們做出了努力,但仍無法確定我們已經找到了最低的 MSE 值。測試多個截距值的過程既繁瑣又低效。幸運的是,梯度下降可以幫助我們解決這個問題,以更高效的方式找到最優解。這正是我們將在本系列第二部分中探討的問題!

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

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

相關文章

[圖解]SysML和EA建模住宅安全系統-02-現有運營領域-塊定義圖

1 00:00:00,840 --> 00:00:02,440 首先我們來看畫在哪里 2 00:00:02,570 --> 00:00:08,310 你看,這是圖的類型,圖里面內容 3 00:00:08,320 --> 00:00:10,780 這是元素類型 4 00:00:10,790 --> 00:00:14,900 這是位置,哪個包 …

Halcon 文本文件操作,形態學

一文件的讀寫 *******************************************************向文本文件寫入字符串內容*************************************************************read_image (Image, fabrik)threshold (Image, Region, 0, 120)area_center (Region, Area, Row, Column)open_…

【前端面試題】vue2.0與vue3.0不同處大全

Vue 3.0與Vue 2.0在細節上存在多個顯著的不同之處,以下是對這些區別的詳細歸納和解釋: 性能提升: Vue 3.0的性能相比Vue 2.x快了1.2至2倍。這主要得益于內部對虛擬DOM的完全重寫,mounting和patching的提速,以及基于Pr…

嘉立創學習

1.兩個設置,一般用左邊那個 2.焊盤分類 基本焊盤 熱風盤:也叫花焊盤(負片) 隔離焊盤:外面那圈黑色,用作隔離(負片) 鋼網層:(錫膏) 阻焊層&…

【php】【mysql】【layui】 原生初級簡易留言簿系統成品代碼動態網站開發網頁WEB瀏覽器端B/S結構

更多項目點擊👆👆👆完整項目成品專欄 【php】【mysql】【layui】 原生初級簡易留言簿系統成品代碼動態網站開發網頁WEB瀏覽器端B/S結構 獲取源碼方式項目說明:文件包含:項目運行環境項目運行截圖 獲取源碼方式 加Q群…

妙解設計模式之橋接模式

橋接模式的概念 橋接模式(Bridge Pattern)是一種結構型設計模式,用于將抽象部分和實現部分分離,使它們可以獨立變化。這種模式通過組合而不是繼承來實現這個目標,從而提高系統的靈活性和可擴展性。 抽象部分&#xf…

如何使用C++進行文件讀寫操作

在C中&#xff0c;我們可以使用標準庫中的 <fstream>&#xff08;文件流&#xff09;來進行文件的讀寫操作。以下是一些基本的文件讀寫操作的示例。 讀取文件 cpp復制代碼 #include <fstream> #include <iostream> #include <string> int main() { s…

MySQL高級-SQL優化- update 優化(盡量根據主鍵/索引字段進行數據更新,避免行鎖升級為表鎖)

文章目錄 0、update 優化1、創建表2、默認是行鎖3、行鎖升級為表鎖4、給name字段建立索引 0、update 優化 InnoDB的行鎖是針對索引加的鎖&#xff0c;不是針對記錄加的鎖&#xff0c;并且該索引不能失效&#xff0c;否則會從行鎖升級為表鎖。 1、創建表 create table course(…

【嚴正聲明】鑒于CSDN的流氓行為,現已清空所有文章,資源下載分統一改為0

【嚴正聲明】鑒于CSDN的流氓行為&#xff0c;現已清空所有文章&#xff0c;資源下載分統一改為0 鑒于CSDN的流氓行為&#xff0c;現已清空所有文章&#xff0c;資源下載分統一改為0 鑒于CSDN的流氓行為&#xff0c;現已清空所有文章&#xff0c;資源下載分統一改為0 如果你在C…

CUDA 編程

## blocksize和gridsize設置 使用deviceQuery查看GPU相關信息(下圖為1080 ti)blocksize的最大值建議不要超過Maximum number of threads per block&#xff08;1024&#xff09;由于每個block里的線程需要被分為數個wrap&#xff0c;而wrap size為32&#xff08;Warp size&…

搭建企業內網pypi鏡像庫,讓python在內網也能像互聯網一樣安裝pip庫

目錄 知識點實驗1.服務器安裝python2.新建一個目錄/mirror/pip&#xff0c;用于存儲pypi文件&#xff0c;作為倉庫目錄3.下載python中的所需包放至倉庫文件夾/mirror/pip3.1. 新建requirement.py腳本&#xff08;將清華pypi鏡像庫文件列表粘貼到requirement.txt文件中&#xff…

【MATLAB源碼-第231期】基于matlab的polar碼編碼譯碼仿真,對比SC,SCL,BP,SCAN,SSC等譯碼算法誤碼率。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 極化碼&#xff08;Polar Code&#xff09; 極化碼&#xff08;Polar Code&#xff09;是一種新型的信道編碼技術&#xff0c;由土耳其裔教授Erdal Ar?kan在2008年提出。極化碼在理論上被證明能夠在信道容量上達到香農極限…

成熟ICT測試系統與LabVIEW定制開發的比較

ICT&#xff08;In-Circuit Test&#xff09;測試系統是電子制造行業中用于電路板&#xff08;PCB&#xff09;組件檢測的重要工具。市場上有許多成熟的ICT測試系統&#xff0c;如Keysight、Teradyne、SPEA等公司提供的商用解決方案。此外&#xff0c;LabVIEW作為一種強大的圖形…

單目操作符

目錄 ! --- 邏輯反操作 & --- 取地址操作符 * --- 間接訪問操作符&#xff08;解引用操作符&#xff09; sizeof --- 操作數的類型長度&#xff08;單位為字節&#xff09; ~ --- 對一個數的補碼二進制按位取反 前置和前置-- 后置和后置-- (類型) --- 強制類型轉換…

three.js場景三元素

three.js是一個基于WebGL的輕量級、易于使用的3D庫。它極大地簡化了WebGL的復雜細節&#xff0c;降低了學習成本&#xff0c;同時提高了性能。 three.js的三大核心元素&#xff1a; 場景&#xff08;Scene&#xff09; 場景是一個三維空間&#xff0c;是所有物品的容器。可以將…

安卓速度下載v1.0.5/聚合短視頻解析下載

功能特色 短視頻下載與高級管理 – 支持短視頻下載&#xff0c;為您提供一系列高級視頻管理功能包括視頻內容提取、智能防重復技術、視頻體積壓縮以及視頻轉換成GIF圖片等&#xff1b; 磁-力鏈接下載升級 – 現支持磁力鏈接下載&#xff0c;實現邊下載邊播放的便捷體驗&#x…

構建基于LLMs混合型大模型的先進事實性問答系統架構

1.引言 傳統搜索系統基于關鍵字匹配&#xff0c;缺少對用戶問題理解和答案二次處理能力。本文探索使用大語言模型&#xff08;Large Language Model, LLM&#xff09;&#xff0c;通過其對自然語言理解&#xff08;Natural Language Understanding&#xff0c;NLU&#xff09;…

阿里云常用的操作

阿里云常見的產品和服務 容器服務 可以查看容器日志、監控容器cpu和內存&#xff0c; 日志服務 SLS 可以查看所有服務的日志&#xff0c; Web應用防火墻 WAF 可以查看 QPS. 阿里云查看集群&#xff1a; 點擊 “產品和服務” 中的 容器服務&#xff0c;可以查看 集群列表&…

linux server下人臉檢測與識別服務程序的系統架構設計

一、緒論 1.1 定義 1.2 研究背景及意義 1.3 相關技術綜述 二、人臉檢測與識別技術概述 2.1 人臉檢測原理與算法 2.2 人臉識別技術及方法 2.3 人臉識別過程簡介 三、人臉檢測與識別服務程序的系統架構 3.1 系統架構設計 3.2 技術實現流程 四、后續設計及經驗瞎談 4.…

解釋Java中的抽象類、接口、重載和重寫等核心概念

Java中的抽象類、接口、重載和重寫等核心概念詳解 在Java編程中&#xff0c;抽象類、接口、重載和重寫是面向對象編程的四個核心概念。這些概念不僅構成了Java編程語言的基礎&#xff0c;也是面試官在面試過程中經常考察的要點。下面&#xff0c;我將從技術難點、面試官關注點…