机器学习回归模型:多元线性回归

1、多元线性回归

多元线性回归是一种用于建立多个自变量与一个因变量之间关系的回归模型。它是简单线性回归的扩展,可以同时考虑多个自变量对因变量的影响。

多元线性回归的基本模型可以表示为:

Y = W0 + W1X1 + W2X2 + ... + WnXn + ε

其中,Y是因变量,X1, X2, ..., Xn是自变量,W0, W1, W2, ..., Wn是回归系数,ε是误差项(代表其他未被模型考虑的因素对考试分数的影响)。

多元线性回归的建模过程如下:

【1】数据收集:收集包含因变量Y和自变量X1, X2, ..., Xn的数据。

【2】模型设定:根据问题的背景和领域知识,选择适当的自变量,并设定回归模型的形式。

【3】参数估计:利用最小二乘法或其他方法,估计回归系数W0, W1, W2, ..., Wn,使得模型拟合数据最好。

【4】模型评估:通过各种统计指标(如R方、调整R方、残差分析等)来评估模型的拟合程度和解释力。

【5】模型使用:利用建立好的模型进行预测、推断和解释。

在多元线性回归中,需要注意以下几点:

- 自变量之间应该具有一定的独立性,避免多重共线性。

- 模型的拟合程度可以用R方来衡量,R方越接近1,表示模型拟合程度越好。

- 可以使用t检验和F检验来判断回归系数的显著性。

- 残差分析可以用于检验模型的假设前提是否满足,如是否存在异方差性或自相关等。

多元线性回归是一种常用的统计建模方法,它可以用于解释自变量对因变量的影响程度,进行预测和推断,并且可以通过逐步回归、变量选择等技术来改进模型的准确性和解释力。

2、一个多元线性回归的例子

我们用一个有关房价的例子来演示多元线性回归的应用。假设我们有一个房价数据集,其中包含了以下几个变量:房屋面积(以平方英尺为单位)、卧室数量、所在城市的人口数量。我们的目标是建立一个模型,通过这些变量来预测房价。

以下是一个用Python实现多元线性回归的例子,使用sklearn库进行建模:

# 导入所需的库

import pandas as pd

import numpy as np

from sklearn.linear_model import LinearRegression

# 创建一个房价数据集

data = {'面积': [1000, 1200, 1500, 1800, 2000],

        '卧室数量': [2, 3, 3, 4, 4],

        '人口数量': [100000, 150000, 200000, 250000, 300000],

        '房价': [300000, 350000, 400000, 450000, 500000]}

df = pd.DataFrame(data)

# 提取自变量和因变量

X = df[['面积', '卧室数量', '人口数量']]

y = df['房价']

# 创建线性回归模型

model = LinearRegression()

# 拟合模型

model.fit(X, y)

# 打印回归系数

print('回归系数:', model.coef_)

# 打印截距

print('截距:', model.intercept_)

# 进行预测

new_data = {'面积': [1400, 1600],

            '卧室数量': [2, 3],

            '人口数量': [120000, 180000]}

new_df = pd.DataFrame(new_data)

predictions = model.predict(new_df)

# 打印预测结果

print('预测结果:', predictions)

程序解说:

【1】 首先,我们导入所需的库,包括pandas用于数据处理,numpy用于数值计算,sklearn中的LinearRegression用于建立线性回归模型。

【2】 然后,我们创建了一个房价数据集,包含了房屋面积、卧室数量、人口数量和房价。

【3】 接下来,我们使用pd.DataFrame将数据集转换为DataFrame格式,便于后续的处理。

【4】 我们提取了自变量X和因变量y。

【5】 创建了一个线性回归模型对象model。

【6】 使用model.fit对模型进行拟合。

【7】 打印回归系数和截距,这些值会告诉我们各个自变量的权重以及截距项。

【8】我们使用新的数据进行预测,创建了一个新的DataFrame对象new_df,并使用model.predict进行预测。

【9】 最后,打印预测的结果。

运行上述代码,我们可以得到以下输出:

回归系数: [  25.         50000.          -0.00083333]

截距: 166666.66666666666

预测结果: [285000. 325000.]

根据输出结果,我们可以得到回归模型的系数和截距,以及对于新的数据(1400平方英尺的房子和2个卧室、城市人口12万;1600平方英尺的房子和3个卧室、城市人口18万)的预测房价。

3、最小二乘法求解多元线性回归参数

4、使用矩阵求解最小二乘法

(1)矩阵转置的运算

(2)矩阵求导

(3)矩阵实现最小二乘法求解

5、梯度下降法

1)什么是梯度

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。

对于一个多元函数 f(x1, x2, ..., xn),其梯度是一个由函数偏导数组成的向量,其梯度表示为:

Gradient  = (∂f/∂x1, ∂f/∂x2, ..., ∂f/∂xn)

其中,∂f/∂xi 表示函数 f 对第 i 个自变量 xi 的偏导数。梯度的方向表示函数在该点上的最大增加率,而梯度的反方向则表示函数在该点上的最大减少率。

示例-1:一元函数的梯度

函数: y = ( x -  1 ) ^2

梯度计算:通过求导得到梯度为 dy/dx = 2 * (x - 1)

示例-2:二元函数的梯度

例如 f(x, y) = x^2 + 2y。我们来计算这个函数的梯度。

首先,我们需要计算函数 f 对 x 和 y 的偏导数,这将分别给出函数在 x 和 y 方向上的变化率,也就是梯度的两个分量。

对 x 求偏导数:

∂f/∂x = 2x

对 y 求偏导数:

∂f/∂y = 2

因此,函数 f(x, y) = x^2 + 2y 的梯度为:

Gradient =  (∂f/∂x, ∂f/∂y) = (2x, 2)

当我们取 x=1,y=2 时,代入梯度向量中,得到梯度向量为 (2*1, 2) = (2, 2)。这个梯度向量表示在点 (1, 2) 处函数 f 的变化率最大,沿着梯度向量的方向变化率最快。

为什么在这个点上梯度向量表示变化率最大呢?这是因为梯度向量的方向指向函数在该点上的最大增长方向,而梯度向量的长度则表示增长的速率。在这个例子中,梯度向量的长度为 √(2^2 + 2^2) = √8,表示在点 (1, 2) 处函数 f 的增长速率为 √8。

在机器学习和优化算法中,梯度常用于求解目标函数的最优解。通过计算函数的梯度,可以找到函数在某个点上的最陡下降方向,从而引导参数的更新和优化过程。梯度下降算法就是利用梯度的负方向进行参数更新,以逐步接近函数的局部最优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数字化与智能化

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

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

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

打赏作者

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

抵扣说明:

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

余额充值