寫乙個簡單的線性回歸演算法(linearregression),該演算法主要基於最小二乘法來尋找最合適的權重。
即通過最小二乘法解 y = w*x 中的w。這裡x是乙個向量,x=[x0, x1, x2, x3, …],x0為1,用於抵消常數項,所求的w也實際上是w=[w0, w1, w2, w3, …]。
直接用x乘上該權重,就可以得到**的y。
#!/usr/local/bin/python3
# -*- coding: utf-8 -*-
import numpy as np
class linearregression:
"""linearregression based on least squares
"""def __init__(self):
pass
def pseudoinverse(self, x):
"""get pseudo-inverse
"""return np.linalg.inv(np.dot(x.t, x)).dot(x.t)
def getwlin(self, x, y):
"""get best w
"""return self.pseudoinverse(x).dot(y)
def calerror(self, x, y, w):
n = x.shape[0]
ein = np.linalg.norm(np.dot(x, w)-y)
ein = np.sqrt(ein)/n
return ein
def fit(self, x, y):
w_lin = self.getwlin(x, y)
ein = self.calerror(x, y, w_lin)
return w_lin, ein
def predict(self, x, y, new_x):
w_lin = self.getwlin(x, y)
return np.dot(new_x, w_lin)
呼叫predict函式(需要傳入訓練集的x與y,測試集的x)就可以**出y。 線性回歸演算法
1 有監督學習 supervised learning 不僅把訓練資料丟給計算機,而且還把分類的結果 資料具有的標籤 也一併丟給計算機分析。計算機進行學習之後,再丟給它新的未知的資料,它也能計算出該資料導致各種結果的概率,給你乙個最接近正確的結果。由於計算機在學習的過程中不僅有訓練資料,而且有訓練結...
線性回歸演算法
什麼是線性回歸?統計學中,線性回歸 linear regression 是利用稱為線性回歸方程的最小平方函式對乙個或多個自變數和因變數之間關係進行建模的一種回歸分析。原理與推導 損失函式 loss function 是定義在單個樣本上的,算的是乙個樣本的誤差。代價函式 cost function 是...
線性回歸演算法
size in feet x price in 1000 s y 2104 4601416 2321534 315852 178m 訓練樣本的數目 例如上述 有四行就有4個樣本數目,有多少行就有多少樣本數目 x s 輸入變數或者目標變數 y s 輸出變數或者目標變數 x,y 則表示乙個訓練樣本 線性...