机器学习-线性回归算法(房价预测项目)(代码片段)

吾仄lo咚锵 吾仄lo咚锵     2023-01-12     737

关键词:

文章目录

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站

简介


线性回归(Linear Regression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名,从而可以根据已知数据预测未来数据,如房价预测、PM2.5预测等。

其中,只有一个自变量则称为一元线性回归,包含多个自变量则成为多元线性回归。

如下图,根据已知数据点(蓝色),建模得到红色的回归方程,表示自变量和因变量关系,从而可以输入新的自变量,得到预测值(因变量)。

预测函数定义为:
h ( w ) = w 1 x 1 + w 2 x 2 + ⋅ ⋅ ⋅ + w d x d + b h(w)=w_1x_1+w_2x_2+···+w_dx_d+b h(w)=w1x1+w2x2++wdxd+b

向量形式为:
h ( w ) = w T x h(w)=\\boldw^T\\boldx h(w)=wTx
其中 w T = ( b w 1 ⋅ ⋅ ⋅ w d ) , x = ( 1 x 1 ⋅ ⋅ ⋅ x d ) \\boldw^T=\\begingathered\\beginpmatrix b\\\\ w_1\\\\···\\\\w_d \\endpmatrix\\endgathered,\\boldx=\\begingathered\\beginpmatrix 1\\\\ x_1\\\\···\\\\x_d \\endpmatrix\\endgathered wT=bw1wd,x=1x1xd

也就是说我们需要确定 w \\boldw w b b b的值,来构建预测函数。

假设随机初始化 w \\boldw w b b b后,我们得到一个预测函数 h w h_w hw,我们的目标就是希望 h w h_w hw尽可能贴近目标函数。那又要如何评价当前构建出来的模型怎么样,评价两个模型的优劣,并如何向目标函数不断靠近呢?

即使用损失函数和优化算法。

损失函数


损失函数就是定义当前函数和目标函数之间的差异,并且我们期望这个差异(损失)越小越好。

使用误差平方和SSE来表示损失,即预测值和真实值差的平方求和,该方法也称为最小二乘法,二乘即平方的意思,求最小的损失。

总损失定义为:
J ( w ) = 1 2 ∑ i = 1 m ( h w ( x i ) − y i ) 2 = 1 2 ( x w − y ) 2 J(w)=\\frac12\\sum_i=1^m(h_w(x_i)-y_i)^2=\\frac12(\\boldx\\boldw-\\boldy)^2 J(w)=21i=1m(hw(xi)yi)2=21(xwy)2
其中 h w ( x i ) h_w(x_i) hw(xi)表示训练样本 i i i的预测值, y i y_i yi是训练样本 i i i的真实值。

也就是使下图中黄色长度之和最小。

优化算法

正规方程


利用高中知识,求一个函数的最小值,我们可以求导,在导数为0处取得最小值。
这也是为什么损失函数乘以 1 2 \\frac12 21,为了求导后可以约掉。

w \\boldw w求导:
( 1 2 ( x w − y ) 2 ) ′ = 0 ( x w − y ) x = 0 ( x w − y ) ( x x T ) = 0 ( x w − y ) ( x x T ) ( x x T ) − 1 = 0 x w − y = 0 x w = y x T x w = x T y ( x T x ) − 1 ( x T x ) w = ( x T x ) − 1 x T y w = ( x T x ) − 1 x T y (\\frac12(\\boldx\\boldw-\\boldy)^2)^'=0\\\\ (\\boldx\\boldw-\\boldy)\\boldx=0\\\\ (\\boldx\\boldw-\\boldy)(\\boldx\\boldx^T)=0\\\\ (\\boldx\\boldw-\\boldy)(\\boldx\\boldx^T)(\\boldx\\boldx^T)^-1=0\\\\ \\boldx\\boldw-\\boldy=0\\\\ \\boldx\\boldw=\\boldy\\\\ \\boldx^T\\boldx\\boldw=\\boldx^T\\boldy\\\\ (\\boldx^T\\boldx)^-1(\\boldx^T\\boldx)\\boldw=(\\boldx^T\\boldx)^-1\\boldx^T\\boldy\\\\ \\boldw=(\\boldx^T\\boldx)^-1\\boldx^T\\boldy (21(xwy)2)=0(xwy)x=0(xwy)(xxT)=0(xwy)(xxT)(xxT)1=0xwy=0xw=yxTxw=xTy(xTx)1(xTx)w=(xTx)1xTyw=(xTx)1xTy

一顿操作之后,也就是说如果 x T x \\boldx^T\\boldx xTx可逆(是正定矩阵),我们就可以直接求得最小损失对应的 w \\boldw w
但是该方法适合样本特征数比较小的情况,不然矩阵太大了运算也很慢,因为复杂度是O(N3)。

使用numpy和scipy提供的矩阵运算,可以得到代码实现:

def Regres(X, Y):
    x = mat(X)回归-线性回归算法(房价预测项目)(代码片段)

...录简介损失函数优化算法正规方程梯度下降项目实战简介线性回归(LinearRegression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名,从而可以... 查看详情

掌握spark机器学习库-07.6-线性回归实现房价预测(代码片段)

数据集house.csv数据概览代码packageorg.apache.spark.examples.examplesformlimportorg.apache.spark.ml.feature.VectorAssemblerimportorg.apache.spark.ml.regression.LinearRegressionimportorg.apache.spark.sql.SparkSe 查看详情

机器学习梯度下降法应用波士顿房价预测(代码片段)

...实现2.4.1正规方程2.4.2梯度下降法2.5小结1线性回归api介绍机器学习梯度下降算法:https://blog.csdn.net/ZGL_cyy/article/details/127037949sklearn.linear_model.LinearRegression(f 查看详情

机器学习100天:008简单线性回归python实战(代码片段)

机器学习100天,今天讲的是:简单线性回归Python实战——房价预测。上一节课,我们通过引入房价预测的例子,讲解了线性回归的理论知识,以及如何最小化损失函数,来计算最优的参数www。今天我们就使用Python来编写一个简单... 查看详情

机器学习算法:波士顿房价预测|黑马程序员(代码片段)

学习目标:通过案例掌握正规方程和梯度下降法api的使用1案例背景介绍数据介绍   给定的这些特征,是专家们得出的影响房价的结果属性。我们此阶段不需要自己去探究特征是否有用,只需要使用这些特征。到后... 查看详情

机器学习实战——用线性回归预测波士顿房价

查看详情

机器学习导论————线性回归(linerregression)(代码片段)

机器学习导论————线性回归(LinerRegression)一、线性回归的应用场景监督学习-目标值连续房价预测销售额预测贷款额度预测二、什么是线性回归2.1定义与公式线性回归(LinearRegression)是利用回归方程(函数)对... 查看详情

正规方程,梯度下降,岭回归——机器学习(代码片段)

线性回归一.介绍1.1线性回归API介绍——LinearRegression二.线性回归的损失和优化2.1全梯度下降算法(FG)2.2随机梯度下降算法(SG)2.3小批量梯度下降算法(mini-batch)2.4随机平均梯度下降算法(SAG)三... 查看详情

机器学习算法:线性回归简介

学习目标了解线性回归的应用场景知道线性回归的定义1线性回归应用场景房价预测销售额度预测贷款额度预测举例: 2什么是线性回归2.1定义与公式线性回归(Linearregression)是利用回归方程(函数)对一个或多个自变量(特征值)... 查看详情

机器学习实战二:波士顿房价预测bostonhousing(代码片段)

...更像是预测一个连续值,当然这也是一个非常经典的机器学习案例Bostonhousing如果想了解更多的知识,可以去我的机器学习之路TheRoadToMachineLearning通道目录活动背景数据介绍详细代码解释导入PythonPackages读入数据Read-InData从... 查看详情

机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现附源码超详细)(代码片段)

数据集和源码请点赞关注收藏后评论区留下QQ邮箱或者私信线性回归是利用最小二乘函数对一个或多个因变量之间关系进行建模的一种回归分析,这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个变量的... 查看详情

机器学习1-概述(代码片段)

机器学习包含监督学习、非监督学习、以及强化学习三大部分。监督学习分为分类和回归两大类。分类:例如经过大量水果图片训练,识别新水果图片中是否含有苹果回归:例如经过大量面积-房价的数据的训练,预测某个面积... 查看详情

机器学习-2-线性回归

机器学习-2-线性回归首先吐槽我们的老师上课上得真是太烂了。。真的烂。。PPT里也只会对没有意义的公式,而且还不解释是在干什么。。回归什么是回归首先回归属于监督学习的一种,回归问题中,尝试预测连续的输出,与尝... 查看详情

02-06普通线性回归(波斯顿房价预测)+特征选择(代码片段)

...矩阵3.2关联矩阵四、训练模型五、可视化更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/普通线性回归(波士顿房价预测)一、导入模块importpandasas... 查看详情

机器学习线性回归(回炉重造)(代码片段)

机器学习---线性回归1.简单线性回归2.多元线性回归3.线性回归的正规方程解4.衡量线性回归的性能指标MSERMSEMAER-Squared5.scikit-learn线性回归实践-波斯顿房价预测LinearRegression线性回归是属于机器学习里面的监督学习,与分类问题... 查看详情

机器学习100天:010多项式回归python实战(代码片段)

机器学习100天,今天讲的是:多项式线性回归Python实战——房价预测。上一节我们介绍了多项式线性回归理论,即构建一个二次多项式来拟合房价与地区人口的关系。今天我们就来编写一个二次多项式回归程序来构建房价预测的... 查看详情

机器学习之线性回归

1.机器学习算法**监督学习:**已经知道类别的样本,通过一定的模型或者是特定的算法,可以预测出某种特定的结果,例如预测房价,最终可以预测出房价是什么,或者是预测肿瘤疾病,判断肿瘤是良... 查看详情

机器学习之线性回归

1.机器学习算法**监督学习:**已经知道类别的样本,通过一定的模型或者是特定的算法,可以预测出某种特定的结果,例如预测房价,最终可以预测出房价是什么,或者是预测肿瘤疾病,判断肿瘤是良... 查看详情