1. 程式人生 > >機器學習演算法入門之(一) 梯度下降法實現線性迴歸

機器學習演算法入門之(一) 梯度下降法實現線性迴歸

1. 背景

線性迴歸的目標很簡單,就是用一條線,來擬合這些點,並且使得點集與擬合函式間的誤差最小。如果這個函式曲線是一條直線,那就被稱為線性迴歸,如果曲線是一條二次曲線,就被稱為二次迴歸。資料來自於GradientDescentExample中的data.csv檔案,共100個數據點,如下圖所示:

圖片名稱

我們的目標是用一條直線來擬合這些點。既然是二維,那麼y=b+mx這個公式相信對於中國學生都很熟悉。其中b是直線在y軸的截距(y-intercept),m是直線的斜率(slope)。尋找最佳擬合直線的過程,其實就是尋找最佳的bm的過程。為了尋找最佳的擬合直線,這裡首先要定義,什麼樣的直線才是最佳的直線。我們定義誤差(cost function):

Error(b,m)=1N1N((b+mxi)yi)2

計算損失函式的python程式碼如下:

# y = b + mx
def compute_error_for_line_given_points(b, m, points):
    totalError = sum((((b + m * point[0]) - point[1]) ** 2 for point in points))
    return totalError / float(len(points))

現在問題被轉化為,尋找引數bm,使得誤差函式Error(b,m)有最小值。在這裡,xiyi都被視為已知值。從下圖看,最小二乘法所做的是通過數學推導直接計算得到最低點;而梯度下降法所做的是從圖中的任意一點開始,逐步找到圖的最低點。

這裡寫圖片描述

2. 多元線性迴歸模型

從機器學習的角度來說,以上的資料只有一個feature,所以用一元線性迴歸模型即可。這裡我們將一元線性模型的結論一般化,即推廣到多元線性迴歸模型。這部分內部參考了機器學習中的數學(1)-迴歸(regression)、梯度下降(gradient descent)。假設有x1x2..., xnn個feature,θx的係數,則

hθ(x)=θ0+θ1x1+...+θnxn=θTxx0=1J(θ)=12i=1m(hθ(x(i))y(i))2mm

更一般地,我們可以得到廣義線性迴歸。ϕ(x)可以換成不同的函式,從而得到的擬合函式就不一定是一條直線了。

hθ(x)=θTx=θ0+i=1nθiϕi(xi)

2.1 誤差函式的進一步思考

這裡有一個有意思的東西,就是誤差函式為什麼要寫成這樣的形式。首先是誤差函式最前面的係數12,這個引數其實對結果並沒有什麼影響,這裡之所以取12,是為了抵消求偏導過程中得到的2。可以實驗,把Error(b,m)最前面的1N修改或者刪除並不會改變最終的擬合結果。那麼為什麼要使用平方誤差呢?考慮以下公式:

y(i)=θTx(i)+ε(i)

假定誤差ε(i)(1im)是獨立同分布的,由中心極限定理可得,ε(i)服從均值為0,方差為

相關推薦

機器學習演算法入門() 梯度下降實現線性迴歸

1. 背景 線性迴歸的目標很簡單,就是用一條線,來擬合這些點,並且使得點集與擬合函式間的誤差最小。如果這個函式曲線是一條直線,那就被稱為線性迴歸,如果曲線是一條二次曲線,就被稱為二次迴歸。資料來自於GradientDescentExample中的data.

基於梯度下降實現線性迴歸演算法

# coding: utf-8 # In[1]: # 資料校驗 def validate(X, Y): if len(X) != len(Y): raise Exception("引數異常") else: m = len(

梯度下降實現線性迴歸

import math import matplotlib.pyplot as plt import random #不懂 def sum_of_gradient(x, y, thetas): """計算梯度向量,引數分別是x和y軸點座標資料以及方程引數""" m = len(x);

Bobo老師機器學習筆記第六課-梯度下降

思維導圖筆記 數學基礎連結: 為什麼梯度方向是函式值增大最快的方向 為什麼沿著梯度方向函式值上升的最快?為什麼梯度反方向是函式值下降最快的方向? 練習程式碼 # -*- coding: utf-8 -*- import numpy as np import matplot

Bobo老師機器學習筆記第六課-梯度下降法線上性迴歸中的應用

在上一篇部落格中大概介紹了一下梯度下降法,那麼梯度下降法線上性迴歸中如何更好的應用了,本篇部落格做一介紹。 在BoBo老師的課程中,梯度下降法主要講了2中,批量梯度下降法(Batch Gradient Descent)和隨機梯度下降法(Stochastic Gradient

梯度下降解決線性迴歸

''' 用梯度下降的優化方法來快速解決線性迴歸問題 ''' import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import os os.environ['TF_

[ch04-02] 用梯度下降解決線性迴歸問題

系列部落格,原文在筆者所維護的github上:https://aka.ms/beginnerAI, 點選star加星不要吝嗇,星越多筆者越努力。 4.2 梯度下降法 有了上一節的最小二乘法做基準,我們這次用梯度下降法求解w和b,從而可以比較二者的結果。 4.2.1 數學原理 在下面的公式中,我們規定x是樣本特

機器學習金典演算法(二)--梯度下降(2)

機器學習金典演算法(二)–梯度下降法        本人上篇博文梯度下降法(1)解釋了梯度下降法在機器學習中位置及思想,本文將繼續討論梯度下降法,梯度下降法存在的問題及改進思路,以及現有的幾種流行的變種梯度下降法。 目錄

【八】機器學習路——梯度下降python實現

  前面的部落格線性迴歸python實現講了如何用python裡sklearn自帶的linearRegression()函式來擬合數據的實現方式。今天咱們來介紹下,如何用梯度下降法擬合數據。   還記得梯度下降法是怎麼做的嗎?忘記的同學可以回頭看下前面的部落格

機器學習的訓練演算法(優化方法)彙總——梯度下降及其改進演算法

Introduce 今天會說兩個問題,第一,建議大腳多看看大牛的部落格,可以漲姿勢。。。例如: 1、側重於語言程式設計和應用的廖雪峰 2、側重於高大上演算法和開源庫介紹的莫煩 第二,加深對機器學習演算法的理解。 個人理解:經典機器學習演算法,例如SVM,邏輯迴歸,決策樹

機器學習筆記 1 LMS和梯度下降(批梯度下降) 20170617

temp eas 理解 import 樣本 alt mes show 超過 # 概念 LMS(least mean square):(最小均方法)通過最小化均方誤差來求最佳參數的方法。 GD(gradient descent) : (梯度下降法)一種參數更新法則。可以作為L

機器學習演算法進階

- 長文字的智慧解析實戰 如何從紛繁多變、資訊量龐雜的冗長文字中獲取關鍵資訊,一直是文字領域難題。隨著深度學習的熱潮來臨,有許多新方法來到了 NLP 領域,給相關任務帶來了更多優秀成果,也給大家帶來了更多應用和想象的空間。 - 用傳統的監督學習模型對一段文文字進行分類的基本過程:  

轉:圖解十大經典機器學習演算法入門

原文:https://blog.csdn.net/jrunw/article/details/79205322   弱人工智慧近幾年取得了重大突破,悄然間,已經成為每個人生活中必不可少的一部分。以我們的智慧手機為例,看看到底溫藏著多少人工智慧的神奇魔術。 下圖是一部典型的智慧手機上安裝的一些常

機器學習---基礎----圖解十大經典機器學習演算法入門

轉自:https://blog.csdn.net/jrunw/article/details/79205322 弱人工智慧近幾年取得了重大突破,悄然間,已經成為每個人生活中必不可少的一部分。以我們的智慧手機為例,看看到底溫藏著多少人工智慧的神奇魔術。 下圖是一部典型的智慧手機上安裝的一些常見應用程式,可能

機器學習筆記04】隨機梯度下降

梯度下降 梯度下降是一個尋找函式機值的方式,屬於最優化裡的基礎演算法,在低維度的情況下非常容易理解。 例如存在函式y=x2y=x^2y=x2存在導數dy=2x,若當前點在x=1點,設dx的步長為0.1。此時我們通過負梯度計算下一個x點xt+1=xt−2∗0.

機器學習演算法總結XGBoost(下) 實戰與調參

寫在前面 當時想學習XGBoost這個演算法就是因為研究生課題需要,現在終於可以試一試啦,希望真的像大家說的那麼強(據說是很多資料科學家的ultimate weapon)。XGBoost原理已在前一篇有過說明:機器學習演算法總結之XGBoost(上) 1.

圖解十大經典機器學習演算法入門

弱人工智慧近幾年取得了重大突破,悄然間,已經成為每個人生活中必不可少的一部分。以我們的智慧手機為例,看看到底溫藏著多少人工智慧的神奇魔術。 下圖是一部典型的智慧手機上安裝的一些常見應用程式,可能很多人都猜不到,人工智慧技術已經是手機上很多應用程式的核心驅動力。 圖1 智慧

機器學習演算法筆記4:貝葉斯分類器

一、貝葉斯分類器詳解 貝葉斯分類器是一類分類演算法的總稱,這類演算法均以貝葉斯定理為理論基礎。貝葉斯分類器的分類原理是通過先驗概率,利用貝葉斯公式計算出後驗概率,選擇最大後驗概率所對應的分類結果。 貝葉斯準則 其中,P(c)是先驗概率,P(x|c)樣本x相對於;類標記c的類

基於python的機器學習人工智慧入門tensorflow / keras安裝(Windows環境)

因為專案需要,研究基於機器學習的人工智慧。 俗話說,工欲善其事,必先利其器。 學習人工智慧,首先就要有一個開發環境,也就是寫程式碼跑模擬的地方。 折騰了幾天,終於成功建立了基於tensorflow和keras的開發環境。 中間遇到了許多問題,在同事及網路

機器學習演算法入門介紹

本文共涉及三個問題: 1.機器學習開發流程 2.機器學習演算法分類 3.機器學習模型是什麼 我們做什麼? 分析大量資料 分析具體業務 應用常見演算法 特徵工程、調引數、優化