最简单的线性回归模型 李烨_模型

标题

本模型取自gitchat 中李烨老师的课程,

本模型要解决的问题

如下图,左侧是工作年龄,右侧是薪资,
我们想弄清楚 y 与 x 间的函数关系
在这里插入图片描述

必要的假设

我们必须先对y 与 x 的关系做出假设,
假设: y = a + b x,

线性回归能做什么,不能做什么

  1. 注意,线性回归能解决的问题是:在模型确定下来后, a,b值为多少时,误差最小
  2. 不能解决的问题是: 模型到底取 y =a+bx ? 还是取 y=a+bx+cx²?

代码

#version:py3
#author:kaka

#导包
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model


experiences = np.array([0,1,2,3,4,5,6,7,8,9,10])
salaries = np.array([103100, 104900, 106800, 108700, 110400, 112300, 114200, 116100, 117800, 119700, 121600])

# 将特征数据集分为训练集和测试集,前7个用于测试集,后面用于训练集
X_train =experiences[:7].reshape(-1,1)
X_test = experiences[7:].reshape(-1,1)

# 把目标数据(特征对应的真实值)也分为训练集和测试集
Y_train = salaries[:7]
Y_test = salaries[7:]

# 创建线性回归模型
regr = linear_model.LinearRegression()

# 用训练集训练模型,训练后模型的参数保存在regr模型对象中
regr.fit(X_train, Y_train)

# 用训练得出的模型进行预测
Y_predict = regr.predict(X_test)

# 将测试结果以图的方式显示出来
plt.scatter(X_test, Y_test,  color='black')	#散点图,打印训练集
plt.plot(X_test, Y_predict, color='blue', linewidth=3)	# 连线,打印测试集(测试集就是模型的预测结果)

# 打印模型训练的结果 y=θ0+θ1x  中的θ0,和θ1
print(regr.coef_)	#截距
print(regr.intercept_)	#参数列表

上述代码链接

jupyter链接 link
百度网盘链接 链接:https://pan.baidu.com/s/11St5rPUB3XI5SZkl7a9hrg
提取码:0d1w

预测结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值