機器學習02 線性回歸

2021-10-02 03:13:08 字數 1671 閱讀 1743

有資料集 ,其中, ??=(??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席。方法 自變數 特徵 因變數 結果 關係 回歸演算法是試圖採用...