线性回归:机器学习中的基础算法
创作时间:
作者:
@小白创作中心
线性回归:机器学习中的基础算法
引用
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
热门推荐
瘦腿最有效的三个动作
广州缴纳的公积金是否可以回长沙贷款买房
不同种类茶叶的健康功效大揭秘
企业决策优化效果评估全攻略:从标准设定到持续改进
大揭秘!刘慈欣宇宙中的“第一性原理”
2024年药食同源市场趋势分析:传统智慧遇上现代生活
网红用紫牙膏刷牙,黄牙秒变白,刷黄玉米也变白了,这是什么魔鬼玩意?
动作捕捉在步态分析领域中的应用
失业了该如何规划职业道路?这种职业规划存在哪些挑战?
2025年中国男足各级国家队重大比赛计划日历大全
猫咪真心讨厌的主人几种行为,别再做了!
低至5元一斤、均价接近腰斩!今年没人疯狂「炫」小龙虾了?
鼻喷雾剂,您用对了吗?
借条、欠条、收条怎么写,模板来了!
欠条与借条格式的主要区别及应用场景
用合理预算,打造属于你的高性价比公路车指南
手脚发麻怎么缓解
太原地铁1号线出入口设置引争议,官方如何回应?
天空中7颗最亮的恒星
星空有约|冬季天空亮星最多
刘邦有何本领,竟能驾驭张良、韩信、萧何这样的杰出人才?
文书档案查阅流程与整理归档方法详解
男人吃什么对皮肤好保持年轻呢
飞度混动版与燃油版有哪些本质区别?
青少年早恋应该怎么正确引导
小孔眼镜可以矫正视力吗?真实宝妈反馈,技术原理与佩戴后变化!
游客花2100元购买土特产,以不符合食品安全标准为由,起诉商家要求十倍赔偿……
小区内销售土特产是否合法?法律分析与实务指南
IT界的大神-001-阿兰·图灵 (Alan Turing)
骨折误工费赔偿标准及计算方法详解