有資料集 ,其中, ??=(??1;??2;??3;…;???),??∈?
其中n表示變數的數量,d表示每個變數的維度。
可以用以下函式來描述y和x之間的關係:
並且常用均方誤差作為回歸中常用的效能度量
生成資料
import numpy as np
#生成隨機數
np.random.seed(1234)
x = np.random.rand(500,3)
#構建對映關係,模擬真實的資料待**值,對映關係為y = 4.2 + 5.7*x1 + 10.8*x2,可自行設定值進行嘗試
y = x.dot(np.array([4.2,5.7,10.8]))
class lr_gd():
def _init_(self):
self.w = none
def fit(self,x,y,alpha = 0.02,loss = 1e-10):
y = y.reshape(-1,1)
[m,d] = np.shape(x)
self.w = np.zeros((d))
tol = 1e5
if tol >loss:
told= y-np.dot(x,self.w)
self.w = self.w - 1/m *alpha * (np.dot(told , x))
tol = np.abs(np.sum(told))
def predict(self,x):
y_pred = np.dot(x,self.w)
return y_pred
if __name__ == "__main__":
lr_gd = lr_gd()
lr_gd.fit(x,y)
print("估計引數值為:%s"%(lr_gd.w))
x_test = np.array([2,4,5]).reshape(1,-1)
print("**值:%s"%(lr_gd.predict(x_test)))
class lr_ls():
def _init_(self):
self.w = none
def fit(self,x,y):
temp0 = np.dot(x.t,x)
temp = np.dot(np.linalg.inv(temp0),x.t)
self.w = np.dot(temp,y)
def predict(self,x):
y_pred = np.dot(x,self.w)
return y_pred
if __name__ == "__main__":
lr_ls = lr_ls()
lr_ls.fit(x,y)
print("估計的引數值:%s"%(lr_ls.w))
x_test = np.array([2,4,5]).reshape(1,-1)
print("**值為:%s"%(lr_ls.predict(x_test)))
均方誤差、均方根誤差、平均絕對誤差、r平 02 機器學習 線性回歸模型
線性回歸目前是一種被廣泛應用的回歸技術,也是乙個最簡單的模型,它有很多種推廣形式,究其本質就是一系列特徵的線性組合。在二維空間,線性回歸模型就是一條直線,在三維空間,線性回歸模型就是乙個平面。簡單點描述。線性回歸最簡單的例子就是f x ax b 其中x向量代表一條樣本,其中x1,x2 代表的就是樣本...
機器學習 線性回歸
可以說基本上是機器學習中最簡單的模型了,但是實際上其地位很重要 計算簡單 效果不錯,在很多其他演算法中也可以看到用lr作為一部分 先來看乙個小例子,給乙個 線性回歸是什麼 的概念。圖來自 2 假設有乙個房屋銷售的資料如下 面積 m 2 銷售價錢 萬元 123 250 150 320 87 160 1...
機器學習(線性回歸)
在機器學習中,回歸 分類和標註共同構成了監督學習技術。監督學習 supervised learning 是機器學習在工業界應用最廣的乙個領域分支。在學術界中也是研究最多的領域之一。大家都知道的資料探勘十大經典演算法中,監督學習技術佔據6席。方法 自變數 特徵 因變數 結果 關係 回歸演算法是試圖採用...