回归问题算法通常是利用一系列属性来预测一个值,预测的值是连续的。例如给出一套房子的一些特征数据,如面积、卧室数等等来预测房价,利用最近一周的气温变化和卫星云图来预测未来的气温情况等。如果一套房子实际价格为500万元,通过回归分析的预测值为499万元,则认为这是一个比较好的回归分析。在机器学习问题中,常见的回归分析有线性回归、多项式回归、逻辑回归等。本例子介绍线性回归算法,并通过MindSpore进行线性回归AI训练体验。
整体流程如下:
生成数据集
定义训练网络
定义前向传播网络与反向传播网络并关联
拟合过程可视化准备
执行训练
-
环境准备
设置MindSpore运行配置
from mindspore import context
context.set_context(mode=context.GRAPH_MODE, device_target="CPU")
本教程代码依赖matplotlib第三方支持包,可使用命令pip install matplotlib安装。
-
生成数据集
定义数据集生成函数
get_data用于生成训练数据集和测试数据集。由于拟合的是线性数据,假定要拟合的目标函数为:f(x)=2x+3f(x)=2x+3,那么我们需要的训练数据集应随机分布于函数周边,这里采用了f(x)=2x+3+noisef(x)=2x+3+noise的方式生成,其中noise为遵循标准正态分布规律的随机数值。
import numpy as np
def get_data(num, w=2.0, b=3.0):