一、目標
尋找一條直線,最大程度的「擬合」樣本特徵和樣本輸出標記之間的關係。在回歸問題中我們**的是乙個具體的數值,這個具體的數值是在乙個連續的空間裡的,如果想看兩個特徵的回歸問題就需要在三維空間裡進行觀察。樣本特徵有多個的回歸稱為多元線性回歸
損失函式
對a求偏導數:
最後得到的結果:
求a、b的python**:
封裝samplelinearregression演算法的**實現
"""coding:utf-8"""
import numpy as np
class ******linearregression(object):
def __init__(self):
"""初始化****** linear regression 模型"""
self.a_ = none
self.b_ = none
def fit(self,x_train,y_train):
"""根據訓練資料集x_train,y_train訓練****** linear regression模型"""
assert x_train.ndim == 1, \
"****** linear regressor can only solve single feature training data."
assert len(x_train) == len(y_train), \
"the size of x_train must be equal to the size of y_train"
x_mean = np.mean(x_train)
y_mean = np.mean(y_train)
num = 0.0
d = 0.0
for x,y in zip(x_train,y_train):
num += (x-x_mean)*(y-y_mean)
d += (x-x_mean)**2
self.a_ = num/d
self.b_ = y_mean-self.a_*x_mean
return self
def predict(self,x_predict):
"""給定待**資料集x_predict,返回表示x_predict的結果向量"""
assert x_predict.ndim == 1, \
"****** linear regressor can only solve single feature training data."
assert self.a_ is not none and self.b_ is not none, \
"must fit before predict!"
return np.array([self._predict(x) for x in x_predict])
def _predict(self,x):
"""給定單個待**資料x,返回x的**結果值"""
return self.a_ * x +self.b_
def __repr__(self):
return "******linearregression1()"
檢驗封裝演算法的測試**
"""coding:utf-8"""
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1.,2.,3.,4.,5.])
y = np.array([1.,3.,2.,3.,5.])
plt.scatter(x,y)
plt.axis([0,6,0,6])
plt.show()
from play_ml.******linearrrgression import ******linearregression
slr = ******linearregression()
slr.fit(x,y)
y_hat = slr.predict(x)
plt.scatter(x,y)
plt.plot(x,y_hat,color="r")
plt.axis([0,6,0,6])
plt.show()
測試結果 線性回歸演算法 1 簡單線性回歸原理
一類機器學習演算法的思路 通過分析問題,找到問題的損失函式或者效用函式,通過最優化損失函式或者效用函式,確定機器學習的演算法模型 如圖所示,對於樣本,求一條擬合曲線 y ax b hat 為 的某個樣本 x 的 值,而 y 為樣本的真實值。我們希望 hat 和 y 的差距盡量小 y hat 2 此處...
簡單線性回歸
真實值 y theta x varepsilon 值 hat theta x varepsilon 為誤差 項,服從 均值為0 方差為 為誤差項,服從均值為0,方差為 為誤差項,服 從均值為 0,方差 為 sigma 的高斯分布。已知若干樣本,可以得到若干 varepsilon 值,根 據極大似 然...
簡單線性回歸
資料預處理 data student data 1 刪除缺失值 lm data na.omit data 散點圖 plot height,weight,data data,main scatter plot col 1,pch col為顏色,pch為形狀 箱線圖 boxplot height wei...