查看原文
其他

第2.2节 线性回归(多变量线性回归)

空字符 月来客栈 2024-01-19

2.2 多变量线性回归

2.2.1 理解多变量

2.1节的内容中,笔者详细地介绍了什么是线性回归及一个典型的应用场景,同时还介绍了如何通过开源的sklearn来搭建一个简单的线性回归模型。相信此时各位读者对于线性回归的核心思想已经有了一定的认识。接下来,我们将继续开始学习线性回归的后续内容。

在这里笔者还是继续以房价预测为例进行介绍。尽管影响房价的主要因素是面积,但是其他因素同样也可能影响房屋的价格。例如房屋到学校的距离、到医院的距离和到大型商场的距离等。虽然现实生活中一般不这么量化,但是开发商也总是会拿学区房做卖点,所以这时便有了影响房价的4个因素,而在机器学习中我们将其称为特征(Feature)或者属性(Attribute),因此,包含多个特征的线性回归就叫作多变量线性回归(Multiple Linear Regression)。

2.2.2 多变量线性回归建模

以波士顿房价数据集为例,其一共包含了13个特征属性,因此可以得到如下所示的线性回归模型。

并且同时,其目标函数为

其中表示第个样本的第个特征属性;为一个向量,表示所有的权重;为一个标量,表示偏置。

由2.1节介绍的内容可知,只要通过某种方法最小化目标函数后,便可以求解出模型对应的参数。不过在这之前,我们先来看一下如何通过sklearn进行建模与求解。

2.2.3 多变量回归示例代码

下面依旧以sklearn进行多变量线性回归模型的建模与求解为例,完整代码见Book/Chapter02/02_boston_price_train.py文件。

1.导入数据集

这里直接导入了一个sklearn内置的Boston房价数据集为例进行演示,代码如下:

from sklearn.datasets import load_boston
def load_data():
    data = load_boston()
    x = data.data
    y = data.target
    return x, y

2. 求解与结果

训练模型与输出相应的权重参数和预测值,代码如下:

def train(x, y):
    model = LinearRegression()
    model.fit(x,y)
    print("权重为:",model.coef_,"偏置为:",model.intercept_)
    print("第12个房屋的预测和真实价格:",model.predict(x[12,:].reshape(1,-1)))

根据上述代码便完成了对于多变量线性回归模型的建立与求解,同时也得出了各个特征所对应的权重参数,但由于不易对高维数据进行可视化,所以这里只能从预测的结果来评判模型的好坏,具体的模型评估指标将在第2.4节中进行介绍。

继续滑动看下一个

第2.2节 线性回归(多变量线性回归)

空字符 月来客栈
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存