| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- # -*- coding: UTF-8 -*-
- '''
- 此脚本用于定义线性回归模型
- '''
- from utils import Scalar
- def mse(errors):
- '''
- 计算均方误差
- '''
- n = len(errors)
- wrt = {}
- value = 0.0
- requires_grad = False
- for item in errors:
- value += item.value ** 2 / n
- wrt[item] = 2 / n * item.value
- requires_grad = requires_grad or item.requires_grad
- output = Scalar(value, errors, 'mse')
- output.requires_grad=requires_grad
- output.grad_wrt = wrt
- return output
- class Linear:
-
- def __init__(self):
- '''
- 定义线性回归模型的参数:a, b
- '''
- self.a = Scalar(0.0, label='a')
- self.b = Scalar(0.0, label='b')
- def forward(self, x):
- '''
- 根据当前的参数估计值,得到模型的预测结果
- '''
- return self.a * x + self.b
-
- def error(self, x, y):
- '''
- 当前数据的模型误差
- '''
- return y - self.forward(x)
- def string(self):
- '''
- 输出当前模型的结果
- '''
- return f'y = {self.a.value:.2f} * x + {self.b.value:.2f}'
|