| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # -*- 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}'
|