外贸公司建网站一般多少钱,如何做黑彩网站,响应式网站模版建站,4399网页游戏官网文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介
线性回归是利用数理统计中回归分析#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系包含因果关系和平行关系因果关系回归分析【原因引起结果需要明确自变量和因变量】平行关系相关关系【无因果关系不区分自变量和因变量】
一元线性回归模型 多元线性回归模型 误差项分析
误差项满足高斯分布 求解 一元线性回归模型与多元线性回归模型的区别 自变量数量一元线性回归只涉及一个自变量而多元线性回归涉及两个或更多自变量。模型复杂度由于包含更多的自变量多元线性回归模型能够捕捉更复杂的数据关系但也面临过拟合和变量选择等挑战。解释性在多元线性回归中每个自变量的回归系数表示在保持其他自变量不变的情况下该自变量每增加一个单位对因变量的平均影响。而在一元线性回归中这个解释更为直接和简单。应用场景当数据集中只有一个自变量时使用一元线性回归当数据集包含多个可能相关的自变量时使用多元线性回归。
一元线性模型实例
安装scikit-learn python中执行线性回归的一个非常流行和强大的库是scikit-learn。scikit-learn提供了丰富的工具来进行数据挖掘和数据分析包括简单和复杂的线性回归模型。
pip install scikit-learn准备数据集 数据集文件通过网盘分享的文件data.csv 链接: https://pan.baidu.com/s/119pHKJu0ZPGYUfQA6_hYfg 提取码: i3vf 实例步骤 导入数据 绘制数据的散点图 求特征之间的相关系数 估计模型参数建立回归模型 训练模型 测试模型 求出线性回归模型 导入数据 通过导入pandas模块使用pandas的读取csv文件的方法进行导入数据集。 data pd.read_csv(data.csv)绘制散点图 plt.scatter(data.广告投入,data.销售额)
plt.show()求特征之间的相关系数 在Python中特别是在使用pandas库处理数据时corr()函数是一个非常有用的方法它用于计算DataFrame中列与列之间的相关系数。 相关系数越接近1说明它们之间受相互的影响越大。 corr data.corr()估计模型参数建立回归模型 分别用变量接收数据中的值后面传入模型中训练 这里直接调用 scikit-learn 库中的 LinearRegression() 模型 lr LinearRegression()
x data[[广告投入]]
y data[[销售额]]训练模型 使用sklearn模块中的fit()方法进行训练 lr.fit(x,y)测试模型 这里取两个例子进行测试预测score()方法用于评估模型对给定数据x, y的拟合优度其中x是自变量数据y是真实的因变量数据。对于线性回归模型score 方法默认计算的是决定系数R2 score它表示模型预测值与实际值之间的拟合程度。R2 score的值越接近1说明模型的拟合效果越好如果为0则表示模型的表现和简单预测平均值一样如果小于0则表示模型的表现甚至不如简单预测平均值。 score lr.score(x,y)
#
print(lr.predict([[50]]))
print(lr.predict([[70]]))求出线性回归模型 分别求出回归的模型的截距和斜率,.coef_方法用来求斜率而.intercept_方法用来求截距 b lr.coef_
c lr.intercept_
print(一元线性回归模型为:y{:.2f}x1 {:.2f}..format(b[0][0],c[0]))结果
完整代码
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegressiondata pd.read_csv(data.csv)
a data.广告投入
# 绘制散点图
plt.scatter(data.广告投入,data.销售额)
plt.show()corr data.corr()# 求x和y的相关系数
print(corr)
# 估计模型参数建立回归模型
lr LinearRegression()
x data[[广告投入]]
y data[[销售额]]lr.fit(x,y)# 训练模型score lr.score(x,y)
#
print(lr.predict([[50]]))
print(lr.predict([[70]]))
b lr.coef_
c lr.intercept_
print(一元线性回归模型为:y{:.2f}x1 {:.2f}..format(b[0][0],c[0]))多元线性模型实例
多元线性模型与一元线性模型结构差不多相同有些许差别。
导入数据 本次使用的数据为糖尿病的数据共有10个特征变量的自变量和最后一列的因变量。 通过网盘分享的文件糖尿病数据.csv 链接: https://pan.baidu.com/s/1lO8IshYhgmkGlNYMBMIK4w 提取码: mh94 完整代码
import pandas as pd
from sklearn.linear_model import LinearRegressiondata pd.read_csv(糖尿病数据.csv)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([[-0.0926954778032799,-0.044641636506989,-0.0406959404999971,-0.0194420933298793,-0.0689906498720667,-0.0792878444118122,0.0412768238419757,-0.076394503750001,-0.0411803851880079,-0.0963461565416647]]))
print(lr_model.predict([[-0.0963280162542995,-0.044641636506989,-0.0838084234552331,0.0081008722200108,-0.103389471327095,-0.0905611890362353,-0.0139477432193303,-0.076394503750001,-0.0629129499162512,-0.0342145528191441]]))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]))结果 可以看到一元线性回归模型和多元线性回归模型的结果只是多元线性回归模型有多个自变量来控制因变量且多元线性回归模型要导入多个特征数据数据处理阶段并无太大区别。