线性回归:机器学习中的基础算法
创作时间:
作者:
@小白创作中心
线性回归:机器学习中的基础算法
引用
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
热门推荐
自己腌的菜会不会更安全?点进来,教你安全吃腌菜
红糖水的多重好处:温暖身心、促进健康与美容养颜
生姜红糖水的功效与作用、禁忌和食用方法
红糖姜水的正确做法与最佳饮用时间
螺内酯副作用大?医生教你如何应对!
警惕利尿药的肾脏损害:机制、监测与预防
大时尚 大面料,海宁面辅料展洞见千亿时尚产业大趋势
国家体育总局发布“科学健身18法” 助你缓解肩颈腰腿不适
2024年高考改革:告别文理分科,开启“3+1+2”新模式
高考倒计时:考生与家长的心理调适秘籍
历届国足主帅命运之:年维泗——精耕二十载承前启后渡舟人
北京口腔医院教你缓解牙冠修复焦虑
牙冠修复后的口腔健康护理全攻略
牙冠延长术后饮食护理全攻略
牙冠修复后如何正确使用牙线?这份指南请收好!
朱定文、孙龙、李文龙:亚冬会短道速滑赛场上的闪耀之星
奥运冠军盛李豪的哈尔滨冰雪之旅:从火炬手到城市探索者
哈尔滨亚冬会引爆东北冰雪经济
哈尔滨亚冬会门票开售!冰球、短道速滑抢票攻略
“无为而治”:古老智慧的现代启示
科学预防巴西龟白眼病:从环境到饮食的全方位指南
老子VS孔子:谁才是真正的“无为而治”大师?
《道德经》里的无为而治,你真的懂吗?
《典籍里的中国》揭秘:黄帝、尧、舜的无为而治
沈阳洗浴文化的热水养生秘籍
沈阳洗浴文化:打卡五大网红浴场!
秋冬养巴西龟,如何避免白眼病?
巴西龟白眼病治愈秘籍大公开!
冬季乌龟白眼病防治指南
秋冬护嗓神器:五味中药材巧配利咽茶