成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法-創(chuàng)新互聯(lián)

在統(tǒng)計(jì)學(xué)中,線性回歸(Linear regression)是利用稱為線性回歸方程的最小二乘函數(shù)對(duì)一個(gè)或多個(gè)自變量和因變量之間關(guān)系進(jìn)行建模的一種回歸分析維基百科。

濉溪ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

簡(jiǎn)單線性回歸

當(dāng)只有一個(gè)自變量的時(shí)候,成為簡(jiǎn)單線性回歸。

簡(jiǎn)單線性回歸模型的思路

為了得到一個(gè)簡(jiǎn)單線性回歸模型,假設(shè)存在以房屋面積為特征,以價(jià)格為樣本輸出,包含四個(gè)樣本的樣本集,如圖:

尋找一條直線,大程度上擬合樣本特征與樣本輸出之間的關(guān)系。

假設(shè)最佳擬合的直線方程為:機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,則對(duì)于樣本特征 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 的每一個(gè)取值 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 的預(yù)測(cè)值為:機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法。而我們希望的就是真值 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 和預(yù)測(cè)值 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 之間的差距盡量小。

可以用 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 表示兩者之間的差距,對(duì)于所有的樣本,使用求和公式求和處理:

∑ i =1 m | y ( i) ?y ^ ( i) |

但是這個(gè)公式有一個(gè)問題,不容易求導(dǎo),為了解決這個(gè)問題,可先對(duì) 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 進(jìn)行平方,如此最后的公式就變成了:

∑ i =1 m (y ( i) ?y ^ ( i) ) 2

最后,替換掉 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 ,即為:

∑ i =1 m (y ( i) ?a x ( i) ?b ) 2

因此,找到的一個(gè)簡(jiǎn)單線性回歸模型就是找到合適的 a 和 b,使得該函數(shù)的值盡可能的小,該函數(shù)也稱為損失函數(shù)(loss function)。

最小二乘法

找到合適的 a 和 b,使得 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 的值盡可能的小,這樣的方法稱為最小二乘法。

如何求 a 和 b 呢?令該函數(shù)為 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,分別使對(duì) a 和 b 求導(dǎo)的結(jié)果為0。

對(duì) b 求導(dǎo):機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,得:

b =y ˉ ˉ ˉ ?a x ˉ ˉ ˉ

對(duì) a 求導(dǎo):機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,得:

a =∑ m i =1 (x ( i) ?x ˉ ˉ ˉ )(y ( i) ?y ˉ ˉ ˉ ) ∑ m i =1 (x ( i) ?x ˉ ˉ ˉ ) 2

注:這里略去了公式的推導(dǎo)過(guò)程。還有很多內(nèi)容因?yàn)槠邢薏辉敿?xì)寫了,如果想全面了解的可以點(diǎn)擊這個(gè)鏈接跳轉(zhuǎn)到我已經(jīng)錄制好的視頻

簡(jiǎn)單線性回歸的實(shí)現(xiàn)

有了數(shù)學(xué)的幫助,實(shí)現(xiàn)簡(jiǎn)單線性回歸就比較方便了。

首先聲明一個(gè)樣本集:

import numpy as np

x = np.array([1., 2., 3., 4., 5.])
y = np.array([1., 3., 2., 3., 5.])

公式中用到了 x 和 y 的均值:

x_mean = np.mean(x)
y_mean = np.mean(y)

求 a 和 b 的值有兩種方法。第一種是使用 for 循環(huán):

# 分子
num = 0.0

# 分母
d = 0.0

for x_i, y_i in zip(x, y):
    num += (x_i - x_mean) * (y_i - y_mean)
    d += (x_i - x_mean) ** 2
    
a = num / d
b = y_mean - a * x_mean

第二種是使用矩陣乘:

num = (x - x_mean).dot(y - y_mean)
d = (x - x_mean).dot(x - x_mean)

a = num / d
b = y_mean - a * x_mean

注:使用矩陣乘效率更高。

求出了 a 和 b,簡(jiǎn)單線性模型就有了:機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法。對(duì)當(dāng)前示例作圖表示:

機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法

衡量線性回歸法的指標(biāo)

誤差

一個(gè)訓(xùn)練后的模型通常都會(huì)使用測(cè)試數(shù)據(jù)集測(cè)試該模型的準(zhǔn)確性。對(duì)于簡(jiǎn)單線性歸回模型當(dāng)然可以使用 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 來(lái)衡量,但是它的取值和測(cè)試樣本個(gè)數(shù) m 存在聯(lián)系,改進(jìn)方法很簡(jiǎn)單,只需除以 m 即可,即均方誤差(Mean Squared Error):

M SE : 1 m ∑ i =1 m (y ( i) t est ?y ^ ( i) t est ) 2

np.sum((y_predict - y_true) ** 2) / len(y_true)

值得一提的是 MSE 的量綱是樣本單位的平方,有時(shí)在某些情況下這種平方并不是很好,為了消除量綱的不同,會(huì)對(duì) MSE 進(jìn)行開方操作,就得到了均方根誤差(Root Mean Squared Error):

R MS E: 1 m ∑ i =1 m (y ( i) t est ?y ^ _t est ( i) ) 2 ? ?? ?? ?? ?? ?? ?? ?? ?? ?? √ =M SE t es t ? ?? ?? ?? √

import math

math.sqrt(np.sum((y_predict - y_true) ** 2) / len(y_true))

還有一種衡量方法是平均絕對(duì)誤差(Mean Absolute Error),對(duì)測(cè)試數(shù)據(jù)集中預(yù)測(cè)值與真值的差的絕對(duì)值取和,再取一個(gè)平均值:

M AE : 1 m ∑ i =1 m | y ( i) t es t ?y ^ ( i) t es t |

np.sum(np.absolute(y_predict - y_true)) / len(y_true)

注:Scikit Learn 的 metrics 模塊中的 mean_squared_error() 方法表示 MSE,mean_absolute_error() 方法表示 MAE,沒有表示 RMSE 的方法。

R Squared

更近一步,MSE、RMSE 和 MAE 的局限性在于對(duì)模型的衡量只能做到數(shù)值越小表示模型越好,而通常對(duì)模型的衡量使用1表示最好,0表示最差,因此引入了新的指標(biāo):R Squared,計(jì)算公式為:

R 2 =1 ?S S r es i d u al S S t ot a l

機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,表示使用模型產(chǎn)生的錯(cuò)誤;機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,表示使用 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 預(yù)測(cè)產(chǎn)生的錯(cuò)誤。

更深入的講,對(duì)于每一個(gè)預(yù)測(cè)樣本的 x 的預(yù)測(cè)值都為樣本的均值 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 ,這樣的模型稱為基準(zhǔn)模型;當(dāng)我們的模型等于基準(zhǔn)模型時(shí),機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 的值為0,當(dāng)我們的模型不犯任何錯(cuò)誤時(shí) 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 得到大值1。

機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 還可以進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為:

R 2 =1 ?M SE ( y ^ ,y ) V ary

實(shí)現(xiàn)也很簡(jiǎn)單:

1 - np.sum((y_predict - y_true) ** 2) / len(y_true) / np.var(y_true)

注:Scikit Learn 的 metrics 模塊中的 r2_score() 方法表示 R Squared。

多元線性回歸

多元線性回歸模型的思路

當(dāng)有不只一個(gè)自變量時(shí),即為多元線性回歸,如圖:

機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法

對(duì)于有 n 個(gè)自變量來(lái)說(shuō),我們想獲得的線性模型為:

y =θ 0 +θ 1 x 1 +θ 2 x 2 +.. .+θ n x n

根據(jù)簡(jiǎn)單線性回歸的思路,我們的目標(biāo)即為:

找到 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法, 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法, 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,...,機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,使得 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 盡可能的小,其中 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 。

機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法:訓(xùn)練數(shù)據(jù)中第 i 個(gè)樣本的預(yù)測(cè)值;機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法:訓(xùn)練數(shù)據(jù)中第 i 個(gè)樣本的第 j 個(gè)自變量。

如果用矩陣表示即為:

y ^ ( i) =X ( i) ?θ

其中:機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法。

更進(jìn)一步,將 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 也使用矩陣表示,即為:

y ^ =X b ?θ

其中:機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法, 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法

因此,我們目標(biāo)就成了:使 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 盡可能小。而對(duì)于這個(gè)公式的解,稱為多元線性回歸的正規(guī)方程解(Nomal Equation):

還有很多內(nèi)容因?yàn)槠邢薏辉敿?xì)寫了,如果想全面了解的可以點(diǎn)擊這個(gè)鏈接跳轉(zhuǎn)到我已經(jīng)錄制好的視頻

θ =(X T b Xb ) ? 1 (X T b y )

實(shí)現(xiàn)多元線性回歸

將多元線性回歸實(shí)現(xiàn)在 LinearRegression 類中,且使用 Scikit Learn 的風(fēng)格。

_init_() 方法首先初始化線性回歸模型,_theta 表示 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法interception_ 表示截距,chef_ 表示回歸模型中自變量的系數(shù):

class LinearRegression:
    def __init__(self):
        self.coef_ = None
        self.interceiption_ = None
        self._theta = None

fit_normal() 方法根據(jù)訓(xùn)練數(shù)據(jù)集訓(xùn)練模型,X_b 表示添加了 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 的樣本特征數(shù)據(jù),并且使用多元線性回歸的正規(guī)方程解求出 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法

def fit_normal(self, X_train, y_train):
    X_b = np.hstack([np.ones((len(X_train), 1)), X_train])
    self._theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train)

    self.interception_ = self._theta[0]
    self.coef_ = self._theta[1:]

    return self

predict() 方法為預(yù)測(cè)方法,同樣使用了矩陣乘:

def predict(self, X_predict):
    X_b = np.hstack([np.ones((len(X_predict), 1)), X_predict])
    return X_b.dot(self._theta)

score() 根據(jù)給定的測(cè)試數(shù)據(jù)集使用 R Squared 指標(biāo)計(jì)算模型的準(zhǔn)確度:

def score(self, X_test, y_test):
    y_predict = self.predict(X_test)
    return r2_score(y_test, y_predict)
Scikit Learn 中的線性回歸實(shí)現(xiàn)放在 linear_model 模塊中,使用方法如下:

from sklearn.linear_model import LinearRegression

線性回歸的特點(diǎn)

線性回歸算法是典型的參數(shù)學(xué)習(xí)的算法,只能解決回歸問題,其對(duì)數(shù)據(jù)具有強(qiáng)解釋性。

缺點(diǎn)是多元線性回歸的正規(guī)方程解 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法 的時(shí)間復(fù)雜度高,為 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法,可優(yōu)化為 機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前題目:機(jī)器學(xué)習(xí)之優(yōu)雅落地線性回歸法-創(chuàng)新互聯(lián)
文章起源:http://jinyejixie.com/article18/cchogp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、云服務(wù)器、企業(yè)網(wǎng)站制作、虛擬主機(jī)、定制網(wǎng)站、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
奈曼旗| 韶关市| 奉贤区| 饶河县| 定州市| 嵊州市| 简阳市| 彰化县| 海淀区| 庆元县| 崇义县| 凉城县| 烟台市| 庐江县| 射阳县| 石家庄市| 高淳县| 金华市| 锦州市| 固阳县| 祁门县| 屯门区| 开封县| 闵行区| 吴忠市| 瑞金市| 比如县| 曲沃县| 威信县| 育儿| 郯城县| 犍为县| 深州市| 固镇县| 股票| 莱西市| 澄江县| 武川县| 寿阳县| 昌邑市| 伊金霍洛旗|