×

gradient descent 机器学习算法 th

gradient descent(如何用Python实现机器学习算法(之一)线性回归算法)

admin admin 发表于2023-07-05 11:53:20 浏览43 评论0

抢沙发发表评论

本文目录

如何用Python实现机器学习算法(之一)线性回归算法

点击上方关注,All in AI中国

线性回归试图预测一个因变量(通常用Y表示)和一系列其他变化变量(称为自变量,通常用X表示)。

线性回归

线性回归是一种基于单个预测变量X预测响应Y的方法。假设X和Y之间存在近似线性关系。在数学上,我们可以将此关系表示为:

Y ≈ ɒ + ß X + ℇ

其中ɒ和ß是两个未知常数,表示线性模型中的截距和斜率项,ℇ是估计中的误差。

举例

我们来看一个最简单的例子。仅使用两个数据点计算回归。

这里我们有两个黑点代表的2个数据点。当我们计算回归线时,我们所要做的就是绘制一条尽可能接近每一点的线。

在这里,我们有一个完美拟合的线,因为我们只有两个点。现在,我们必须考虑一个两个以上数据点的情况。

通过应用线性回归,我们可以采用多个X并预测相应的Y值。这在下图中描述:

我们使用线性回归的目标是最小化所有数据点和线之间的垂直距离。

而你现在可能有了一个基本的想法,那就是线性回归的目的是什么。

Python代码

首先,让我们导入库:

下一步是导入和检查数据。

在这里,使用USA_Housing.csv作为示例数据集。探索数据集始终是一种好习惯。尝试使用自己的文件,并运行上面的代码以获取有关数据集的所有可能信息。

数据集的前五个记录的快照

在这里,我正在考虑将Price作为因变量,其余作为自变量。这意味着我必须根据自变量预测价格。

现在是时候使用数据并创建一些可视化的图。

配对图基于两个基本图形,即直方图和散点图。对角线上的直方图允许我们看到单个变量的分布,而上下三角形的散点图显示两个变量之间的关系(或缺少)。

开始探索单个变量的一个好方法是使用直方图。直方图将变量划分为组距(bin),计算每个组距中的数据点,并显示x轴上的组距和y轴上的计数。

关联性

相关系数或简称相关性是一个范围从-1到1的索引。当该值接近零时,没有线性关系。随着相关性接近1或-1,关系更强。值为1(或-1)表示两个变量之间的完美线性关系。让我们找到数据集中变量之间的相关性。

现在,让我们使用热图绘制相关性:

黑色表示两个变量之间没有线性关系。较浅的阴影表明变量之间的关系更加线性。

决定系数

决定系数R2是响应变量Y的变化的分数(百分比),其可由预测变量X解释。其范围在0(无可预测性)与1(或100%)之间,其表示完全可预测性。高的R2表示能够以较少的错误预测响应变量。

训练线性回归模型

我们现在开始训练回归模型。我们需要首先将数据拆分为包含需要训练的特征的X数组,以及包含目标变量的y数组,在本例中为Price列。我们将抛出Area列,因为它只包含线性回归模型无法使用的文本信息。

训练测试拆分

我们的目标是创建一个能够很好地推广新数据的模型。我们的测试集用作新数据的代理。训练数据是我们应用线性回归算法的数据。最后我们在测试数据上测试该算法。拆分代码如下:

从上面的代码片段中我们可以推断出40%的数据会进入测试数据中,其余数据仍保留在训练集中。

创建和训练模型

上述代码适合训练数据的线性回归模型。

从模型的预测

让我们从测试集中获取预测,看看它有多好!

让我们想象一下预测

工作完成得相当不错,已经获得了一个线性模型!

更多的文章、资讯,请关注AI中国,无论你是小白,还是大神,在这里均可以找到你想要的,找到属于你的交流天地!