Python3入门机器学习

3.3 简单线性回归的实现

1.实现 Simple Linear Regression:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.根据以上的过程,试着封装SimpleLinearRegression:

import numpy as np

class SimpleLinearRegression1:

    def __init__(self):
        '''初始化Simple Linear Regression 模型'''
        self.a_ = None
        self.b_ = None

    def fit(self, x_train, y_train):
        '''根据训练数据集x_train,y_train训练Simple Linear Regression 模型'''

        assert x_train.ndim == 1, \
            "Simple Linear Regression 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, \
            "Simple Linear Regression 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_simple):
        '''给定单个待预测数据x_simple,返回x_simple的预测结果值'''
        return self.a_ * x_simple + self.b_

    def __repr__(self):
        return "SimpleLinearRegression1()"

3.使用我们自己封装的的SimpleLinearRegression:
在这里插入图片描述
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐