1. 程式人生 > >機器學習筆記(一):最小二乘法和梯度下降

機器學習筆記(一):最小二乘法和梯度下降

一、最小二乘法

1.一元線性擬合的最小二乘法

先選取最為簡單的一元線性函式擬合助於我們理解最小二乘法的原理。

圖片1

要讓一條直接最好的擬合紅色的資料點,那麼我們希望每個點到直線的殘差都最小。
設擬合直線為 y i = b +

a x i y_{i}= b+ax_{i} ,那這些資料的所有誤差和為: S =
i = 1 n ( y b
a x i ) 2 S=\sum_{i=1}^{n}(y-b-ax_{i})^2

因此,為了能得到最小的誤差所對應的 b , a b,a 的值,需要分別對 S S 關於 b , a b,a 求導,並且令導數為0:

S b = 2 i = 1 n ( y i b a x i ) = 0 {\frac{\partial S}{\partial b}}= -2\sum_{i=1}^{n}(y_{i}-b-ax_{i})=0

S a = 2 i = 1 n ( y i b a x i ) x i = 0 {\frac{\partial S}{\partial a}}= -2\sum_{i=1}^{n}(y_{i}-b-ax_{i})x_{i}=0
解得:
a = n x i y i x i y i n x i 2 ( x i ) 2 a= \frac{ n\sum x_{i}y_{i}-\sum x_{i}\sum y_{i}}{n\sum x_{i}^2-(\sum x_{i})^2}

b = y a x b=\overline{y}-a\overline{x}

具體推導過程:

S b = 2 i = 1 n ( y i b a x i ) = 0 {\frac{\partial S}{\partial b}}= -2\sum_{i=1}^{n}(y_{i}-b-ax_{i})=0

S a = 2 i = 1 n ( y i b a x i ) x i = 0 {\frac{\partial S}{\partial a}}= -2\sum_{i=1}^{n}(y_{i}-b-ax_{i})x_{i}=0

D a = 0 \frac{\partial D}{\partial a}=0 , D a \frac{\partial D}{\partial a} ,求解a和b,令 n x ˉ = i = 1 n x i , n y ˉ = i = 1 n y i n\bar{x}=\sum_{i=1}^nx_i,n\bar{y}=\sum_{i=1}^ny_i
因此得:
n y ˉ n a b n x ˉ = 0 n\bar{y}-na-bn\bar{x}=0

i = 1 n x i y i a i = 1 n x i b i = 1 n x i 2 = 0 \sum_{i=1}^nx_iy_i-a\sum_{i=1}^nx_i-b\sum_{i=1}^nx_i^2=0

相關推薦

機器學習筆記乘法梯度下降

一、最小二乘法 1.一元線性擬合的最小二乘法 先選取最為簡單的一元線性函式擬合助於我們理解最小二乘法的原理。 要讓一條直接最好的擬合紅色的資料點,那麼我們希望每個點到直線的殘差都最小。 設擬合直線為

Java虛擬機器學習筆記記憶體區域與HotSpot虛擬機器物件探祕

執行時資料區域 Java虛擬機器在執行Java程式的過程中會把它所管理的記憶體劃分為若干個不同的資料區域。這些區域都有各自的用途,以及建立和銷燬的時間,有的區域隨著虛擬機器程序的啟動而存在,有些區域則依賴使用者執行緒的啟動和結束而建立和銷燬。根據《Java虛擬機

機器學習筆記極大似然估計與貝葉斯估計的區別

似然函式: 樣本資料的分佈和在引數為下的概率分佈的相似程度 極大似然估計:只要求出符合樣本資料分佈的最優引數即可,不需要考慮先驗。 貝葉斯估計   MAP(最大後驗估計)

機器學習筆記關於隱含馬爾科夫模型

這篇文章是我在看完吳軍老師的數學之美一書中關於隱馬爾科夫模型之後所寫,旨在記錄一下自己對隱馬爾科夫模型的認識, 隱馬爾科夫模型我在很早之前就有所接觸,在學習語音識別的時候,會涉及到隱馬爾科夫模型,當時是完全不懂,現在雖然還是一知半解,因為沒有再次去使用,接下來的主攻方向是機器視覺,對隱馬爾可

機器學習筆記梯度下降演算法,隨機梯度下降,正規方程

一、符號解釋 M 訓練樣本的數量 x 輸入變數,又稱特徵 y 輸出變數,又稱目標 (x, y) 訓練樣本,對應監督學習的輸入和輸出 表示第i組的x   表示第i組的y h(x)表示對應演算法的函式 是

Python學習筆記基本的HelloWorld

1、Python和Java、c++等語言並沒有太大的區別,對於剛接觸這門語言的我來說,遠沒有接觸prolog等語言這樣的差異。唯一的不同,僅僅是和javascript類似。 2、基本環境配置,無,基本直接安裝就可以使用了,Java好歹需要配置環境變數 3、入門的HelloW

機器學習筆記TensorFlow實戰深層神經網路

1 - 深度學習與深層神經網路 深度學習的精確定義為:“一類通過多層非線性變換對高複雜性資料建模演算法的集合” 因此,多層神經網路有著2個非常重要的特性 多層 非線性 1.1 - 線性模型的侷限性 線上性模型中,模型的輸出為輸入的加權和,假設一

Python3+OpenCV學習筆記影象載入、顯示儲存

img = cv2.imread('Rachel.jpg')載入影象後,當然需要顯示出來,我們才能看到,所以,接下來用到第二個函式cv2.imshow(windowname, filename)“windowname”輸入顯示視窗的名稱,引數型別str,需要開啟多個視窗時,只需要“windowname”不同

機器學習回顧篇2乘法

1 引言 在機器學習常用的優化演算法中,梯度下降法和最小二乘法佔盡了風騷。梯度下降法上一篇中已經詳細介紹過了,那麼這一篇,我們繼續說一說最小二乘法。 2 什麼是最小二乘法 描述預測模型準確程度有多重不同的方法: (1)誤差和最小化。這種方法存在的問題是正負誤差會相互抵消,導致描述不準確。 (2)誤差

機器學習筆記】線性迴歸之乘法

線性迴歸    線性迴歸(Linear Regreesion)就是對一些點組成的樣本進行線性擬合,得到一個最佳的擬合直線。 最小二乘法    線性迴歸的一種常用方法是最小二乘法,它通過最小化誤差的平方和尋找資料的最佳函式匹配。 代數推導    假設擬合函式為 y

乘法梯度下降法有哪些區別?

https://www.zhihu.com/question/20822481 最小二乘法的目標:求誤差的最小平方和,對應有兩種:線性和非線性。線性最小二乘的解是closed-form即,而非線性最小二乘沒有closed-form,通常用迭代法求解。 迭代法,即在每一步update未知量逐漸

機器學習學習筆記線性回歸、邏輯回歸

ros XA andrew ID learn 給定 編程練習 size func 《機器學習》學習筆記(一):線性回歸、邏輯回歸 本筆記主要記錄學習《機器學習》的總結體會。如有理解不到位的地方,歡迎大家指出,我會努力改正。 在學習《機器學習》時,我主要是

Python3《機器學習實戰》學習筆記k-近鄰演算法

**轉載:**http://blog.csdn.net/c406495762執行平臺: WindowsPython版本: Python3.xIDE: Sublime text3 他的個人網站:http://cuijiahua.com   文章目錄

機器學習筆記Tensorflow 實戰 Tensorflow入門

1 - TsensorFlow計算模型 ——計算圖 1.1- 計算圖的概念 計算圖是TensorFlow中最基本的一個概念,TensorFlow中的所有計算都會被轉化為計算圖上的節點。 在TensorFlow中,張量可以簡單地理解為多為陣列。如果說TensorFlow的第一個詞T

機器學習實戰》學習筆記k-近鄰演算法

k-近鄰演算法 原書中程式碼為python2中語法,python3的語法參考連結:https://blog.csdn.net/c406495762/article/details/75172850 給出k-近鄰演算法的完整程式碼(海倫相親程式) import numpy a

python3.5《機器學習實戰》學習筆記k近鄰演算法

轉載請註明作者和出處:http://blog.csdn.net/u013829973 系統版本:window 7 (64bit) python版本:python 3.5 IDE:Spyder (一個比較方便的辦法是安裝anaconda,那麼Spyder和

Python3《機器學習實戰》學習筆記k-近鄰演算法(史詩級乾貨長文)

#一 簡單k-近鄰演算法     本文將從k-鄰近演算法的思想開始講起,使用python3一步一步編寫程式碼進行實戰訓練。並且,我也提供了相應的資料集,對程式碼進行了詳細的註釋。除此之外,本文也對sklearn實現k-鄰近演算法的方法進行了講解。實戰例項:

機器學習學習筆記線性迴歸、邏輯迴歸

    本筆記主要記錄學習《機器學習》的總結體會。如有理解不到位的地方,歡迎大家指出,我會努力改正。     在學習《機器學習》時,我主要是通過Andrew Ng教授在mooc上提供的《Machine Learning》課程,不得不說Andrew Ng老師在講授這門課程時,

HLSL學習筆記基礎

pad ddx 做了 cto har 分割 with 圖形 content http://www.cnblogs.com/rainstorm/archive/2013/05/04/3057444.html 前言 五一在家無事,於是學習了一下HLSL,基於XAN4.0的。學習

EF6 學習筆記Code First 方式生成數據庫及初始化數據庫實際操作

view sqlserver 4.5 xpl 安裝 右鍵 ef6 字符串 ref 參考原文地址: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-wit