线性回归方程

【cs229-Lecture11】贝叶斯统计正则化

这一生的挚爱 提交于 2020-02-10 07:53:58
本节知识点: 贝叶斯统计及规范化 在线学习 如何使用机器学习算法解决具体问题:设定诊断方法,迅速发现问题 贝叶斯统计及规范化(防止过拟合的方法) 就是要找更好的估计方法来减少过度拟合情况的发生。 回顾一下,线性回归中使用的估计方法是最小二乘法,logistic 回归是条件概率的最大 似然估计,朴素贝叶斯是联合概率的最大似然估计,SVM 是二次规划。 一下转自: http://52opencourse.com/133/coursera 斯坦福大学机器学习第七课"正则化“学习笔记,本次课程主要包括4部分: 1) The Problem of Overfitting(过拟合问题) 2) Cost Function(成本函数) 3) Regularized Linear Regression(线性回归的正则化) 4) Regularized Logistic Regression(逻辑回归的正则化) 以下是每一部分的详细解读。 1) The Problem of Overfitting(过拟合问题) 拟合问题举例-线性回归之房价问题: a) 欠拟合(underfit, 也称High-bias) b) 合适的拟合: c) 过拟合(overfit,也称High variance) 什么是过拟合(Overfitting): 如果我们有非常多的特征

线性回归方程推导

扶醉桌前 提交于 2020-02-09 13:25:28
https://blog.csdn.net/joob000/article/details/81295144 理论推导   机器学习所针对的问题有两种:一种是回归,一种是分类。回归是解决连续数据的预测问题,而分类是解决离散数据的预测问题。线性回归是一个典型的回归问题。其实我们在中学时期就接触过,叫最小二乘法。   线性回归试图学得一个线性模型以尽可能准确地预测输出结果。   先从简单的模型看起:   首先,我们只考虑单组变量的情况,有: 使得   假设有m个数据,我们希望通过x预测的结果f(x)来估计y。其中w和b都是线性回归模型的参数。   为了能更好地预测出结果,我们希望自己预测的结果f(x)与y的差值尽可能地小,所以我们可以写出代价函数(cost function)如下:   接着代入f(x)的公式可以得到:   不难看出,这里的代价函数表示的是预测值f(x)与实际值y之间的误差的平方。它对应了常用的欧几里得距离简称“欧氏距离”。基于均方误差最小化来求解模型的方法我们叫做“最小二乘法”。在线性回归中,最小二乘法实质上就是找到一条直线,使所有样本数据到该直线的欧式距离之和最小,即误差最小。   我们希望这个代价函数能有最小值,那么就分别对其求w和b的偏导,使其等于0,求解方程。   先求偏导,得到下面两个式子:   很明显,公式中的参数m,b,w都与i无关,简化时可以直接提出来

机器学习之线性回归

99封情书 提交于 2020-02-07 01:01:04
1.什么是线性回归 线性回归,首先要介绍一下机器学习中的两个常见的问题:回归任务和分类任务。那什么是回归任务和分类任务呢?简单的来说,在监督学习中(也就是有标签的数据中),标签值为连续值时是回归任务,标志值是离散值时是分类任务。 线性回归模型就是处理回归任务的最基础的模型。 线性回归模型试图学得一个线性模型以尽可能准确地预测实值X的输出标记Y。在这个模型中,因变量Y是连续的,自变量X可以是连续或离散的。 首先来了解一些字母的含义:m-训练集样本的数量;x-输入变量/特征;y-输出变量/要预测的目标变量;(x,y)-表示一个训练样本;( x ( i ) x^{(i)} x ( i ) , y ( i ) y^{(i)} y ( i ) )中i上标:表示第i个训练样本,即表示表格中的第i行; x 1 x_{1} x 1 ​ 、 x 2 x_{2} x 2 ​ 、… x n x_{n} x n ​ 表示特征向量,n表示特征向量的个数; h θ h_{\theta} h θ ​ (x)称为假设函数,h是一个引导从x得到y的函数; 举个简单的例子: 输入数据:工资( x 1 x_{1} x 1 ​ )和房屋面积( x 2 x_{2} x 2 ​ )(两个特征) 输出目标:预测银行会贷款多少钱(标签) 姓名 工资 房屋面积 可贷款金额 张三 6000 58 33433 李四 9000 77

线性回归推理

不羁岁月 提交于 2020-02-01 02:35:39
备注(第一次写博客,如有错误望指正) 认识线性回归 机器学习分为有监督学习和无监督学习,线性回归属于有监督学习。即需要特征X和标签Y,训练输入(特征X)与输出(标签Y)之间的映射函数。 此时有人肯定会想,什么是特征什么是标签?映射函数又是什么呢? 简单的线性函数 Y = w 1 * x 1 + w 0 * x 0 如果x0=1的话 Y = w 1 * x 1 + w 0 这样是不是很像一次方程y = k*x + b ?没错差不多就是一个意思。 上面就是我们一个很简单的线性函数了,但是对特征和标签还不是特别明白。没关系看下面表格 工资(X0) 年龄 (X1) 花呗额度(Y) 3000 22 1600 5000 26 4000 10000 30 8000 如表格所示工资和年龄这两样决定着花呗的额度,这里的工资和年龄就是我们需要的特征X0和X1,花呗额度就是我们最终的结果Y。 这样是不是就很显然了可以知道,线性回归就是寻找已经知道的条件工资X0和年龄X1与花呗额度Y之间的关系。这种关系就是由公式里的 w 所决定的。那这就有疑问了,如果是多个特征X呢?没关系,我们用特征向量X来表示。 这也就说明有多个w,那么也用特征向量 W 表示。 线性函数表示为 这里的h w (x) 也就是我们说的预测值,跟上面说的标签值性质相同。公式里的特征向量X和权重向量W都是列向量,所以才有最后的结果 h w

3.线性回归

醉酒当歌 提交于 2020-01-24 04:58:14
本文由中山大学In+ Lab整理完成,转载注明出处 团队介绍 传送门 一、序言 在统计学中,线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可。 二、正文 2.1单变量线性回归 线性回归最典型的一个实例就是预测房价,即房产总价与购买的房屋面积的关系,还可以用来预测买一个移动硬盘的价钱,即移动硬盘的总价和容量大小的关系,这是最简单的一元线性回归,也就是我们所说的单变量线性回归。多变量线性回归只是在单变量线性回归上的扩展,因此我们先来简单介绍一下单变量线性回归。 对于单变量线性回归,其函数模型可以表示为: 我们都知道,房价跟房屋面积肯定是正相关的,但是并不是成正比的,具体的房价受制于多种因素,但最主要的因素是面积,这是毋庸置疑的,移动硬盘也是同样的道理。所以我们可以暂且忽略其他因素,抓住主要矛盾,研究房价与面积的关系,移动硬盘价格和容量的关系。 我们举一个简单的例子来说明,如下为某市的一组不同房屋面积及其对应的房屋总价的数据: 先根据这些数据画出散点图如下:

R-4.多元线性回归

丶灬走出姿态 提交于 2020-01-21 00:41:59
在 相关关系 一文中,我们探讨了俩数值型变量的相关问题,其中相关系数可反映相关性大小和方向,相关性检验可验证相关系数的可靠性。 但很多时候,仅靠相关分析来研究变量关系是不够的,为了获得更精确的数量关系并进一步做一些推断,有必要引入新的模型方法。 回归分析可以说是最简单的统计模型,但简单并不意味着不好用,就我而言,通常会把线性回归作为一个基准,来对比其它模型的效果。 下面介绍一种常用的回归模型: 多元线性回归 引例 :R包一个自带数据集,50行5个变量,其中"Murder"作为本次实验的因变量,“Population”、“Illiteracy”、 "Income"和"Frost"作为自变量。 - 模型表达式 accurate_murder=b+k1 Population+k2 Illiteracy+k3 Income+k4 Frost - 参数估计 fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data = states) summary(fit) - 模型诊断 即使得到了参数估计的结果,也不是拿来就能用的,还需要进行一些统计检验,就多元线性回归而言,我们关注:a.多重共线性;b.残差的独立、正态、无自相关;c.回归系数的显著性;d.模型整体的显著性。 多重共线性 即解释变量间的相关性问题,因为都是数值型变量

线性回归:梯度下降

心不动则不痛 提交于 2020-01-19 05:51:29
目录: 1、什么是线性回归   1.1 理论模型   1.2 数据和估计 2、线性回归参数求解方法   2.1 直接求取参数   2.2 梯度下降法   2.3 随机梯度下降法 3、为什么选择最小二乘为评判标准   3.1 似然函数   3.2 求解极大似然函数   3.3 结论 1、什么是线性回归   线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。 1.1 理论模型   给一个随机样本 ,一个线性回归模型假设回归子 和回归量 之间的关系是除了X的影响以外,还有其他的变量存在。我们加入一个误差项 (也是一个随机变量)来捕获除了 之外任何对 的影响。所以一个多变量线性回归模型表示为以下的形式: 其他的模型可能被认定成非线性模型。一个线性回归模型不需要是自变量的线性函数。线性在这里表示 的条件均值在参数 里是线性的。例如:模型 在 和 里是线性的,但在 里是非线性的,它是 的非线性函数。 1.2 数据和估计   用矩阵表示多变量线性回归模型为下式:   其中 Y 是一个包括了观测值 的列向量, 包括了未观测的随机成份 以及回归量的观测值矩阵: 2、线性回归参数求解方法   

梯度下降求解线性回归

老子叫甜甜 提交于 2020-01-18 06:19:06
本文主要翻译自 An Introduction to Gradient Descent and Linear Regression ,原文写的通俗易懂,在文章最后还不忘推荐了一下吴恩达的 机器学习课程 。我不打算逐字逐句翻译,毕竟老外废话太多。 线性回归可以用最小二乘法直接求解。这里之所以选择线性回归的例子并用梯度下降求解,是为了阐明梯度下降算法的应用。 相关代码在 这里 。 简单来讲,线性回归的目的就是,对于一个给定的点集,找到一条直线对其进行拟合。考虑下图的数据: 假设我们要使用一条直线对上述点集进行拟合。首先使用标准的直线方程y = mx + b,其中m是斜率,b是y轴截距。为了找到最好的直线,我们需要确定最合适的m和b。 该类问题的标准解法是定义一个误差函数(error function)来度量什么样的拟合直线比较好。常用的误差函数如下所示: 其中,m,b分别是给定直线的斜率和y轴截距,这是一个以(m,b)为自变量的二元函数。python实现如下: # y = mx + b # m is slope, b is y-intercept def computeErrorForLineGivenPoints(b, m, points): totalError = 0 for i in range(0, len(points)): totalError += (points[i]

什么是回归分析?

我与影子孤独终老i 提交于 2020-01-16 01:50:26
回归分析(Regression Analysis)是一种统计学上分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。 一元线性回归分析 在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。 比方说有一个公司,每月的广告费用和销售额,如下表所示: 如果我们把广告费和销售额画在二维坐标内,就能够得到一个散点图,如果想探索广告费和销售额的关系,就可以利用一元线性回归做出一条拟合直线: 这条线是怎么画出来的 对于一元线性回归来说,可以看成Y的值是随着X的值变化,每一个实际的X都会有一个实际的Y值,我们叫Y实际,那么我们就是要求出一条直线,每一个实际的X都会有一个直线预测的Y值,我们叫做Y预测,回归线使得每个Y的实际值与预测值之差的平方和最小,即(Y1实际-Y1预测)^2+(Y2实际-Y2预测)^2+ …… +(Yn实际-Yn预测)^2的和最小。 现在来实际求一下这条线: 我们都知道直线在坐标系可以表示为Y=aX+b,所以(Y实际-Y预测)就可以写成(Y实际-(aX实际+b)),于是平方和可以写成a和b的函数。只需要求出让Q最小的a和b的值,那么回归线的也就求出来了。 参考:一元线性回归的细节 http://www.jianshu.com/p

python中常用的三种线性回归

偶尔善良 提交于 2020-01-15 05:48:30
from sklearn.linear_model import LinearRegression import numpy as np import matplotlib.pyplot as plt X = [[1],[4],[3]] #输入X y = [3,5,3] #输入y lr = LinearRegression().fit(X,y) z = np.linspace(0,5,20) plt.scatter(X,y,s=80) plt.plot(z, lr.predict(z.reshape(-1,1)),c='k')#reshape将z改为任意行,一列 plt.title('Straight Line') plt.show() print('\n\n直线方程为:') print('==============') print('y = {:.3f}'.format(lr.coef_[0]),'x','+{:.3f}'.format(lr.intercept_)) print('==============') from sklearn.datasets import make_regression from sklearn.linear_model import LinearRegression import numpy as np import matplotlib