机器学习-线性回归(代码片段)

Qunar_尤雪萍 Qunar_尤雪萍     2022-12-09     646

关键词:

线性回归

简介:之前的文章中介绍过一种回归算法,梯度下降算法,这里再看看另外一个回归算法,线性回归,主要的内容包括简单的线性回归和局部加权回归算法。

在回归里面需要考虑的问题就是,我如何通过一堆训练数据求出回归方程?例如通过房间的面积,体积,地理位置等信息预测房间的售价。在训练数据中 面积、体积、地理位置我们统称为特征值使用 X 表示通常情况下X都为一个矩阵,最终房间的售价 Y 。针对预测结果中的某条数据 X1 预测结果将会通过 y1=XT1w 计算得到,这里的 w 叫回归系数,通过训练数据我们需要找出误差(得到的w使得测试y和真实y之前的差值)最小的 w ,一种简单有效的方式是采用平方差:i=1m(yixTiw)2(1)对w求导,得到 XT(yXw) ,令其等于零,得到 w=(XTX)1XTy

简单的线性回归

通过上面的推导得到的公式 w=(XTX)1XTy ,我们便能通过代码实现从训练集合中找到最优的回归系数w。
具体算法:

from numpy import *

#xArr 为 m x n 的一个数组
#yArr 为 1 x m 的一个数组
def standRegres(xArr, yArr):
    xMat = mat(xArr); yMat = mat(yArr).T
    xTx = xMat.T * xMat
    if linalg.det(xTx) == 0.0 : ##说明xTx不可逆
        return
    ws = xTx.I * (xMat.T * yMat)

    return ws

局部加权线性回归

上述的线性回归方法的一个问题是可能会出现欠拟合现象,它求的是最小误差的估计,针对的是全局最小误差,如果说模型本身就是一个欠拟合模型则不能通过上述方法取得最好的预测效果。为了解决这个问题引出了局部加权线性回归,在这个算法中我们给待预测点附近的每个点赋予一定的权重值,然后再选出的附近子集的基础上采用最小方差进行回归 w=(XTWX)1XTWy 这里面的W为每个点权重,是一个矩阵,W的计算公式可以自由选择,但是常见的使用高斯函数 W(i,i)=exp(|x(i)x|2k2) ,k为用户指定的的参数,k决定了给附近点赋予多大的权重,当k值越小那么邻近的点拥有越大的权重,而越远的点权重比越小。
算法实现

def lwlr(testPoint, xArr, yArr, k=1.0):
    xMat = mat(xArr); yMat = mat(yArr).T
    m = shape(xMat)[0]
    ##构造一个对角矩阵
    weights = mat(eys((m)))

    for j in range(m):
        diffMat = testPoint - xMat[j:]
        weights[j,j] = exp(diffMat * diffMat.T/(-2.0*k**2))

    xTx = xMat.T * (weights * xMat)
    if linalg.det(xTx) ==0.0:
        return 

    ws = xTx.I * (xMat.T * (weights * yMat))

    return testPoint * ws

局部加权需要通过不断调整k值,是预测结果尽量准确,不同的k值对预测结果影响很大,另外通过上面的算法实现可以看出局部加权线性回归存在一个问题即,在每次预测目标值时都需要回归整个训练数据集,所以计算量很大。

线性回归模型|机器学习(代码片段)

目录1.线性回归模型1.1一元线性回归模型1.2多元线性回归模型1.3损失函数2.相关代码2.1LinearRegression类2.2求解代码2.3绘图代码1.线性回归模型1.1一元线性回归模型简单的讲,一元线性模型就是指只有一个特征量,然后对应带... 查看详情

机器学习一般线性回归(代码片段)

...归"模型。 0.概述线性回归应该是我们听过次数最多的机器学习算法了。在一般的统计学教科书中,最后都会提到这种方法。因此该算法也算是架起了数理统计与机器学习之间的桥梁。线性回归虽然常见,但是却并不简单。该... 查看详情

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

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

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

一、原理部分:只能图片形式展现了~~~二、Python手工实现线性回归importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltclasslinear_regression(object):#计算均方误差损失defcompute_loss(self,y,y_hat):returnnp.average((y-y_hat)**2)#梯度下降算 查看详情

机器学习线性回归api快速入门(代码片段)

目录1线性回归API2举例2.1步骤分析2.2代码过程3小结1线性回归API机器学习线性回归简介:https://blog.csdn.net/ZGL_cyy/article/details/126918295sklearn.linear_model.LinearRegression()LinearRegression.coef_:回归系数2举例2.1步骤分析1.获取数据 查看详情

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

导入类库1fromsklearn.externalsimportjoblib2fromsklearn.model_selectionimporttrain_test_split3fromsklearn.datasetsimportload_boston4fromsklearn.preprocessingimportStandardScaler5fromsklearn.linear_modelimp 查看详情

机器学习入门:多变量线性回归(代码片段)

...的两个小技巧。本文分享自华为云社区《【跟着小Mi一起机器学习吧!】多变量线性回归(一)》,原文作者:Skytier。1 多维特征既然是多变量线性回归,那么肯定是存在多个变量或者多个特征的情况啦。就拿之前研究的线... 查看详情

机器学习模型和算法(代码片段)

文章目录python简介python基本语法监督学习--回归模型线性回归模型一元线性回归线性回归最小二乘代码实现多元线性回归梯度下降法和最小二乘法相比线性回归梯度下降代码实现非线性回归python简介略python基本语法文件开头加上#... 查看详情

机器学习-8.线性回归(代码片段)

1.概述定义:线性回归通过一个或多个自变量(理解为特征)与因变量(理解为目标值)之间进行建模的回归分析。其中可以为一个或多个自变量之间的线性组合(线性回归的一种)。一元线性回归:涉及到的变量只有... 查看详情

机器学习-线性回归(代码片段)

线性回归简介:之前的文章中介绍过一种回归算法,梯度下降算法,这里再看看另外一个回归算法,线性回归,主要的内容包括简单的线性回归和局部加权回归算法。在回归里面需要考虑的问题就是,我如... 查看详情

机器学习入门三------线性回归(代码片段)

...方法。本模块会先直观介绍线性回归,为介绍线性回归的机器学习方法奠定基础。人们早就知晓,相比凉爽的天气,蟋蟀在较为炎热的天气里鸣叫更为频繁。数十年来,专业和业余昆虫学者已将每分钟的鸣叫声和温度方面的数据... 查看详情

机器学习sklearn监督学习回归算法线性回归linearregression(代码片段)

importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_model#设置中文字体plt.rcParams['font.sans-serif']='SimHei'plt.rcParams['axes.unicode_minus']=False#设置自变量和因变 查看详情

机器学习--线性回归的原理与基础实现(代码片段)

文章目录一、一元线性回归的实现1.1原理1.2Python底层实现一元线性回归二、多元线性回归的实现2.1参考文献2.2代码实现2.3相关性分析三、第三方库实现线性回归四、线性回归案例4.1回归知识复习4.2案例编写一、一元线性回归的实... 查看详情

机器学习基石线性回归(代码片段)

目录写在前面1.线性回归问题2.求解最小的Ein(w)E_in(w)Ein​(w)对应的www3.泛化问题4.与线性分类的对比写在前面本节主要介绍了线性回归原理以及它的可行性,最后与前面学过的线性分类进行了对比分析。1.线性回归问题∙\\bullet... 查看详情

机器学习:局部加权线性回归(locallyweightedlinearregression)(代码片段)

线性回归先复习一下线性回归的损失函数:我们的目标是使该函数最小,用矩阵表示为:对参数w求导得:令上式等于0可估计出回归系数w得最优解:但线性回归往往容易欠拟合,除了使用更复杂得函数拟合... 查看详情

sklearn实现一元线性回归python机器学习系列(代码片段)

sklearn实现一元线性回归【Python机器学习系列(五)】文章目录1.获取数据2.线性回归模型大家好,我是侯小啾! 本期blog分享的内容是通过sklearn库实现一元线性回归。相比上篇blog中介绍的梯度下降法中较为复杂... 查看详情

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

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

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

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