1.基础理解:
先来讲解简单线性回归,通过一张图基础理解一下:
通过对上图的理解我们可以简单概括一下简单线性回归:
只有一个特征,在多个数据集中我们尽可能的寻找一条直线能够最大程度的拟合这些数据,正如图片中所示,我们寻找除了一个目标函数,也就是损失函数,来最小化我们预测值与真实值之间的误差。
总结线性回归的特点可得到:
①线性回归如其名,主要用于解决回归问题,并且它是许多非线性回归模型的基础。
②线性回归模型的实现与推导背后有大量的数学做支撑,计算机实现较为简单。
③线性回归模型最终得出的预测结果具有很强的解释性。
下面明确参数a与b的公式推导过程:
求b:
求解a:
封装简单线性回归:
import numpy as np
'''value the model precision'''
from sklearn.metrics import r2_score
class SimpleLinearRegression:
def __init__(self):
self.a_ = None
self.b_ = None
def fit(self,X_train,y_train):
'''check'''
assert X_train.ndim == 1,"the dimension must be 1"
assert len(X_train)== len(y_train),\
"the size must be valid"
x_mean = np.mean(X_train)
y_mean = np.mean(y_train)
self.a_ = ((X_train - x_mean).dot(y_train - y_mean)) / ((X_train - x_mean).dot(X_train - x_mean))
self.b_ = y_mean - (self.a_ * x_mean)
return self
def