線性回歸——最小二乘法(二)

来源:http://www.cnblogs.com/softlin/archive/2016/10/16/5965939.html
-Advertisement-
Play Games

上篇文章中介紹了 單變數線性回歸 ,為什麼說時單變數呢,因為它只有單個特征,其實在很多場景中只有單各特征時遠遠不夠的,當存在多個特征時,我們再使用之前的方法來求特征繫數時是非常麻煩的,需要一個特征繫數一個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾十、幾百、幾千…… 單變數線性回歸: 多變數線性 ...


上篇文章中介紹了單變數線性回歸,為什麼說時單變數呢,因為它只有單個特征,其實在很多場景中只有單各特征時遠遠不夠的,當存在多個特征時,我們再使用之前的方法來求特征繫數時是非常麻煩的,需要一個特征繫數一個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾十、幾百、幾千……

單變數線性回歸:
多變數線性回歸:

  所以從這裡我們開始將介紹線性回歸的另一種更方便求解多變數線性回歸的方式:最小二乘法矩陣形式

模型變換

  線性回歸的標量形式:

  這裡把上訴式子中的繫數m與誤差c轉換為向量(為了統一從下麵開始使用
表示c與m),把式子中c看成是1c,把1與特征x也轉換為向量;

所以有:

損失函數

  損失函數也可以變為:

  根據矩陣乘積轉置規則損失函數可以進一步化簡為:


偏導數

  還是和之前一樣求損失函數L的極小值,所以求上式L關於W的偏導數;

向量微分常用等式

求L關於W的偏導數:

因為

則有:

W則是通過矩陣形式求出來的最小乘法的解;

示例

  下麵還是先使用上次的那組數據進行線性擬合,然後再使用多變數數據再次進行線性擬合已驗證上訴演算法:

單變數線性回歸示例:

這裡使用上面得到的最小二乘法矩陣形式公式對以下數據集進行線性擬合:

n x y
1 2 4
2 6 8
3 9 12
4 13 21

x、y的矩陣為:

根據公式求w

以下子求整個式子不好求,我們可以先分解該公式;



所以,也就是c=-0.23092,m=1.53092

線性回歸函數可以寫成:y = 1.53092x -0.23092

預測y的值:

y = 1.53092 * 2 - 0.23092=2.83092
y = 1.53092 * 6 - 0.23092=8.9546
y = 1.53092 * 9 - 0.23092=13.54736
y = 1.53092 * 13- 0.23092=19.67104

  與上偏文章直接求關於m與c的偏導得出來的結果幾乎一樣(因為小數點不同所以精度有所差異);下篇文章我們將使用本篇文章里的最小二乘法矩陣形式處理多變數的情況;

參考資料:
https://zh.wikipedia.org/zh/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
a first course in machine learning

文章首發地址:Solinx
http://www.solinx.co/archives/721


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 調整圖片大小的時候按下:option鍵讓讓控制項跟內容一樣大:command+= http://www.cr173.com/html/21801_1.html 一、關於運行調試1、運行,停止,都在工具欄的Product里。Command + R 運行。Command + . 停止 2、F6單步調試、F ...
  • Rocksdb是一個kv引擎,由facebook團隊基於levelDB改進而來,Rocksdb採用LSM-tree存儲數據,良好的讀寫特性以及壓縮特性使得其非常受歡迎。此外,Rocksdb引擎作為插件已經集成在facebook維護的MySQL分支,用戶可以通過SQL來訪問rocksDB。本文主要通過 ...
  • PL/SQL PL/SQL 簡介 每一種資料庫都有這樣的一種語言,PL/SQL 是在Oracle裡面的一種編程語言,在Oracle內部使用的編程語言。我們知道SQL語言是沒有分支和迴圈的,而PL語言是為了補充SQL語言的,是帶有了分支和迴圈的語言。 PL/SQL 語法 基本數據類型聲明 declar... ...
  • 目錄 環境準備 創建hadoop用戶 更新apt 配置SSH免密登陸 安裝配置Java環境 安裝Hadoop Hadoop單機/偽分佈配置 單機Hadoop 偽分佈Hadoop 啟動Hadoop 停止Hadoop 目錄 作者: vincent_zh時間:2016-10-16 出處:http://ww ...
  • 一、前言 現在做項目數據訪問基本都會選擇一種orm框架,它以面向對象的形式屏蔽底層的數據訪問形式,讓開發人員更集中在業務處理上,而不是和資料庫的交互上,幫助我們提高開發效率;例如一些簡單的insert、update,我們不需要寫insert into...sql 語句,而是直接new一個實體對象,然 ...
  • 介紹 為了避免在資料庫表結構設計過程中使用系統保留關鍵字我們必須知道資料庫存在哪些關鍵字,接下來會列出mysql、oracle、sqlserver三個資料庫各自的保留關鍵字。 Mysql http://dev.mysql.com/doc/refman/5.7/en/keywords.html ACC ...
  • 在SQL Server中,特殊的數據類型主要有三個,分別是:bit、sql_variant 和 sysname 一,bit bit類型,只有三個有效值:0,1 和 null,字元串true或false能夠隱式轉換為bit類型,true轉換為1,false轉換為0;任何非0的整數值轉換成bit類型時, ...
  • 以下的文章主要是向大家描述的是MySQL資料庫中delimiter的作用是什麼?我們一般都認為這個命令和存儲過程關係不大,到底是不是這樣的呢?以下的文章將會給你相關的知識,望你會有所收穫。 其實就是告訴MySQL解釋器,該段命令是否已經結束了,MySQL資料庫是否可以執行了。預設情況下,delimi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...