機器學習-多重線性回歸和邏輯回歸

目錄

1. 多重線性回歸

1.1 多元線性回歸

1.2 向量化(矢量化)

1.3?多元線性回歸的梯度下降算法

1.4?正規方程

2. 特征縮放

2.1?特征縮放

2.2?檢查梯度下降是否收斂

2.3 學習率的選擇

2.4?特征工程

2.5 多項式回歸

3. 邏輯回歸

3.1?Motivations

3.2?邏輯回歸

3.3 決策邊界

3.4?邏輯回歸的代價函數

4. 梯度下降的實現

5. 過擬合

5.1?過擬合問題

5.2 解決過擬合問題

5.3?正則化代價函數

5.4?正則化線性回歸

5.5?正則化邏輯回歸


本次學習筆記基于吳恩達機器學習視頻。

1. 多重線性回歸

1.1 多元線性回歸

矢量:

多元線性回歸:具有多個特征的線性回歸。

矢量化可以實現多元線性回歸。

1.2 向量化(矢量化)

(1)向量化:

向量化優點:使得代碼更加簡潔;代碼運行速度更快,如下圖:

(2)向量化運行更快的原因

For循環與向量化的對比,如下圖:

For循環是一步一步進行加法計算的。

向量化可以獲取全部數據進行計算后,再用固定的硬件將全部相加起來。

例子:向量化如何幫助實現多元線性回歸

向量化可以看成有16個數組,同時進行計算。

1.3?多元線性回歸的梯度下降算法

可以用向量化來實現多元線性回歸的梯度下降,如下圖:

當多個特征時,梯度下降與只有一個特征時會稍有不同,如下圖所示:

右邊就是多元梯度下降算法。

1.4?正規方程

正規方程:尋找線性回歸的w和b的替代方法的簡短旁注。(僅適合線性回歸,不需要迭代的梯度下降算法)

缺點:不能推廣到其他學習算法;特征數量n很大時,正規方程也相當慢。

2. 特征縮放

2.1?特征縮放

(1)特征縮放:使梯度下降更快。

當一個特征的取值范圍很大時,一個好的模型更可能會選擇一個相對較小的參數值。

當一個特征的取值范圍比較小時,一個好的模型更可能會選擇一個相對較大的參數值。

當你有不同特征取值范圍差異很大時,可能導致梯度下降運行緩慢。可以重新縮放不同的特征,使他們都在相似的范圍內取值,可以加快梯度下降的速度。

(2)如何實現特征縮放以處理取值范圍非常不同的特征,并且將他們縮放到具有可比的取值范圍?

①都除以最大值

②均值歸一化(將所有數據都集中在0附近)。

找到訓練集上x1的均值,所有數減去均值,再除以差值。

找到訓練集上x2的均值,所有數減去均值,再除以差值。

③z-score歸一化(計算每個特征的均值和標準差)

每個x1減去均值再除以標準差。

每個x2減去均值再除以標準差。

(3)特征的取值:

2.2?檢查梯度下降是否收斂

(1)學習曲線

如果梯度下降正常工作,那么代價j應該在每次迭代后都減少。

如果j在一次迭代增加,那么意味著要么是a選擇不當(a太大)或者代碼中有錯誤。

當迭代到達300次時,代價j開始趨于平穩,不再有太大下降。到達400次時,梯度下降差不多已經收斂。

(2)檢查梯度下降是否收斂的方法

①觀察學習曲線,可以檢查梯度下降是否收斂。

梯度下降收斂所需的迭代次數在不同的情況下可能會有很大的差異。

②使用自動收斂測試

設置一個變量epsilon,表示一個小數。如果在一次迭代中,代價j的減少量小于這個epsilon,則很可能看到學習曲線的平坦部分,可以宣布收斂。

但是找到epsilon很困難,所以推薦查看學習曲率來檢查梯度下降是否收斂。

2.3 學習率的選擇

出現上圖的原因是可能代碼出現錯誤或者學習率太大。

上圖是因為學習率太大導致的,可以減少學習率。(或者代碼的錯誤)

當學習率太大時,可能會出現上面左圖無法收斂的情況,可以減少學習率。

如果把學習率設置成一個很小很小的數值,但是學習曲線還是會出現上升的情況,表示代碼出現了錯誤。

但是學習率太小時,需要很多次迭代才可以達到收斂。

選擇學習率的技巧:

先選擇一個很小很小的數值,然后每一次擴大3倍,繼續嘗試,直到找到最合適的學習率可以使得學習曲線下降的比較快且平穩。

2.4?特征工程

使得多元線性回歸更加強大-->選擇自定義的特征

如何選擇或設計最合適的特征用于學習:可以利用對問題的知識或者直覺來設計新特征,通常通過轉化或組合問題的原始特征,以便讓學習算法更容易做出預測。

2.5 多項式回歸

多項式回歸可以擬合曲線,是將特征x提升到任何平方或者開根號。這樣的話更需要注意特征縮放。

3. 邏輯回歸

3.1?Motivations

二元分類:結果只有兩個可能的分類/類別

如何構建分類算法:可以看決策邊界(如下圖的垂直線)

3.2?邏輯回歸

邏輯回歸:用于分類(用于解決輸出標簽y為0或1的二元分類問題)

Sigmoid函數:

f的結果表示等于1的概率。

3.3 決策邊界

f>=0.5時(z>=0時/wx+b>=0時),y=1;

f<0.5時(z<0時/wx+b<0時),y=0;

決策邊界:z=wx+b=0

例子:決策邊界為直線時

例子:決策邊界為曲線時

3.4?邏輯回歸的代價函數

為什么平方誤差成本函數不是邏輯回歸的理想成本函數?

因為梯度下降時會遇到很多局部最小值,如下圖:

損失函數:

①Y=1時,預測值接近1時,損失最小,如下圖:

②Y=0時,預測值接近0時,損失最小,如下圖:

損失函數的簡化版公式如下:

訓練邏輯回歸的代價函數如下:

4. 梯度下降的實現

如何找到一個合適的w和b?

把右側帶入左側,得到下面:

上面與線性回歸的區別:函數f(x)的定義已經改變了,如下圖:

5. 過擬合

5.1?過擬合問題

泛化:對于全新的例子也能做出良好的預測。

下面是沒有過擬合也沒有欠擬合的情況:

過擬合/算法有高方差:模型太復雜,導致在訓練集上表現很好,但在測試集上泛化能力差。如下圖情況:

欠擬合:模型太過簡單,無法很好擬合訓練數據。如下圖情況:

5.2 解決過擬合問題

(1)收集足夠多的訓練數據,可以保證盡管是過擬合的模型,也可以表現很好。

(2)減少多項式的特征:進行特征選擇(選擇最重要的幾個特征集)

(3)正則化:更溫和的減少某些特征影響的方法,而不需要去除他們。(將特征的參數大小減小)

一般只正則化w1~wn,而不正則化b。

5.3?正則化代價函數

當特征的參數較小時,模型比較簡單,不容易產生過擬合的情況。

當不知道哪些參數是重要的時候,就懲罰所有特征參數;

如果正則率()=0,則表示沒有正則化

如果正則率特別大,f(x)約等于b;學習算法會擬合出一條水平直線,并出現欠擬合。

5.4?正則化線性回歸

帶入后如下:

注意:只正則化w,不正則化b。

5.5?正則化邏輯回歸

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

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

相關文章

編程思想:程序自身的模型/函數模型硬件標準如何實現

前言前面提到過寫程序的過程:根據各種需求,構建程序模型(邏輯模型),再用代碼實現.本貼關于程序自身的模型以及函數模型,以及推導硬件標準從邏輯到代碼的思路.程序自身的模型如圖應用APP接受輸入---鼠標動作,鍵盤輸入的字符等,得到結果---畫面,顯示數據等.工具包括框架和編程語言…

基于JAVA Spring Boot物理實驗考核系統設計與實現 (文檔+源碼)

目錄 一.研究目的 二.需求分析 三.數據庫設計 四.系統頁面展示 五.源碼獲取方式 一.研究目的 信息數據的處理完全依賴人工進行操作&#xff0c;會耗費大量的人工成本&#xff0c;特別是面對大量的數據信息時&#xff0c;傳統人工操作不僅不能對數據的出錯率進行保證&…

【國內電子數據取證廠商龍信科技】安卓鏡像提取與解析

前言隨著智能手機更新迭代越來越快&#xff0c;手機廠家對手機系統安全性要求也越來越嚴格。系統安全性提高對公民的隱私是一件好事&#xff0c;但是對于取證行業確實一個大難題&#xff0c;手機系統安全性的提高意味著我們能對犯罪嫌疑人手機的提取數據和恢復數據越來越少&…

Java+Ollama 本地部署 DeepSeek-R1 對話機器人:從 0 到 1 實戰指南

作為 Java 開發者&#xff0c;想在本地搭建一個能理解代碼、支持多輪對話的 AI 機器人&#xff1f;DeepSeek-R1 這款開源大模型絕對值得一試。今天就帶大家用 OllamaJava 實現本地化部署&#xff0c;全程實操&#xff0c;新手也能跟著做&#xff01; 一、先搞懂&#xff1a;為…

Java Web項目Dump文件分析指南

目錄 1. Dump文件的類型與作用 2. 生成Dump文件的方法 3. 分析Dump文件的工具 4. 分析步驟與常見問題解決 5. 最佳實踐與預防 在Java Web項目中&#xff0c;dump文件是JVM&#xff08;Java虛擬機&#xff09;在發生崩潰、內存溢出或特定事件時生成的內存快照文件&#xff0…

Ubuntu網卡驅動無效,不能連接wifi上網

一、現象及臨時網絡準備 我的另一篇博客詳細介紹了前期準備工作&#xff1a; 知乎&#xff1a;Ubuntu網卡驅動無效&#xff0c;不能連接wifi上網知乎&#xff1a;Ubuntu網卡驅動無效&#xff0c;不能連接wifi上網 在此基礎上&#xff0c;還得給Ubuntu配好鏡像源&#xff0c;…

LeetCode Hot 100 二叉搜索樹中第 K 小的元素

給定一個二叉搜索樹的根節點 root &#xff0c;和一個整數 k &#xff0c;請你設計一個算法查找其中第 k 小的元素&#xff08;從 1 開始計數&#xff09;。示例 1&#xff1a;輸入&#xff1a;root [3,1,4,null,2], k 1 輸出&#xff1a;1示例 2&#xff1a;輸入&#xff1a…

5-大語言模型—理論基礎:注意力機制優化

目錄 1、稀疏注意力機制&#xff08;Sparse Attention&#xff09; 1.1、核心問題&#xff1a;傳統注意力的 “效率瓶頸” 1.2、具體稀疏策略&#xff08;詳細計算邏輯&#xff09; 1.2.1、局部窗口稀疏&#xff08;Local Window Sparse&#xff09; 1.2.2、基于內容的稀疏…

輕松學習C++:基本語法解析

基本語法解析引言基本語法變量和數據類型運算符控制結構函數示例代碼&#xff1a;計算圓的面積引言 C是一種功能強大的通用編程語言&#xff0c;由Bjarne Stroustrup于1979年創建。它在C語言的基礎上進行了擴展&#xff0c;支持面向對象編程、泛型編程和過程式編程。C以其高性…

Python Pandas讀取Excel表格中數據并根據時間字段篩選數據

&#x1f91f;致敬讀者 &#x1f7e9;感謝閱讀&#x1f7e6;笑口常開&#x1f7ea;生日快樂?早點睡覺 &#x1f4d8;博主相關 &#x1f7e7;博主信息&#x1f7e8;博客首頁&#x1f7eb;專欄推薦&#x1f7e5;活動信息 文章目錄Python Pandas讀取Excel表格中數據并根據時間…

CS231n-2017 Lecture3線性分類器、最優化筆記

圖片向量與標簽得分向量&#xff1a;上節講到&#xff0c;圖片可以被展開成一個向量&#xff0c;對于這個向量&#xff0c;假設它有D維&#xff0c;那么它就是D維空間的一個點&#xff0c;又假設我們的標簽集合總共有K種&#xff0c;我們可以定義一個K維標簽得分向量&#xff0…

windows wsl ubuntu 如何安裝 open-jdk8

安裝步驟 jdk dhd:~$ java -version Command java not found, but can be installed with: sudo apt install openjdk-11-jre-headless # version 11.0.20.11-0ubuntu1~22.04, or sudo apt install default-jre # version 2:1.11-72build2 sudo apt install op…

Javascript進程和線程通信

JavaScript 中的進程通信&#xff08;IPC&#xff09;和線程通信是實現高性能、高并發應用的核心技術&#xff0c;尤其在處理 CPU 密集型任務或跨環境數據交互時至關重要。以下從底層機制到應用場景的詳解&#xff1a;&#x1f9e9; ??一、進程通信&#xff08;Inter-Process…

堆堆堆,咕咕咕

1.找TopK問題要找到最前面的k個元素void swap(int *a,int *b) {int temp*a;*a*b;*btemp; } //向下調整最小堆 void minheapify(int arr[],int n,int index) {int left2*index1;int right2*index2;int smallestindex;if(left<n&&arr[left]<arr[smallest]) smalles…

n8n教程分享,從Github讀取.md文檔內容

從上一篇我們了解到了如何安裝 n8n 那么這節課我們嘗試從github的個人倉庫獲取某個文件的內容 目標如下 content/business/1.how-to-use-money.mdx 總流程圖 流程詳解 第1步&#xff1a;申請 GitHub Personal Access Token (Classic) 在gitrhub 個人 設置選項 申請 GitHub P…

分布式ID與冪等性面試題整理

分布式ID與冪等性面試題整理 文章目錄分布式ID與冪等性面試題整理一、分布式ID1. 為什么需要分布式ID&#xff1f;2. 分布式ID的核心要求3. 常見分布式ID方案(1) UUID(2) 數據庫自增(3) Redis自增(4) 雪花算法(Snowflake)(5) 美團Leaf/百度UidGenerator4. 雪花算法詳解二、冪等…

node.js學習筆記1

目錄 Node.js是什么 Node.js下載與安裝 Buffer緩沖區 一些計算機硬件基礎 程序運行的基本流程 Node.js是什么 node.js是一個JavaScript運行環境&#xff0c;或者說&#xff0c;node.js是一個可以運行JavaScript的軟件。 可以用于開發服務端、桌面端、工具類應用。 服務器…

游戲開發日志

我來為您逐行詳細講解這個 ViewMgr.cs 文件。這是一個Unity游戲中的視野管理系統&#xff0c;用于優化游戲性能。## 文件結構概覽這個文件主要包含以下幾個部分&#xff1a; 1. 數據結構和接口定義 2. 視野管理器 ViewMgr 類 3. 工具類 ViewTools讓我逐行為您講解&#xff1a;#…

使用 PlanetScope 衛星圖像繪制水質參數:以莫干湖為例

1.數據采集 我使用ArcGIS Pro 中的Planet Imagery插件下載了 2023 年 6 月 25 日的安卡拉莫干湖衛星圖像。 圖 1&#xff1a;使用 Planet 插件下載衛星圖像 圖 2&#xff1a;下載圖像的日期和傳感器選擇 我查閱的研究中指出&#xff0c;使用無降水時期的衛星圖像對于水質測定…

Docker部署前后端分離項目——多項目共享環境部署

目錄 一、簡介 二、文件目錄結構 三、前端部署流程&#xff08;多nginx&#xff09; 3.1 前端打包 3.2 編寫部署文件——項目1&#xff08;consult-system&#xff09; 3.3 編寫部署文件——項目2&#xff08;person-system&#xff09; 3.4 前端部署至linux服務器 3.5…