线性回归方程

线性回归

北战南征 提交于 2019-12-02 02:34:32
0. 概述 线性回归应该是我们听过次数最多的机器学习算法了。在一般的统计学教科书中,最后都会提到这种方法。因此该算法也算是架起了数理统计与机器学习之间的桥梁。线性回归虽然常见,但是却并不简单。该算法中几乎包含了所有有监督机器学习算法的重要知识点,比如数据的表示、参数的训练、模型的评价、利用正则化防止过拟合等概念。所以说如果掌握了线性回归,可以为后面的学习打下坚实的基础。 1. 线性回归的基本形式 最简单的线性回归就是直接利用一条直线拟合二维平面上的一系列点,目的是利用这条直线概括所有训练集中样本的散布规律或趋势,最终用于新样本点的预测。二维平面上直线方程的一般形式为 y = a x + b y=ax+b,使用训练集中的数据以某种方式训练该模型后,就可以确定方程中的两个参数 a , b a,b的最优值。后面如果观察到了新的样本 x i xi,就可以带入上面学习到的公式计算 y y的值了。 在三维空间中,需要学习的是确定一个二维平面的参数; 以此类推,在 n n维空间中,需要学习的是确定一个 n − 1 n−1维的超平面的参数. 之所以称该方法为线性模型,是因为该模型是 由所有特征的线性组合构成 的,基本形式为: 式子(1-2)表示所有样本值的矩阵与对应参数向量的乘积,属于矩阵乘法((Matrix multiplication)。 具体可以参考我的另一篇博客 【机器学习

吴恩达机器学习_57线性回归的正则化

微笑、不失礼 提交于 2019-11-30 12:25:09
对于线性回归,我们已经推导了两种算法:(1)基于梯度下降(2)基于正规方程 (1)将 梯度下降法 运用到 线性回归正则化 常规的梯度下降法(将θ_0分离出来,因为之后对梯度下降法进行修改时会对θ_0区别对待): 用正则化对梯度下降法进行修改: 每次迭代时,都将θ_j乘以一个比1略小的数,然后进行和之前一样的操作 ,从而达到对代价函数的梯度下降 (2)将正规方程法运用到线性回归正则化 来源: https://www.cnblogs.com/vzyk/p/11585624.html

机器学习笔记[保持更新]

两盒软妹~` 提交于 2019-11-30 06:36:13
机器学习笔记[入门版] 本文是吴恩达《机器学习》的笔记,由于课程内容较为基础,所以本文对于许多数学知识有些欠缺 多变量线性回归 非线性函数线性化 这种情况下,特征的缩放就变得很重要(因为在平方甚至立方的情况下,特征的值会放大很多) 也不一定只要平方,开方也可以: 正规方程 相比梯度下降法,可以更快地获得最优解。 正规方程法更适合于较小型的问题,而梯度下降法适用于更大的数据集 正规方程不需要缩放特征 每个特征列在开头补上一个1然后转置,计算的公式是: 如果X^tX不可逆怎么办? 整体来说,这种情况还是比较少的 pinv()指令能在矩阵不可逆的情况下也求解出正确答案 需要求解的特征量大于样本数时也会造成问题。 解决不可逆问题的办法: 删除线性相关的变量 当特征数量太多时,删除一些特征,或者使用正规化方法 向量化 多使用内置函数库(老师的意思是自己造轮子比不上人家的2333) 左图是自己写的循环,右图是调用向量相乘的方法。右图由于使用了内置的乘法,效率比自己写的要高 C++也有这种,线性运算的库 再复杂一点的情况也是,向量化之后慢慢处理 Logistic回归 依然是在机器学习中常用的一种算法 线性规划在分类问题中的表现一般不太好 线性规划设置阈值的方法在分类中不好使 Logistic回归是一种分类算法,和回归分析没关系,这个名字有点问题,是历史遗留问题 Sigmoid function

Python3入门机器学习 经典算法与应用(网盘免费分享)

瘦欲@ 提交于 2019-11-30 03:37:42
Python3入门机器学习 经典算法与应用(网盘免费分享) 部分课程学习资料截图: 免费课程资料领取目录: Python Flask构建微信小程序订餐系统 (网盘免费分享) Python分布式爬虫必学框架Scrapy打造搜索引擎(网盘免费分享) Python3实战Spark大数据分析及调度 (网盘免费分享) Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享) 链接:https://pan.baidu.com/s/1rB7h53iNOweyqWTZXQv4cg 提取码:o9el ps:免费分享,如若链接失效请加群( 注意是免费免费免费分享 ) 私聊管理员即可免费领取;群——517432778,点击加群,或扫描二维码 第1章 欢迎来到 Python3 玩转机器学习 欢迎大家来到《Python3玩转机器学习》的课堂。在这个课程中,我们将从0开始,一点一点进入机器学习的世界。本门课程对机器学习领域的学习,绝不不仅仅只是对算法的学习,还包括诸如算法的评价,方法的选择,模型的优化,参数的调整,数据的整理,等等一系列工作。准备好了吗?现在开始我们的机器学习之旅!... 1-1 什么是机器学习 试看 1-2 课程涵盖的内容和理念 试看 1-3 课程所使用的主要技术栈 试看 第2章 机器学习基础 机器学习到底是什么鬼?这一章将带领大家深入理解机器学习的世界

11. 线性回归

安稳与你 提交于 2019-11-29 11:53:21
文章目录 线性回归 sklearn中的线性回归 房屋价格预测 线性回归 线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。 sklearn中的线性回归 sklearn.linear_model.LinearRegression() 参数 说明 fit_intercept 布尔型参数,表示是否计算该模型截距。可选参数。 normalize 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。 copy_X 布尔型参数,若为True,则X将被复制,否则将被覆盖。可选参数,默认值为True。 n_jobs 整型参数,表示用于计算的作业数量;若为-1,则用所有的CPU。可选参数。默认值为1。 linear.fit(X,y, sample_weight=None) 参数 说明 X 训练向量 y 相对于X的目标向量 sample_weight 分配给各个样本的权重数组,一般不需要使用,可省略。 房屋价格预测 import numpy as np import

线性回归、损失函数和梯度

风格不统一 提交于 2019-11-29 04:52:16
实例 首先举个例子,假设我们有一个二手房交易记录的数据集,已知房屋面积、卧室数量和房屋的交易价格,如下表: 假如有一个房子要卖,我们希望通过上表中的数据估算这个房子的价格。这个问题就是典型的回归问题,这边文章主要讲回归中的线性回归问题。 线性回归(Linear Regression) 首先要明白什么是回归。回归的目的是通过几个已知数据来预测另一个数值型数据的目标值。假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就是要预测的目标值。这一计算公式称为回归方程,得到这个方程的过程就称为回归。 线性回归就是假设这个方式是一个线性方程,即假设这个方程是一个多元一次方程。以咱们上面提到的例子为例:假设房子的房屋面积和卧室数量为自变量x,用x1表示房屋面积,x2表示卧室数量;房屋的交易价格为因变量y,我们用h(x)来表示y。假设房屋面积、卧室数量与房屋的交易价格是线性关系。他们满足公式 上述公式中的θ为参数,也称为权重,可以理解为x1和x2对h(x)的影响度。对这个公式稍作变化就是 公式中θ和x是向量,n是样本数。 假如我们依据这个公式来预测h(x),公式中的x是我们已知的,然而θ的取值却不知道,只要我们把θ的取值求解出来,我们就可以依据这个公式来做预测了。 那么如何依据训练数据求解θ的最优取值呢?这就牵扯到另外一个概念: 损失函数

2.线性回归

☆樱花仙子☆ 提交于 2019-11-28 07:10:57
(一)简单线性回归 和之前介绍的KNN不同,KNN主要是解决分类问题,而线性回归顾名思义显然是用来解决回归问题的。线性回归具有如下特征: 解决回归问题 思想简单,实现容易 许多强大的非线性模型的基础,比如逻辑回归、多项式回归、svm等等 结果具有很好的可解释性 蕴含机器学习中的很多重要思想 图中是房屋的面积与价格之间的对应关系,不同的面积对应不同的价格,由此在二维平面中便形成了多个点。我们的目的就是要找到一条直线,最大程度上来拟合这些点。 但是在之前的KNN,分类问题中,横轴和纵轴都是样本的特征,而标签则是由这个点是红色还是蓝色决定的。 但是在线性回归中,由于是房产数据,我们必须要预测出一个具体的数值,而不能像分类问题那样,用简单的颜色来代表类别。而这些数据显然是在一个连续的样本空间中,因此需要一个坐标轴来表示。也正因为如此,在二维平面中只能有一个特征,要是多个特征,我们就要更高的维度上进行观察了。 如果样本的特征只有一个,我们称之为简单线性回归 我们的目的是要找到一个直线来尽可能多的拟合这些点,而在二维平面上显然是y = ax + b,那么每一个样本x,都会有一个真实值y和用拟合曲线预测出来的预测值ŷ,因此我们的真实值和预测值就会有一个差距 既然有真实值和预测值,那么评价一个直线的拟合程度,就看所有样本的真实值和预测值之差。如果只是简单的相减,那么两者之差可能有正有负,会抵消掉

线性回归模型的sklearn实现

本秂侑毒 提交于 2019-11-28 04:04:54
关于线性回归模型的知识总结,请参见 这里 。此处主要介绍线性模型的相关算法在sklearn中的实现: 一、线性回归(最小二乘法) from sklearn.linear_model import LinearRegression X, y = mglearn.datasets.make_wave(n_samples=60)#导入数据 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) lr = LinearRegression().fit(X_train, y_train)#拟合模型 print("lr.coef_: {}".format(lr.coef_))#输出系数(斜率) print("lr.intercept_: {}".format(lr.intercept_))#输出截距(偏移量) #准确率(模型效果) print("Training set score: {:.2f}".format(lr.score(X_train, y_train))) print("Test set score: {:.2f}".format(lr.score(X_test, y_test))) #用训练好的模型求新数据的值 lr.predict(X_test) 二、岭回归

sklearn+python:线性回归

为君一笑 提交于 2019-11-28 04:02:49
使用一阶线性方程预测波士顿房价 载入的数据是随sklearn一起发布的,来自boston 1993年之前收集的506个房屋的数据和价格。load_boston()用于载入数据。 from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split import time from sklearn.linear_model import LinearRegression boston = load_boston() X = boston.data y = boston.target print( "X.shape:{}. y.shape:{}" .format(X.shape, y.shape)) print( 'boston.feature_name:{}' .format(boston.feature_names)) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= 0.2 , random_state= 3 ) model = LinearRegression() start = time.clock() model.fit(X_train, y_train) train

sklearn线性回归详解

心已入冬 提交于 2019-11-28 04:01:54
图片若未能正常显示,点击下面链接: http://ihoge.cn/2018/Logistic-regression.html 在线性回归中,我们想要建立一个模型,来拟合一个因变量 y 与一个或多个独立自变量(预测变量) x 之间的关系。 给定: 数据集 { ( x ( 1 ) , y ( 1 ) ) , . . . , ( x ( m ) , y ( m ) ) } { ( x ( 1 ) , y ( 1 ) ) , . . . , ( x ( m ) , y ( m ) ) } //--> x i x i //--> 是d-维向量 X i = ( x ( i ) 1 , . . . , x ( i ) d ) X i = ( x 1 ( i ) , . . . , x d ( i ) ) //--> y ( i ) y ( i ) //--> 是一个目标变量,它是一个标量 线性回归模型可以理解为一个非常简单的神经网络: 它有一个实值加权向量 w = ( w ( i ) , . . . , w ( d ) ) w = ( w ( i ) , . . . , w ( d ) ) //--> 它有一个实值偏置量 b 它使用恒等函数作为其激活函数 线性回归模型可以使用以下方法进行训练 a) 梯度下降法 b) 正态方程(封闭形式解) : w = ( X T X ) − 1 X T y w