线性回归:机器学习中的基础算法
创作时间:
作者:
@小白创作中心
线性回归:机器学习中的基础算法
引用
CSDN
1.
https://blog.csdn.net/www_pp_/article/details/146024676
线性回归是机器学习和数据分析领域中最基础且应用广泛的算法之一。它不仅简单易懂,而且在许多实际问题中都能发挥重要作用。本文将详细介绍线性回归的基本原理、实现步骤以及几个简单的应用案例。
什么是线性回归?
线性回归是一种用于预测连续目标变量的监督学习算法。它的目标是通过拟合一个线性方程来描述特征变量(自变量)与目标变量(因变量)之间的关系。具体来说,线性回归试图找到一个最佳的线性关系,使得预测值与实际值之间的误差最小化。
数学表达
假设我们有一组数据,其中 X 是特征变量,y 是目标变量,线性回归模型可以表示为:
y=β0 +β1 X1 +β2 X2 +⋯+βn Xn +ϵ
其中:
- y 是目标变量(因变量)。
- X1 ,X2 ,…,Xn 是特征变量(自变量)。
- β0 是截距项(Intercept)。
- β1 ,β2 ,…,βn 是特征系数(Coefficients)。
- ϵ 是误差项,表示模型无法解释的部分。
如果只有一个特征变量,这种模型称为简单线性回归;如果有多个特征变量,则称为多元线性回归。
线性回归的应用场景
线性回归在许多领域都有广泛的应用,例如:
- 经济学:预测经济指标(如GDP、通货膨胀率)。
- 金融:预测股票价格或利率。
- 市场营销:分析广告投入与销售额之间的关系。
示例:广告投入与销售额的线性回归分析
为了更好地理解线性回归,我们通过一个简单的案例来展示其应用:分析广告投入与销售额之间的关系。
数据可视化
通过散点图观察广告投入与销售额之间的关系:
代码:
import pandas as pd #pandas基于numpy封装的
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
"""..."""
data = pd.read_csv("data.csv")
a = data.广告投入
#绘制散点图
plt.scatter(data.广告投入, data.销售额)
plt.show()
corr = data.corr()#求x和y的相关系数
#估计模型参数,建立回归模型
lr = LinearRegression()
x = data[['广告投入']]
y = data[['销售额']]
lr.fit(x, y)#训练模型
#对回归模型进行检验
"""此处的score指R方"""
result = lr.predict(x)
score = lr.score(x, y)
a = round(lr.intercept_[0],2)#查看截距
b = round(lr.coef_[0][0], 2)#查看斜率
#对回归模型进行预测
predict = lr.predict([[40],[45],[50]])
print(predict)
运行结果:
通过散点图观察广告投入与销售额之间的关系:我们可以初步判断广告投入与销售额之间是否存在线性关系。如果数据点大致分布在一条直线上,说明两者之间可能存在较强的线性关系。
示例:体重,年龄与血压收缩的多元线性回归分析
代码
import pandas as pd
from sklearn.linear_model import LinearRegression
#导入数据
data = pd.read_csv("多元线性回归.csv",encoding='gbk',engine='python')
#打印相关系数矩阵
corr = data[["体重","年龄","血压收缩"]].corr()
#估计模型参数,建立回归模型
lr_model = LinearRegression()
x = data[['体重','年龄']]
y = data[['血压收缩']]
lr_model.fit(x,y)#训练模型
#对回归模型进行检验
"""
score:调整R方,判断自变量对因变量的解释程度
R方越接近于1,自变量对因变量的解释就越好
F检验:方程整体显著性检验
T检验:方程系数显著性检验score给的是R方.
"""
score = lr_model.score(x,y)
#利用回归模型进行预测
print(lr_model.predict([[80,60]]))
print(lr_model.predict([[70,30],[70,20]]))
"""
a:自变量系数
b:截距
"""
a = lr_model.coef_
b = lr_model.intercept_
print("线性回归模型为:y = {:.2f}x1 + {:.2f}x2 + {:.2f}.".format(a[0][0], a[0][1], b[0]))
运行结果
最终,我们得到一个线性回归方程,通过模型参数,我们可以进一步解释体重,年龄对血压收缩的影响。
示例:(如年龄、性别、BMI、血压等)与目标变量(target)的多元线性回归分析
数据导入:
data = pd.read_csv("糖尿病数据.csv", encoding='gbk', engine='python')
代码
import pandas as pd
from sklearn.linear_model import LinearRegression
#导入数据
data = pd.read_csv("糖尿病数据.csv",encoding='gbk',engine='python')
#打印相关系数矩阵
corr = data[["age","sex","bmi","bp","s1","s2","s3","s4","s5","s6","target"]].corr()
#第二步,估计模型参数,建立回归模型
lr_model = LinearRegression()
x = data[['age','sex','bmi','bp','s1','s2','s3','s4','s5','s6']]
y = data[['target']]
lr_model.fit(x,y)#训练模型
score = lr_model.score(x,y)
#第五步,利用回归模型进行预测
print(lr_model.predict(data.iloc[: , : -1]))
#print(lr_model.predict([[0.0380759064334241,0.0506801187398187,0.0616962065186885,0.0218723549949558,-0.0442234984244464,-0.0348207628376986,-0.0434008456520269,-0.00259226199818282,0.0199084208763183,-0.0176461251598052]]))
a = lr_model.coef_
b = lr_model.intercept_
print("线性回归模型为:y = {:.2f}x1 + {:.2f}x2 + {:.2f}x3 + {:.2f}x4 + {:.2f}x5 + {:.2f}x6 + {:.2f}x7 + {:.2f}x8 + {:.2f}x9 + {:.2f}x10 + {:.2f}.".format(a[0][0], a[0][1],a[0][2],a[0][3],a[0][4],a[0][5],a[0][6],a[0][7],a[0][8],a[0][9], b[0]))
运行结果
我们得到了一个十元线性回归模型,用于分析多个特征(如年龄、性别、BMI、血压等)对目标变量(target)的影响。
线性回归的局限性
尽管线性回归简单易用,但它也有一些局限性:
- 线性假设:线性回归假设特征与目标变量之间存在线性关系,如果实际关系是非线性的,模型效果会大打折扣。
- 多重共线性:如果特征之间存在高度相关性,可能导致模型不稳定。
- 异常值敏感:线性回归对异常值较为敏感,可能影响模型的拟合效果。
总结
线性回归是一种强大的工具,适用于许多预测和分析任务。通过本文的介绍,希望读者能够对线性回归有更深入的理解,并能够在实际问题中应用它。
本文原文来自CSDN
热门推荐
去痛片和布洛芬,哪个对人体的副作用大呢?下次别再乱吃了
高速公路限速120,开到130算超速吗?交警:再强调最后一遍
家暴报警处理流程及法律判决指南
人身安全保护令,为家暴受害人筑起人身安全“隔离墙”
月入2W+的沪漂们,集体涌入郊区回迁房
橄榄保湿洁面乳:你真的了解它吗
肺结节手术后肺不张怎么办
饮食调整与生活习惯对缓解便秘的重要性解析
如何进行股票投资的风险管理?这些管理策略有哪些实际应用?
电子鞭炮成为新春婚礼的新宠,绿色环保成时尚选择
冻奶怎么解冻给宝宝吃
只羡鸳鸯不羡仙全诗及翻译_高中语文知识点解答
抢救 研究 传承 让满族文化遗产“活”起来
产品经理菜单栏如何优化
房车出行六大禁忌,你知道吗?
复方福尔可定口服溶液怎么使用是正确的
文学短评之六:忧国伤时,悲添白发——杜甫《登高》中的情韵
桑叶是否能够有效治疗眼部问题?
A股市场估值重塑进行时!多家上市公司已有提升方案
《学习象形文字》课件
【“中原药谷”识中药】除湿散寒、祛风止痛——藁本
不动产权住房使用期限是多久
泉州古桥“炫技” 世界基建典范
「终身成长的程序员之道」:跨领域能力与软技能并重
首个儿童化妆品技术指导原则出台,最详细的解读来了【附起草说明】
探究狗狗与人亲近的原因
番石榴怎么选购
一氧化碳对环境的影响
变频器的组成和功能作用
A股市场估值重塑进行时!多家上市公司已有提升方案