線性回歸演算法及回歸實踐 最小二乘法

2021-10-06 07:50:21 字數 2631 閱讀 9662

1、線性回歸是什麼

回歸分析中,只包括乙個自變數和乙個因變數,且二者的關係可用一條直線近似表示,這種回歸分析稱為一元線性回歸分析。如果回歸分析中包括兩個或兩個以上的自變數,且因變數和自變數之間是線性關係,則稱為多元線性回歸分析。

線性回歸(2):梯度下降法相關

2、最小二乘法演算法

2.1、最小二乘法

3、相關例項的**

3.1、最小二乘法的**

import pandas as pd

import matplotlib.pyplot as plt

data = pd.read_csv(

'data.csv'

, header=

none

)x_data = data[0]

y_data = data[1]

# plt.scatter(x_data, y_data)

# plt.show()

# 學習率learning rate

lr =

0.005

# 截距

b =0

# 斜率

k =0

# 最大迭代次數

epochs =

50def

compute_error

(b, k, x_data, y_data)

:'''

最小二乘法,計算代價函式的值

:param b: 截距

:param k: 斜率

:param x_data: x軸的資料集

:param y_data: y軸的資料集

:return:

'''totalerror =

0for i in

range(0

,len

(x_data)):

# 真實值減去**值的平方再求和

totalerror +=

(y_data[i]

-(k * x_data[i]

+ b))**

2return totalerror /

len(x_data)/2

defgradient_descent_runner

(b, k, x_data, y_data, lr, epochs)

:'''

計算總資料量,算出b和k

:param b: 截距

:param k: 斜率

:param x_data: x軸的資料集

:param y_data: y軸的資料集

:param lr: 學習率

:param epochs: 迭代次數

:return:

'''m =

float

(len

(x_data)

)for item in

range

(epochs)

: b_temporary =

0 k_temporary =

0for i in

range

(len

(x_data)):

b_temporary +=

(k * x_data[i]

+ b)

- y_data[i]

k_temporary +=

((k * x_data[i]

+ b)

- y_data[i]

)* x_data[i]

b_temporary = b_temporary / m

k_temporary = k_temporary / m

# 更新截距和斜率

# 此時的k/b 減去k/b與理想函式損失的差值,去擬合理想的差值

b = b -

(lr * b_temporary)

k = k -

(lr * k_temporary)

return b, k

if __name__ ==

'__main__'

:# 列印初始截距和斜率對應的代價函式的值

print

('starting b = , k = , error = '

.format

(b, k, compute_error(b, k, x_data, y_data)))

print

('running...'

) b, k = gradient_descent_runner(b, k, x_data, y_data, lr, epochs)

# 列印經過50次迭代後的截距、斜率和對應代價函式的值

print

('after iterations b = , k = , error = '

.format

(epochs, b, k, compute_error(b, k, x_data, y_data)))

# 繪圖

plt.plot(x_data, y_data,

'b.'

) plt.plot(x_data, k * x_data + b,

'r')

plt.show(

)

sklearn 最小二乘線性回歸

sklearn是機器學習中的乙個常用的python第三方模組,裡面對機器學習的許多方法進行了封裝,在進行機器學習的任務時,許多常用的演算法可在這個模組中直接呼叫。並且sklearn中還提供了許多可用於分類 回歸的優質資料集。使用好sklearn最直接的方法就是仔細閱讀官方 sklearn就像是乙個模...

線性回歸 最小二乘 diabetes

資料集 特徵 age 年齡 性別 bmi 體質指數 bp 血壓 s1,s2,s3,s4,s4,s6 六種血清的化驗資料 標籤 value 一年後疾病進展的量化指標 一 載入庫 import numpy as np import pandas as pd from sklearn import dat...

線性回歸 最小二乘求解

線性回歸 線性回歸用於數值 它的主要思想是利用預定的權值將屬性進行線性組合來表示類別 y w0 w1x1 w2x2 wnxn 其中,y是類別屬性值,x1,x2,xn是一般屬性值,w1,w2,xn是權值,w0稱為偏置,類似於一元線性回歸y ax b中b。求解線性回歸就是通過已知的一些資料點 1,xi1...