同樣是監督演算法,回歸是求解連續值的相關關係,分類是對離散值的劃分。
圖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把乙個...