思维导图学习笔记
自己参考BoBo老师课程讲解实现:
# -*- coding: utf-8 -*-
import numpy as np
from metrics import r2_score
class LinearRegression(object):
def __int__(self):
self.coef_ = None # 表示系数
self.intercept_ = None # 表示截距
self._theta = None # 过程计算值,不需要暴露给外面
def fit(self, X_train, y_train):
"""根据训练数据集X_train, y_train训练Linear Regression模型"""
assert X_train is not None and y_train is not None, "训练集X和Y不能为空"
assert X_train.shape[0] == y_train.shape[0], "训练集X和Y的样本数要相等"
# np.linalg.inv(X) 表示求X的逆矩阵
# 不能忘了X要增加一列,第一列数据为0
ones = np.ones(shape=(len(X_train), 1))
X_train = np.hstack((ones, X_train))
self._theta = np.linalg.inv(X_train.T.