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...