演算法思想: 根據歷史資料,找到最佳的一組權重 w,和偏置b,根據?_1 ?_1+?_2 ?_2+…+?_? ?_?+? 求出目標值,在計算loss損失,在梯度下降 ,調整w權重。
該演算法針對於 連續型,非離散型資料
二元線性回歸:(樣本就2個特徵)
目標值 = 權重1 * 特徵值1 + 權重2 * 特徵值2 +b
n元線性回歸(樣本選擇n個特徵)
目標值 = 權重1 * 特徵值1 + 權重2 * 特徵值2 +·········+ 權重n * 特徵值n+b
運算。x = [[1,2,3], [4,5,6], [7,8,9], [6,6,1]]
行=樣本數,列= 選取的特徵數量
最終結果的形狀是 二維 [4,1] 有4個樣本,每個樣本乙個輸出
w的形狀 二維的[3,1]
w = [[w1],[w2],[w3]]
和特徵數量一致
b = [[b1],[b2],[b3],[b4]]
每個樣本都有乙個偏置量
結果 =np.matmul(x,w) + b
使用最小二乘法
y真實 - y** 的平方和
1 正規方程 (優點:一次性計算出 需要更正的w權重,缺點計算難度大)
直接下降到最低點。
適用於:面對訓練資料規模十分龐大的任務
公式
-1 * 更新前的權重 - 學習率 * 方向 = 更新後的權重
均方誤差 =
api線性+ 正規方程
from sklearn.linear_model import linearregression
線性+ 梯度下降(大規模資料)
from sklearn.linear_model import sgdregressor
案例: **波士頓房價 線性回歸+正規方程優化
from sklearn.linear_model import linearregression
from sklearn.linear_model import sgdregressor
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston
defline_regression()
: boston = load_boston(
)print
(boston.feature_names)
x = boston.data
y = boston.target
x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=
0.8)
lr = linearregression(
)# 正規方程,無需要 學習率
lr.fit(x_train,y_train)
lr.predict(x_test)
score = lr.score(x_test,y_test)
print
(score)
line_regression(
)
[
'crim'
'zn'
'indus'
'chas'
'nox'
'rm'
'age'
'dis'
'rad'
'tax'
'ptratio'
'b''lstat'
]0.7371084929207039
案例: **波士頓房價 線性回歸+梯度下降優化
sklearn 線性回歸 sklearn 線性回歸
sklearn 線性回歸 資料集匯入,以及模型的建立,和線性回歸的應用。import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,linear model from sklearn.metrics ...
sklearn 線性回歸
在統計學中,線性回歸 linear regression 是利用稱為線性回歸方程的最小平方函式對乙個或多個自變數和因變數之間關係進行建模的一種回歸分析。這種函式是乙個或多個稱為回歸係數的模型引數的線性組合。只有乙個自變數的情況稱為簡單回歸,大於乙個自變數情況的叫做多元回歸。這反過來又應當由多個相關的...
機器學習演算法 線性回歸
線性回歸應該算機器學習演算法裡面最基礎的演算法了,分別用作回歸 y值為連續值 和分類 y值為離散 在學習線性回歸的過程中,有很多機器學習的概念和方法是在這時候提出的。在現實中變數之間的關係,是有確定的和非確定的。確定關係指的是變數之間可以使用函式關係式表示,非確定的部分我們可以用概率分布來表示,如乙...