先是简单的线性回归,原理公式推导就不多写了,直接上代码喽。定义了一个线性回归的类,里面包含了用于训练回归算法的函数fit,和用于预测的函数predict。
import matplotlib.pyplot as plt
import numpy as np
class LinearRegression():#一维线性回归
def __init__(self):
self.w=None
def fit(self,X,y):#学习算法
print X.shape
X=np.insert(X,0,1,axis=1)#插入X0的权重值
X_=np.linalg.inv(X.T.dot(y))#linalg为矩阵运算包,inv矩阵求逆,det求行列式
self.w=X_.dot(X.T).dot(y)
def predict(self,X):#预测算法
X=np.insert(X,0,1,sxis=1)
y_pred=X.dot(self.w)
return y_pred