深度學習 回歸演算法Regression

2021-10-02 15:17:29 字數 1917 閱讀 4356

同樣是監督演算法,回歸是求解連續值的相關關係,分類是對離散值的劃分。

圖1如圖1,我們想要模擬離散點的走勢。

一、一元線性回歸

一元線性回歸就是假設擬合曲線是一條直線,現在求解這條直線方程。

假設那麼如何使得這條曲線擬合,那麼就要提出均方誤差

二、均方誤差

均方誤差就是用二次方來衡量真實值和**值直接的距離,然後再在所有樣本上取平均。

公式如下:

為什麼是均方誤差?

基本假設

極大似然估計

三、多元線性回歸

表示式的y仍然是一維,而x變成多維

那麼該怎麼辦呢?t

x^txt

x上加乙個λiλi

λi從而使得矩陣非奇異,進而能對x

tx^t

xtx+λ iλi

λi求逆。其中矩陣i

ii是乙個m*m的單位矩陣,對角線上元素全為1,其他元素全為0。而λ

λλ是乙個使用者定義的數值。在這種情況下,回歸係數的計算公式將變成:

w ^=

(xtx

+λi)

−1xt

y\widehat=(x^x+\lambda i)^x^ty

w=(xtx

+λi)

−1xt

y嶺回歸最先用來處理特徵數多餘樣本數的情況,現在也用於在估計中加入偏差,從而得到更好的估計。這裡通過引入λ

λλ來限制了所有w之和,通過引入該懲罰項,能夠減少不重要的引數,這個技術在統計學中也叫做縮減(shrinkage)。

一旦發現模型和測量值之間存在差異,就說出現了誤差。當考慮模型中的「雜訊」或者說誤差時,必須考慮其**。訓練誤差和測試誤差由三個部分組成:偏差、測量誤差和隨機雜訊。

方差是可以度量的。取出兩組隨機樣本集並擬合,得到兩組回歸係數。兩組回歸係數之間的差異大小就是模型方差大小的反映。

基本的回歸演算法python**如下:

import numpy as np

import scipy

def regression(data_matrix,label):

"""回歸演算法

:param data_matrix:

:param label:

:return:

"""#資料數量

data_num=len(data_matrix)

#生成乙個全為1的列

one_col=np.array([1 for i in range(data_num)])

one_col.resize(len(one_col),1)

#把全為1的列加到資料矩陣的最後一列

data_matrix=np.concatenate((data_matrix,one_col),axis=1)

#把資料轉置

data_matrix_t=scipy.transpose(data_matrix)

#把矩陣的轉置和資料矩陣乘積

mul_result=data_matrix_t.dot(data_matrix)

#乘積的逆

mul_result=np.linalg.inv(mul_result)

return mul_result.dot(data_matrix_t).dot(label)

深度學習理論 logistic回歸演算法

首先介紹一下logistic回歸演算法的思路 1.首先構造或選取乙個 函式,比如sigmod,relu這種,用來進行最後的分類。即下文中h函式 2.構造乙個代價函式 或稱為損失函式 來表示輸出和真實值之間的損失值 即下文中l函式 3.我們希望l值越小越好,根據這一優化需求來尋找最優的回歸係數 具體方...

深度學習(一)邏輯回歸

一 邏輯回歸 邏輯回歸 logistic regress 是乙個二分類的問題,其輸出y的值為0或1。用於解決監督學習問題的學習演算法。logistic regress的目的就是使 值與真實值之間的誤差最小。損失函式 loss function 來衡量 值 y i 與真實值 y i 之間的差異。值計算...

深度學習之softmax回歸

前言 softmax回歸 首先,我們看一下sigmod啟用函式,如下圖,它經常用於邏輯回歸,將乙個real value對映到 0,1 的區間 當然也可以是 1,1 這樣可以用來做二分類。接下來,我們再看一下softmax函式,其函式型別如下 那麼,softmax又是怎麼實現的呢?softmax把乙個...