线性回归方程

线性回归与逻辑回归的正则化

匆匆过客 提交于 2020-04-06 08:24:31
线性回归与逻辑回归的正则化 一、为什么要正则化? 说起正则化要从过拟合问题说起。 当我们拥有相当多的特征时,机器学习出来的假设可能在训练集上符合的很好,但是却未能在新的测试集上取得好的效果,这就是我们通常意义上所说的过拟合现象。 通常意义上可以采用舍弃一部分特征的方法来避免过拟合,但是相对的会舍弃一些特征信息。当我们需要保留所有特征变量时,我们就会使用正则化的方法。在正则化过程中,我们将保留所有的特征变量,但是我们会减少参数的量级或者参数的大小。另一方面,通过正则化也可以有效地帮助我们简化模型。 二、代价函数 例如我们有100个特征,事实上我们很难预先知道哪些特征变量有较低的相关性,即缩小哪些参数。因此,以线性回归为例,我们在线性回归的代价函数后加上一个额外的正则化项来缩小每个系数的值,如下所示: \[J(\theta)=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^n\theta^2_j] \] λ不宜特别大。 三、线性规划的正则化 1.梯度下降法 在没有用正则化时,梯度下降法被用来去最小化代价函数,如下所示 \[\theta_j=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j(j

线性回归

假装没事ソ 提交于 2020-04-06 04:35:02
来自百度 在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。(这反过来又应当由多个相关的因变量预测的多元线性回归区别,[引文需要],而不是一个单一的标量变量。) 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。 在线性回归中,数据使用线性预测函数来建模,并且未知的模型参数也是通过数据来估计。这些模型被叫做线性模型。最常 用的线性回归建模是给定X值的y的条件均值是X的仿射函数。不太一般的情况,线性回归模型可以是一个中位数或一些其他的给定X的条件下y的条件分布的分位 数作为X的线性函数表示。像所有形式的回归分析一样,线性回归也把焦点放在给定X值的y的条件概率分布,而不是X和y的联合概率分布(多元分析领域)。 线性回归是回归分析中第一种经过严格研究并在实际应用中广泛使用的类型。这是因为线性依赖于其未知参数的模型比非线性依赖于其位置参数的模型更容易拟合,而且产生的估计的统计特性也更容易确定。

线性回归(regression)

一曲冷凌霜 提交于 2020-04-06 04:30:56
简介 回归分析只涉及到两个变量的,称一元回归分析。一元回归的主要任务是从两个相关变量中的一个变量去估计另一个变量,被估计的变量,称因变量,可设为Y;估计出的变量,称自变量,设为X。 回归分析就是要找出一个数学模型Y=f(X),使得从X估计Y可以用一个函数式去计算。 当Y=f(X)的形式是一个直线方程时,称为一元线性回归。这个方程一般可表示为Y=A+BX。根据最小平方法或其他方法,可以从样本数据确定常数项A与回归系数B的值。 线性回归方程 Target:尝试预测的变量,即目标变量 Input:输入 Slope:斜率 Intercept:截距 举例,有一个公司,每月的广告费用和销售额,如下表所示: 如果把广告费和销售额画在二维坐标内,就能够得到一个散点图,如果想探索广告费和销售额的关系,就可以利用一元线性回归做出一条拟合直线: 有了这条拟合线,就可以根据这条线大致的估算出投入任意广告费获得的销售额是多少。 评价回归线拟合程度的好坏 我们画出的拟合直线只是一个近似,因为肯定很多的点都没有落在直线上,那么我们的直线拟合的程度如何,换句话说,是否能准确的代表离散的点?在统计学中有一个术语叫做R^2(coefficient ofdetermination,中文叫判定系数、拟合优度,决定系数),用来判断回归方程的拟合程度。 要计算R^2首先需要了解这些: 总偏差平方和(又称总平方和,SST

【机器学习】线性回归LinearRegression原理以及系数推导

时间秒杀一切 提交于 2020-03-17 11:50:33
线性方程 y = w1x1 + w2x2 + … … + wnxn + b 令 W = (w1, w2 … … wn), X = (x1, x2, … … xn) 则 y = W * X ^ T + b 称 W 为回归系数, X 为特征向量, b 为截距 线性方程的推导 现有 m 个已知样本, 每个样本有 n 个特征记为 X1, X2, … … , Xn 每个X中都有 n 个 x 对应的标签记为: y1, y2, … … , ym ,且特征和标签成线性关系 此时只要求得 W 就可得到线性回归方程 ​ 将m个已知量带入方程会得到方程组: ​ y1 = W * X1 ^ T + b = w1x1_1 + w2x1_2 + … … + wnx1_n + b ​ y2 = W * X2 ^ T + b = w1x2_1 + w2x2_2 + … … + wnx2_n + b ​ … … ​ ym = W * Xm ^ T + b = w1xm_1 + w2xm_2 + … … + wnxm_n + b ​ 讨论: m > n 且无共线, 方程无解 ​ m = n 且无共线, 有且只有一个解 ​ m < n 无数个解 ​ 在实际生产环境中 m >> n (样本数远远大于特征维度), 所以上述方案行不通 最小二乘法 假设 W’ 和 b‘ 是最合适的, 得到假设出来的回归方程: W‘ * X ^

机器学习-线性回归

♀尐吖头ヾ 提交于 2020-03-10 05:17:01
机器学习-线性回归算法简单理解 一、基本含义 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布。 回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。 二、拟合方程 我们所采用的拟合方程为最小二乘法,可以计算出对于y=bx+a的直线。 可以计算出对于y=bx+a的直线。同时可以表示为y = x.T*w , x = [x0 x1].T , w = [b w].T; 三、损失函数 其原理为真实值与预测值的差值 实现过程 一、导入相关模块 import pandas as pd import matplotlib . pyplot as plt import numpy as np import random 二、生成数据集 x , y = [ ] , [ ] for i in range ( 1 , 100 ) : x . append ( [ 1 , 2 * ( i + random . uniform ( - 0.3 , 0.3 ) ) + 3 + random . random ( ) ] ) y .

多变量线性回归

☆樱花仙子☆ 提交于 2020-03-05 23:22:54
多变量梯度下降 与单变量线性回归类似,在多变量线性回归中,我们也构建一个代价函数,则这个代价函数是所有建模误差的平方和,即: 其中: 我们的目标和单变量线性回归问题中一样,是要找出使得代价函数最小的一系列参数。 多变量线性回归的批量梯度下降算法为: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X8w3rqUS-1583408307734)(https://i.loli.net/2020/01/07/r2BYEoxOdN5zbUA.png)] 我们开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。 Python 代码示例: def computeCost(X, y, theta): inner = np.power(((X * theta.T) - y), 2) return np.sum(inner) / (2 * len(X)) 梯度下降法实践1-特征缩放 在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛 以房价问题为例,假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0-2000平方英尺,而房间数量的值则是0-5,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

吴恩达-coursera-机器学习-week2

♀尐吖头ヾ 提交于 2020-03-03 18:30:57
四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 4.2 多变量梯度下降 4.3 梯度下降法实践1-特征缩放 4.4 梯度下降法实践2-学习率 4.5 特征和多项式回归 4.6 正规方程 4.7 正规方程及不可逆性(可选) 五、Octave教程(Octave Tutorial) 5.1 基本操作 5.2 移动数据 5.3 计算数据 5.4 绘图数据 5.5 控制语句:for,while,if语句 5.6 向量化 5.7 工作和提交的编程练习 第2周 四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征 参考视频: 4 - 1 - Multiple Features (8 min).mkv 目前为止,我们探讨了单变量/特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为 \(\left( {x_{1}},{x_{1}},...,{x_{n}} \right)\) 。 增添更多特征后,我们引入一系列新的注释: \(n\) 代表特征的数量 \({x^{\left( i \right)}}\) 代表第 \(i\) 个训练实例,是特征矩阵中的第i行,是一个向量(vector)。 比方说,上图的

转载:通俗理解线性回归

眉间皱痕 提交于 2020-02-17 11:22:47
0 什么是回归? 假设线性回归是个黑盒子,那按照程序员的思维来说,这个黑盒子就是个函数,然后呢,我们只要往这个函数传一些参数作为输入,就能得到一个结果作为输出。那回归是什么意思呢?其实说白了,就是这个黑盒子输出的结果是个连续的值。如果输出不是个连续值而是个离散值那就叫分类。那什么叫做连续值呢?非常简单,举个栗子:比如我告诉你我这里有间房子,这间房子有40平,在地铁口,然后你来猜一猜我的房子总共值多少钱?这就是连续值,因为房子可能值80万,也可能值80.2万,也可能值80.111万。再比如,我告诉你我有间房子,120平,在地铁口,总共值180万,然后你来猜猜我这间房子会有几个卧室?那这就是离散值了。因为卧室的个数只可能是1, 2, 3,4,充其量到5个封顶了,而且卧室个数也不可能是什么1.1, 2.9个。所以呢,对于ML萌新来说,你只要知道我要完成的任务是预测一个连续值的话,那这个任务就是回归。是离散值的话就是分类。(PS:目前只讨论监督学习) 1 线性回归 OK,现在既然已经知道什么是回归,那现在就要来聊一聊啥叫线性。其实这玩意也很简单,我们在上初中的时候都学过直线方程对不对?来来来,我们来回忆一下直线方程是啥? y = k x + b y=kx+b 喏,这就是初中数学老师教我们的直线方程。那上过初中的同学都知道,这个式子表达的是,当我知道k(参数)和b(参数)的情况下

传统机器学习-线性回归

匆匆过客 提交于 2020-02-15 06:07:01
目录 模型的定义 损失函数 梯度法 正规方程解 模型的定义 将m个样本,n个特征的训练集表示为: 对于线性回归,我们假设(为了方便起见,我们令 ) 其中 是待学习的参数, 即是我们取的n个特征,其中第一项 ,即是 表示截距。 损失函数 其中 , , 梯度法 , 用矩阵形式表示为 其中,括号中的三项均为标量,求 的导数,按 的形状来求解比较容易。 梯度 正规方程解 令 即是 不可逆,可能的原因: 1.列向量线性相关,即训练集中存在冗余特征,此时应该剔除掉多余特征; 2.特征过多,此时应该去掉影响较小的特征,或使用“正则化”。 当样本总数 m 小于等于特征数 n 时, 则一定不可逆。 来源: CSDN 作者: 一杯敬朝阳一杯敬月光 链接: https://blog.csdn.net/qq_xuanshuang/article/details/104309226

线性回归

一世执手 提交于 2020-02-10 10:57:09
美国房价问题 Alex经过一年的努力,终于拿到了美国波士顿麻省理工学院的研究生录取通知书,在远离家乡的地方上学,Alex想在波士顿买一套房子,他手头有一些积蓄,在网上找了几套自己满意的房子,但是又不敢相信网上的价格,人生地不熟的,Alex怕被宰,就从自己做数据分析的朋友Bachelor手里要到了过去几年一些有关波士顿房价的资料。 import numpy as np import pandas as pd import seaborn as sns import matplotlib . pyplot as plt house_prices = pd . read_csv ( "train.csv" ) Bachelor给的数据非常非常多,包含各个方面。 为了方便分析呢,先提取其中三个特征作为分析素材,分别是LotArea表示房屋面积,TotalBsmtSF表示地下室的总面积,SalePrice表示的就是房价了。 house_prices [ [ 'LotArea' , 'TotalBsmtSF' , 'SalePrice' ] ] 理工科出生的Alex想起了曾经学过的知识,想计算一下自己喜欢的那几套房子的大概房价是多少,到买房的时候心里好有点数。 于是他把数据重新处理了一下。 sample_test_data = house_prices [ [ 'LotArea' ,