查看原文
其他

第2.1节 线性回归(模型的建立与求解)

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

经过第1章的介绍,我们已经完成了Python开发环境的安装与配置。现在,笔者就正式开始介绍第1个算法:线性回归(Linear Regression)。整个线性回归的学习路线如图2-1所示。由于这是介绍的第1个算法,所以笔者会介绍很多基本的内容,导致看起来内容繁多,因此,对于整个线性回归的学习笔者将会通过7小节的内容进行介绍,但是,值得高兴的是只要完成了前面4个步骤的学习就基本上达到了第一阶段学习的要求。下面就正式开始介绍线性回归。

图 2-1 线性回归学习路线图

2.1 模型的建立与求解

2.1.1 理解线性回归模型

通常来讲,机器学习中的每个算法都是为了解决某一类问题而诞生的。换句话说,也就是在实际情况中存在一些问题能够通过线性回归来解决,例如对房价的预测,但是有人可能会问,为什么对于房价的预测就应该用线性回归,而不是其他算法模型呢?其原因就在于常识告诉我们房价是随着面积的增长而增长的,且总体上呈线性增长的趋势。那有没有当面积大到一定程度后价格反而降低,因此不符合线性增长的呢?这当然也可能存在,但在实际处理中肯定会优先选择线性回归模型,当效果不佳时我们会尝试其他算法,因此,当学习过多个算法后,在得到某个具体的问题时,就需要考虑哪种模型更适合来解决这个问题了。

例如某市的房价走势如图2-2所示,其中横坐标为面积,纵坐标为价格,并且房价整体上呈线性增长的趋势。假如现在随意告诉你一个房屋的面积,要怎样才能预测(或者叫计算)出其对应的价格呢?

图 2-2 某市的房价走势图

2.1.2 建立线性回归模型

一般来讲,当我们得到一个实际问题时,首先会根据问题的背景结合常识选择一个合适的模型。同时,现在常识告诉我们房价的增长更优先符合线性回归这类模型,因此可以考虑建立一个如下所示的线性回归模型。

其中叫权重参数(Weight),叫偏置(Bias)或者截距(Intercept)。当通过某种方法求解得到未知参数之后,也就意味着我们得到了这个预测模型,即给定一个房屋面积,就能够预测出其对应的房价

注意:在机器学习中所谓的模型,可以简单理解为一个函数。

2.1.3 求解线性回归模型

当建立好一个模型后,自然而然想到的就是如何通过给定的数据,也叫训练集(Training Data),来对模型 进行求解。在中学时期我们学过如何通过两个坐标点来求解过这两点的直线,可在上述的场景中这种做法显然是行不通的(因为所有的点并不在一条直线上),那有没有什么好的解决的办法呢?

此时就需要我们转换一下思路了,既然不能直接进行求解,那就换一种间接的方式。现在来想象一下,当 满足一个什么样的条件时,它才能称得上是一个好的?回想一下求解的目的是什么,不就是希望输入面积后能够输出“准确”的房价吗?既然直接求解不好入手,那么我们就从“准确”来入手。

可又怎样来定义准确呢?在这里,我们可以通过计算每个样本的真实房价与预测房价之间的均方误差来对“准确”进行刻画。

其中,表示样本数量;表示第个样本的面积,也就是第个房屋的面积;表示第个房屋的真实价格;表示第 个房屋的预测价格。

由式(2.2)可知,当函数取最小值时的参数,就是要求的目标参数。为什么?因为当取最小值时就意味着此时所有样本的预测值与真实值之间的误差(Error)最小。如果极端一点,就是所有预测值都等同于真实值,那么此时的就是0了。因此,对于如何求解模型 的问题就转换成了如何最小化函数的问题,而也有一个专门的术语叫作目标函数(Objective Function)或者代价函数(Cost Function)抑或损失函数(Loss Function)。

至此,我们离第一阶段的学习目标就只差一步了,那就是如何通过开源框架进行建模求解,并进行预测。至于求解过程到底怎样及如何进行的,那就是第二阶段的任务了,下面开始完成第一阶段的最后一步。

2.1.4 sklearn简介

如图2-3所示,scikit-learn简称sklearn。它是一个开源的机器学习框架,常用的机器学习算法可以在里面找到,例如线性回归、逻辑回归、决策树等。同时,其Python化的设计风格对于Python用户来讲也十分友好且易于上手,并且每个算法都给了相应的示例及API文档,因此,对于入门机器学习来讲,利用sklearn进行建模是一个不二的选择。

图 2-3 sklearn介绍

2.1.5 安装sklearn及其他库

在第1章内容中,笔者已经介绍了如何配置Python环境,下面就开始在第1章中所创建的Python虚拟环境里安装所需要的包(库)。

1. 打开终端

如果是在Windows环境中,则应先单击“开始”按钮,然后找到Anaconda Prompt并打开,最后激活相应的Python虚拟环境即可。如果是在Linux环境中,则可直接打开命令行终端,然后激活相应的虚拟环境。

继续滑动看下一个

第2.1节 线性回归(模型的建立与求解)

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

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

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