操作要求
利用python编写如下程序,
为对单变量线性回归有较深刻的认识,现自行设计数据集。数据集的要求如下,训练集:xdata为100个在(0,1)范围内服从正态分布的随机数,ydata满足:ydata=2*xdata+3+random1,其中random1也是(0,1)范围内服从正态分布的随机数。测试集:选择训练集中前30个数据作为测试集。
请通过Python实现一元线性回归模型,并用此模型预测y,具体要求如下:
完成数据集的读取
实现线性回归的代价函数
实现梯度下降函数
要求输出迭代过程中的代价函数值
通过梯度下降计算回归模型,用所得模型对测试集的数据进行预测
以横轴为真实值,纵轴为预测值,画出散点图进行对比
代码及注释
import numpy as np
from matplotlib import pyplot as plt
# 数据集的要求如下,
# 训练集 xdata为100个在(0,1)范围内服从正态分布的随机数,
# ydata满足:ydata=2*xdata+3+random1,其中random1也是(0,1)范围内服从正态分布的随机数。
# 测试集:选择训练集中前30个数据作为测试集
# 生成训练集xdata
xdata = np.ones((100,2))
for i in range(100):
xdata[i,1] = np.random.random()
# print(xdata)
# 生成训练集ydata
ydata = np.zeros((100,1))