线性回归-全篇+案例

线性回归是机器学习中最基础,应用最为广泛的模型之一。在回归分析中,线性回归模型是指因变量Y与自变量X之间存在线性关系,即Y的变化可以由X解释。线性回归模型可以用于预测与建模,本文将通过两个案例展示如何使用Python实现线性回归模型。

案例1:散点图与线性回归模型

首先,我们先生成一组散点图数据,并通过Scikit-learn库构建线性回归模型。

import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 生成散点图数据
X = [[1], [2], [4], [5]]
Y = [2, 4, 6, 8]

# 绘制散点图
plt.scatter(X, Y)
plt.show()

# 构建线性回归模型
regr = LinearRegression()
regr.fit(X,Y)

接下来,我们可以通过模型预测功能预测新数据。例如,我们需要预测当X为1.5时Y的取值,我们可以这样写:

y = regr.predict([[1.5]])
print(y)

输出结果为:[2.5]

我们也可以同时预测多组数据:

y = regr.predict([[1.5], [2.5], [4.5]])
print(y)

输出结果为:[2.5 4. 7. ]

接着,我们将线性回归模型可视化,绘制出回归线。

plt.scatter(X, Y)
plt.plot(X, regr.predict(X))
plt.show()

最后,我们通过线性回归方程来总结模型的特征:

print('系数a为:' + str(regr.coef_[0]))
print('截距b为:' + str(regr.intercept_))

案例2:工作年限与收入的线性回归模型

接下来,我们来看一个实际应用的案例:工作年限与收入的线性回归模型。我们首先读取数据,然后绘制散点图。

import pandas as pd
from matplotlib import pyplot as plt

# 读取数据
df = pd.read_excel('IT行业收入表.xlsx')

# 绘制散点图
X = df[['工龄']]
Y = df['薪水']
plt.scatter(X,Y)
plt.xlabel('工龄')
plt.ylabel('薪水')
plt.show()

我们可以看到,数据呈现出一个较为明显的线性关系。接着,我们可以构建线性回归模型,并将拟合的回归线可视化。

from sklearn.linear_model import LinearRegression

# 构建线性回归模型
regr = LinearRegression()
regr.fit(X,Y)

# 绘制拟合的回归线
plt.scatter(X,Y)
plt.plot(X, regr.predict(X), color='red')  # color='red'设置为红色
plt.xlabel('工龄')
plt.ylabel('薪水')
plt.show()

如图所示,拟合的回归线很好地拟合了数据的线性关系。最后,我们可以通过线性回归方程来总结模型的特征。

print('系数a为:' + str(regr.coef_[0]))
print('截距b为:' + str(regr.intercept_))

需要注意的是,有些数据可能并不是严格的线性关系,我们可以使用二次多项式拟合模型进行拟合。具体实现如下:

from sklearn.preprocessing import PolynomialFeatures

# 使用二次多项式进行拟合
poly_reg = PolynomialFeatures(degree=2)
X_ = poly_reg.fit_transform(X)

regr = LinearRegression()
regr.fit(X_, Y)

plt.scatter(X,Y)
plt.plot(X, regr.predict(X_), color='red')
plt.show()

print(regr.coef_)
print(regr.intercept_)

如上图所示,使用二次多项式进行拟合的结果也很不错。对比线性模型,使用多项式模型能更好地适应数据的非线性关系。

综上所述,本文通过两个案例展示如何使用Python实现线性回归模型。线性回归是机器学习中最基础,应用最为广泛的模型之一,在实际应用中有着广泛的应用。掌握线性回归模型的实现和应用,有助于我们在实际的数据分析中更好地理解数据和挖掘数据的线性关系。

不同行业工作年限与收入的线性回归模型

线性回归模型是机器学习中最基本的模型之一,用于预测一个连续的因变量。在本文中,我们将介绍如何评估线性回归模型,并使用一个数据集来展示模型的评估过程。

我们使用的数据集是“IT行业收入表”,它包含不同行业工作人员的工龄和薪水信息。我们将使用这个数据集来构建一个简单的线性回归模型,预测薪水随着工作年限的增加而增加。

数据大概

首先,我们需要将数据读取到 Pandas 数据框中。然后,我们将工龄指定为自变量 X,将薪水指定为因变量 Y。

import pandas as pd
df = pd.read_excel('IT行业收入表.xlsx')
X = df[['工龄']]
Y = df['薪水']

接着,我们使用 Statsmodels 拟合线性回归模型,输出模型的统计摘要,检查模型的拟合效果。这里需要注意添加常数项,因为 Statsmodels 默认不添加常数项。

import statsmodels.api as sm
X2 = sm.add_constant(X)
est = sm.OLS(Y, X2).fit()
print(est.summary())

从模型的统计摘要中,我们可以看到 R-squared 的值为 0.957,这说明模型的拟合效果较好。但是,我们也可以看到 P 值非常小,这意味着工龄与薪水之间的关系非常显著。

接着,我们使用 PolynomialFeatures 将自变量 X 转换为二次项,并再次使用 Statsmodels 拟合新的线性回归模型,输出新模型的统计摘要。

from sklearn.preprocessing import PolynomialFeatures
poly_reg = PolynomialFeatures(degree=2)
X_ = poly_reg.fit_transform(X)

import statsmodels.api as sm
X2 = sm.add_constant(X_)
est = sm.OLS(Y, X2).fit()
print(est.summary())

从新模型的统计摘要中,我们可以看到 R-squared 的值提高到了 0.855,说明二次项可以更好地拟合数据。同样,P 值也非常小,说明二次项的影响非常显著。

最后,我们使用 scikit-learn 中的 LinearRegression 模型训练线性回归模型,并输出模型的 R-squared 值作为模型评估标准。

from sklearn.linear_model import LinearRegression
regr = LinearRegression()
regr.fit(X,Y)

from sklearn.metrics import r2_score
r2 = r2_score(Y, regr.predict(X))
print(r2)

模型的 R-squared 值为 0.855,与 Statsmodels 的结果一致。

在实际应用中,我们需要使用多种评估指标来评估模型的效果,例如均方误差(MSE)、均方根误差(RMSE)等。同时,我们也需要使用交叉验证等技术来评估模型的泛化能力。

多元线性回归是一种常见的统计建模方法,可以用于预测因变量(Y)与多个自变量(X1、X2、X3……)之间的关系。在实际应用中,多元线性回归可以用于许多场景,例如预测销售额、客户价值等。

下面我们将通过一个客户价值预测的案例来介绍多元线性回归的数学原理和代码实现。

首先,我们需要读取数据,代码如下:

import pandas as pd
df = pd.read_excel('客户价值数据表.xlsx')

接着,我们需要定义自变量和因变量,代码如下:

X = df[['历史贷款金额', '贷款次数', '学历', '月收入', '性别']]
Y = df['客户价值']

在定义好自变量和因变量之后,我们可以开始进行模型搭建了。这里我们使用sklearn库中的LinearRegression方法,代码如下:

from sklearn.linear_model import LinearRegression
regr = LinearRegression()
regr.fit(X,Y)

通过上面的代码,我们可以得到模型各系数和常数项系数k0的值,如下所示:

print('各系数为:' + str(regr.coef_))
print('常数项系数k0为:' + str(regr.intercept_))

得到各系数和常数项系数之后,我们还需要进行模型评估以确定模型的预测能力。这里我们使用statsmodels库,代码如下:

import statsmodels.api as sm
X2 = sm.add_constant(X)
est = sm.OLS(Y, X2).fit()
est.summary()

通过上述代码,我们可以得到模型的评估结果。其中包括调整后的R方、自变量各系数的置信区间等信息,这些信息都可以用于评价模型的质量和预测能力。

综上所述,多元线性回归是一种常见的统计建模方法,可以用于实际应用中的各种场景。通过对数据进行处理,模型搭建和评估,我们可以得到一个可靠的多元线性回归模型,并利用该模型进行预测和决策。

代码数据请点击下方获取。

链接:https://pan.baidu.com/s/1Vv0odf2ce2Lvwo96L736-A?pwd=0000 
提取码:0000 
--来自百度网盘超级会员V5的分享

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值