您的位置: 首页 > 生活常识 >

回归直线方程b怎么求(一元线性回归详解)

100次浏览     发布时间:2024-08-08 11:01:04    

一、前言

大数据、人工智能机器学习实战性归纳总结,实例可以直接运行。如果您读后感觉总结的有收获请关注我,支持我进一步为大家做贡献,支持我就是支持科技的发展谢谢。

大家在学习机器学习的时候大多数都是以一元线性回归入门,使用的是Python工具,由于机器学习入门比较难,很多人一开始弄不清楚头绪,其实一元线性回归在拟合曲线计算回归系数的时候还是有一些步骤的,比如最小二乘法,求残差,通过求导求极值。为了是大家能够快速看见结果,然后再慢慢的研习里面的原理,特给大家总结此文章,目的为:

1、了解一元线性回归的拟合过程

2、能够使用Python实现一元线性回归的拟合过程

3、了解一元线性模型拟合优度的测量评价

本案例的实验环境为:

1、Python3.6以上版本

2、Python的基本数学库numpy、pandans、matplotlib、sklearn

3、Python的PyCharm开发环境

二、案例描述

一般来说房屋的售价和面积有很大的关系,也就是说面积是房屋的售价很大的一个权重,下面是一个房屋销售的数据如下:



在2000年以前某地区正常来说房屋售价为2000元/平方米,在以后的时间里有可能每个月房价稍稍有点浮动,但是浮动不大,整体还是近似的处于线性状态,请根据以上数据建立线性回归方程,并预测8平方米的售价。

三、一元线性回归的一个简单实现

1、概述

一元线性回归分析预测法,是根据自变量x和因变量Y的相关关系,建立x与Y的线性回归方程进行预测的方法。

两变量之间的关系

(1)函数关系:当自变量取值一定时,因变量取值由它唯一确定,这是确定关系。

(2)相关关系:当自变量取值一定时,因变量的取值带有一定的随机性,(例子:一块农田的水稻产量与施肥量之间的关系)这是不确定关系。

我们主要研究不确定型的函数关系,如收入与受教育程度之间的关系,等等问题。 但它们之间存在明显的相互关系(称为相关关系),又是不确定的。

使用最小二乘法求解回归系数:

最小二乘法公式是一个数学的公式,在数学上称为曲线拟合,此处所讲最小二乘法,专指线性回归方程!最小二乘法公式为b=y(平均)-a*x(平均)。

2、一元线性回归检验指标:拟合优度

拟合优度就是相关系数的平方R^2,R^2最大值为1。R^2的值越接近1,说明回归直线对观测值的拟合程度越好;反之,R^2的值越小,说明回归直线对观测值的拟合程度越差。r2_score函数是计算 R^{2}


3、一元线性回归模型拟合效果的判别:均方误差MSE

均方误差MSE用来检测预测值和真实值之间的偏差,



先给出已经调试通过的源代码:

import numpy as np

from matplotlib import pyplot as plt

from sklearn.linear_model import LinearRegression

# x轴数据

x_data = np.arange(7)

# y轴数据

y_data = np.array([2,4,6.09,8,10.1,12.1,14.06])

print(x_data)

print(y_data)

# 转换成sklearn框架能够识别的维度

x_data = x_data[:, np.newaxis]

y_data = y_data[:, np.newaxis]

# 建立模型

model = LinearRegression()

# 开始训练

model.fit(x_data, y_data)

# 斜率 print("coefficients: ", model.coef_)

w = model.coef_[0]

# 截距

print("intercept: ", model.intercept_)

b = model.intercept_

# 测试

x_test = np.array([[7]])

predict = model.predict(x_test)

print("predict: ", predict)


plt.plot(x_data, y_data, "b.")

plt.plot(x_data, model.predict(x_data), "r")

#plt.plot(x_data, b + w * x_data, "r")

plt.show()


下面详细说下实现步骤,根据步骤和数据大家对照自己的教材逐步体会原理,消化最小二乘法等推导步骤:

组织数据

步骤1:组织训练数据

x_data = np.arange(7)

上述数据代表1平方米、2平方米...7平方米


y_data = np.array([2,4,6.09,8,10.1,12.1,14.06])


步骤2 :组织测试数据

上述数据代表1平方米售价2000元、2平方米售价4千元、3平方米售价6.09元...

为了简单起见,在拟合完毕直线后给出测试数据是1平方米、2平方米...7平方米,8平方米,即:

x_test = np.array([[7]])

就是预测房价8平方米的价格是多少


建立回归方程

通过Python提供的一元线性回归方法将训练集x_data、y_data来训练模型,如下所示:

model = LinearRegression()

# 开始训练
model.fit(x_data, y_data)


预测房价

将测试数据x_data = np.arange(7)输入:

predict = model.predict(x_test)

print("predict: ", predict)
可以得到房价8平米的预测值为:predict:  [[16.10571429]]


拟合优度分析


Python提供的相应的函数为:

sklearn.metrics.r2_score(y_true, y_pred, sample_weight=None, multioutput=’uniform_average’)


计算我们的拟合优度:


from sklearn.metrics import r2_score

y_true = [2, 4, 6, 8,10,12,14]

y_pred = [2,4,6.09,8,10.1,12.1,14.06]

print(r2_score(y_true, y_pred))

输出结果为:0.9997169642857143

说明我们的线性拟合度还是十分不错的。


均方误差MSE检验

Python为我们提供了均方误差MSE检验的方法mean_squared_error(),实现如下:


#真实值

y_true = [2, 4, 6, 8,10,12,14]

#预测值

y_pred = [2,4,6.09,8,10.1,12.1,14.06]


from sklearn.metrics import mean_squared_error

print(mean_squared_error(y_true,y_pred))

结果为:0.004528571428571414

从结果来看,均方误差非常小,看来拟合的效果还是很理想的。

相关文章

王者荣耀:S35狄仁杰的逆袭,坦射流出装攻略!

老铁们,秋水有礼了。翻开S35赛季的战斗篇章,众英雄各显神通,而咱们的狄仁杰同志也迎来了新的出装风潮——坦射流,让你在团战中成为不动如山的射手!赛季之初,狄仁杰似乎被新晋英雄们掩盖了光芒,但万变不离其宗,狄兄依旧是对抗路上的稳定得分手。只不过这一次,我们要为他量身打造一套“万血装”,让他在团战中既能
2024-11-23 10:45:05

忍者萌剑传守墓人怎么样 守墓人属性详解

首先我们来看看这个英雄的基本属性介绍:守墓人属性 从上图中我们能看出来,守墓人的初始属性和时装加成,我们可以清楚的看得到我们的初始星级是两颗星,攻击范围是500,攻击速度是1.5,生命值为400,攻击力是65,法术强度是72.5,防御力是60,法防是80,在这么一个初始数值下我们很难看出这个角色的强
2024-11-23 10:30:20

潮汐守望者怎么玩?潮汐守望者攻略大全,全面战略指南

现实状况下,我们无法否认有些游戏得氪金才会有更优质体验。然而,玩家挣钱并不容易。那如何在游戏里少花钱又获得更多资源呢?这就不得不提到内部账号。当一些玩家还在怀疑其真实性时,聪明的玩家已经开始使用了。众多榜上大佬用的就是这类账号,目前较为靠谱的当属【统豹游戏】官网。潮汐守望者怎么玩?潮汐守望者攻略大全
2024-11-23 10:15:16

龙珠激斗古鲁多怎么样 古鲁多阵容推荐技能分析

龙珠激斗古鲁多怎么样?古鲁多怎么得?古鲁多好不好?下面小编为大家分享龙珠激斗古鲁多阵容推荐技能分析,希望对大家有所帮助。人物名称:古鲁多角色定位:物理攻击、竖排输出类型:攻星级:1星必杀技:灵魂标枪:对敌人造成伤害。绝招:超能力:对敌人造成伤害。
2024-11-23 10:00:14

火焰山大战怎么玩 王者荣耀张飞火焰山大战攻略

王者荣耀中,张飞作为一名新出的坦克英雄,虽然输出能力不是很出众。但是在火焰山大战中,张飞不需要太多的输出,利用自身的肉性就十分强势。厚实的血量和护盾不仅可以抵挡敌方大量的伤害,同时还有位移和击退技能,使得张飞十分适合火焰山大战。张飞火焰山大战攻略:王者荣耀 出门装:[影忍之足]搭配技能:[治疗术]点
2024-11-23 09:45:44

且慢轮回!黑神话悟空进入二周目前必做清单

按正常进度,打完大圣残躯,放片尾曲结束,游戏会缺德地提示你进轮回。不要进轮回,不要进轮回,不要进轮回。重要的事情说三遍。这时候一定要慎重,难道你急着去投胎嘛(轮回算不算投胎?(ಡωಡ)!)。轮回之前有些事情注意要做掉,否则的话,二周目会相当不爽,甚至不得不开启三周目。这些任务做了,可以在菜单里消消停
2024-11-23 09:31:02