线性回归

为什么说逻辑回归实质是最大似然估计,而线性回归实质是最小二乘法?

╄→гoц情女王★ 提交于 2020-01-11 14:34:56
根据已知特征值X和标签结果Y,我们利用线性回归模型(为了简化,作者以一元线性回归为例说明)可以得出 y i ^=wx i +b。 损失函数:loss=Σ(y i -y i ^) 2 ,为了得到更加准确的拟合模型,我们的目标就转化为使损失函数loss最小,即: argmin loss=argmin Σ(y i -y i ^) 2 =argmin Σ(y i -wx i -b) 2 这里就是大家比较熟悉的最小二乘法(即最小化误差平方和)。 因此线性回归其实质就是利用最小二乘法去计算各种参数(w,b)。 但是对于逻辑回归,为什么不能用最小二乘法了呢? 我们知道逻辑回归,同线性回归一样,可以计算预测值: y i ^=wx i +b 但是对于逻辑回归的标签结果是0或者1,如何使二者能够发生关联呢,有一种神奇的激活函数就是Sigmoid函数,可以将变量转化为0或者1, sigmoid函数表示: f(z)=1/(1+e -z ),因此,可以转化为 f(x)=1/(1+e -(wx+b) ) 。这时也许你想, 同样loss=Σ(y i -f(x i )) 2 这样我们就可以像线性回归那样,利用最小二乘法去计算参数值了。 可是好事多磨啊,要想得到一个最小二乘的最优解,这个函数最好是凸函数 (为什么说最好是呢,其实不是凸函数,也能求得部分解,但不能保证是最优解,可能是一些鞍点) (什么是凸函数

线性回归与特征归一化(feature scaling)

风格不统一 提交于 2020-01-11 03:41:43
转自:数据标准化/归一化normalization 这里主要讲连续型特征归一化的常用方法。离散参考[ 数据预处理:独热编码(One-Hot Encoding) ]。 基础知识参考: [ 均值、方差与协方差矩阵 ] [ 矩阵论:向量范数和矩阵范数 ] 数据的标准化(normalization)和归一化 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。 目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。 归一化的目标 1 把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。 2 把有量纲表达式变为无量纲表达式 归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 +

Python 线性回归(Linear Regression) 基本理解

爱⌒轻易说出口 提交于 2020-01-08 23:53:53
背景 学习 Linear Regression in Python – Real Python ,对线性回归理论上的理解做个回顾,文章是前天读完,今天凭着记忆和理解写一遍,再回温更正。 线性回归(Linear Regression) 刚好今天听大妈讲机器学习,各种复杂高大上的算法,其背后都是在求”拟合“。 线性回归估计是最简单的拟合了。也是基础中的基础。 依然是从字面上先来试着拆解和组合: 首先, Regression 回归,指的是研究变量之间的关系,这个由来在 Python 线性回归(Linear Regression) - 到底什么是 regression? 一文中讲多了,这里不多重复。 然后, linear 线性,很直观:直线。 二者连在一起,便是:变量之间呈直线关系。 那具体是哪些变量之间? 因变量 y 和 自变量 (x1...xr) 之间。 𝑦 = 𝛽₀ + 𝛽₁𝑥₁ + ⋯ + 𝛽ᵣ𝑥ᵣ + 𝜀 当只有一个 x1 的时候,就是最简单的线性回归 𝑦 = 𝛽₀ + 𝛽₁𝑥₁ 。 具体怎么理解这个公式呢? 举个简化的例子:员工的工资 y 与 学历 x 的关系。 假设学历越高,工资也越高,二者是某种程度上的线性关系, 那在 理论上 会存在这么一个公式 y = 𝛽₀ + 𝛽₁𝑥 ,其中,x1...xn, y1...yn: x 和 y 的数据很容易拿到(当然合法渠道了,假设你是

Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)

穿精又带淫゛_ 提交于 2020-01-08 04:58:55
本笔记为 Coursera在线课程 《Machine Learning》中的单变量线性回归章节的笔记。 2.1 模型表示 参考视频 : 2 - 1 - Model Representation (8 min).mkv 本课程讲解的第一个算法为 " 回归算法 " ,本节将要讲解到底什么是 Model 。下面,以一个房屋交易问题为例开始讲解,如下图所示(从中可以看到监督学习的基本流程)。 所使用的数据集为俄勒冈州波特兰市的住房价格,根据数据集中的不同房屋尺寸所对应的出售价格,绘制出了数据集;假如,现在有朋友想要出售自己的房子,例如,大小是 1250 平方尺,你需要告诉他,这个房子可以买到多少钱?你可以做的一件事情是,构造一个模型,从数据模型来看,也许是条直线,然后,你可以告诉你的朋友,他的房子大概可以卖到 220000 美元。这就是一个监督学习方法的例子,因为,我们对数据集中的每个样本都给出了 " 正确答案 "( 对于某一尺寸的房子来说,我们给出了该房子的正确售价 ) 。更加具体地讲,这是一个 回归问题 , " 回归 " 一词是指,根据之前的数据预测出一个准确的输出值。还有另外一种监督学习方法,叫做 分类问题 ,例如,如果我们正在寻找癌症肿瘤并想要确定肿瘤是良性的还是恶性的,这就是 0/1 离散输出问题。 更进一步来说,在监督学习中,我们有一个数据集,这个数据集被称为 训练集

Python 线性回归(Linear Regression) - 到底什么是 regression?

跟風遠走 提交于 2020-01-06 16:38:50
背景 学习 Linear Regression in Python – Real Python ,对 regression 一词比较疑惑. 这个 linear Regression 中的 Regression 是什么意思,字面上 Regression 是衰退的意思,线性衰退?相信理解了这个词,对线性回归可能印象深刻些。 Regression 到底是什么意思 搜了一番,原来是为了纪念生物统计学家高尔顿的发现,他是达尔文的表兄,一直想从进化论来研究为何人各有不同。 他的一个重大发现是,父母的身高与子女的身高之间有某种关系。 平时生活中我们也经常纳闷,为啥有的父母个子都很高,子女却比较矮,相反,有的父母都很矮,孩子却很高。高尔顿的解释是,子代的平均身高向中心回归了。正是这种子代身高向同龄人平均身高回归的趋势,使得人类身高没有两极分化。 所以他用“回归”这个词来描述父辈身高 y 和子代身高 x 之间的关系。 还有一个有趣的解释,是从词源来解,regression 中: "re" :向后,往回,相反,相对 gress = walk, 走 ion :表名词:行动,状态等 回归分析中的“回归”是什么意思? - 我是观察员的回答 - 知乎 这个答案用炒菜来比喻,很有意思: 炒菜的体验。假设你炒西红柿鸡蛋,要放盐等调料才觉得好吃,你放了一小撮,不够,再加点,结果多了;那就加点水,味道淡了

一元线性回归模型系数、方差估计、检验回归效果显著性,b的置信区间,Y约为X的指数函数时,求Y关于x的回归方程

梦想与她 提交于 2020-01-04 00:17:20
y = a ^ + b ^ x y=\hat a + \hat b x y = a ^ + b ^ x S x y = ( x 1 y 1 + x 2 y 2 + . . . + x n y n ) − ( x 1 + x 2 + . . . + x n ) ( y 1 + y 2 + . . . + y n ) n S_{xy}=(x_1y_1+x_2y_2+...+x_ny_n)-\frac{(x_1+x_2+...+x_n)(y_1+y_2+...+y_n)}{n} S x y ​ = ( x 1 ​ y 1 ​ + x 2 ​ y 2 ​ + . . . + x n ​ y n ​ ) − n ( x 1 ​ + x 2 ​ + . . . + x n ​ ) ( y 1 ​ + y 2 ​ + . . . + y n ​ ) ​ S x x = ( x 1 2 + x 2 2 + . . . + x n 2 ) − ( x 1 + x 2 + . . . + x n ) 2 n S_{xx}=(x_1^2+x_2^2+...+x_n^2)-\frac{(x_1+x_2+...+x_n)^2}{n} S x x ​ = ( x 1 2 ​ + x 2 2 ​ + . . . + x n 2 ​ ) − n ( x 1 ​ + x 2 ​ + . . . + x n ​ )

线性回归——最大似然函数

こ雲淡風輕ζ 提交于 2019-12-30 20:46:04
似然函数    似然函数 与概率非常类似但又有根本的区别,概率为在某种条件(参数)下预测某事件发生的可能性;而似然函数与之相反为已知该事件的情况下 推测出该事件发生时的条件(参数) ;所以似然估计也称为参数估计,为参数估计中的一种算法; 下面先求抛硬币的似然函数,然后再使用似然函数算出线性回归的参数;   假如有一枚硬币我们现在不知道它是否为正常硬币(正反面出现概率各位50%),所以想通过抛10次然后通过硬币正反面出现的概率分布判断该硬币是否正常;当抛完10次时出现5次正面向上、5次反面向上,正反面出现的概率符合正常硬币的预期,这时我们可以判断该硬币是正常的;   抛硬币符合二项分布所以下面计算出概率分布情况:      如图:          上图中x轴为正面出现的次数,y轴为上述函数的结果   上面式子中w为正反面出现的比例,y为正面出现的次数; 使用最大似然法求硬币问题   似然函数为知道了结果求条件,概率问题为知道了条件求概率,在这个问题中就是知道了硬币是正常的,求正反面出现的比例w为何值时该结果最靠谱;所以似然函数等于:        函数左边的值并非条件概率中的条件而是该函数的依赖值,似然函数L为在给定结果y的情况下参数w的取值情况,概率函数L为知道了参数w求得y的取值;有了抛硬币情况的概率分布这里就可以给出 似然函数 :     

线性回归的模型保存与加载

不想你离开。 提交于 2019-12-27 14:03:21
十一、模型的保存和加载 1.sklearn模型的保存和加载api from sklearn.externals import joblib 保存:joblib.dump(estimator,‘test.pkl’) 加载:estimator = joblib.load(‘test.pkl’) 2.线性回归的模型保存和加载案例 def load_dump_demo ( ) : ''' 模型保存和加载 ''' # 1.获取数据 data = load_boston ( ) # 2.数据集划分 x_train , x_test , y_train , y_test = train_test_split ( data . data , data . target , random_state = 22 ) # 3.特征工程-标准化 transfer = StandardScaler ( ) x_train = transfer . fit_transform ( x_train ) x_test = transfer . fit_transform ( x_test ) # 4.机器学习-线性回归(岭回归) # # 4.1 模型训练 # estimator = Ridge(alpha=1) # estimator.fit(x_train, y_train) # # # 4.2 模型保存 #

【机器学习】算法原理详细推导与实现(二):逻辑回归

大城市里の小女人 提交于 2019-12-26 23:44:30
【机器学习】算法原理详细推导与实现(二):逻辑回归 在上一篇算法中,线性回归实际上是 连续型 的结果,即 \(y\in R\) ,而逻辑回归的 \(y\) 是离散型,只能取两个值 \(y\in \{0,1\}\) ,这可以用来处理一些分类的问题。 logistic函数 我们可能会遇到一些分类问题,例如想要划分 鸢尾花 的种类,尝试基于一些特征来判断鸢尾花的品种,或者判断上一篇文章中的房子,在6个月之后能否被卖掉,答案是 是 或者 否 ,或者一封邮件是否是垃圾邮件。所以这里是 \(x\) ,这里是 \(y\) 在一个分类问题中, \(y\) 只能取两个值0和1,这就是一个二元分类的问题,如下所示: 可以使用线性回归对以上数值进行划分,可以拟合出如下那么一条线,用 \(y=0.5\) 作为临界点,如果 \(x\) 在这个临界点的右侧,那么 \(y\) 的值就是1,如果在临界点的左侧,那么 \(y\) 的值就是0,所以确实会有一些人会这么做,用线性回归解决分类问题: 线性回归解决分类问题,有时候它的效果很好,但是通常用线性回归解决像这样的分类问题会是一个很糟糕的主意,加入存在一个额外的训练样本 \(x=12\) ,如果现在对这个训练集合做线性拟合,那么可能拟合出来那么一条直线: 这时候 \(y\) 的临界点估计已经不太合适了,可以知道线性回归对于分类问题来说,不是一个很好的方法。 假设

机器学习——预测数值型数据:回归

我的未来我决定 提交于 2019-12-26 22:35:49
线性回归 优点 :结果易于理解,计算上不复杂 缺点 :对非线性的数据拟合不好 适用数据类型 :数值型和标称型数据 回归 的目的就预测数值型的目标值。最直接的办法就是依据输入写一个目标值的计算公式。这个计算公式就是所谓的 回归方程(regression equation) ,其中的参数就是 回归系数 ,求这些回归系数的过程就是 回归 。   说道回归,一般都是指 线性回归(linear regression) 。 给定由 d个属性 描述的示例 ,其中xi是x在第i个属性上的取值, 线性模型 试图学得一个通过属性组合来进行预测的函数,即    一般用 向量形式 写成    其中w={w1;w2;...;wd},w和b学得之后,模型就得以确定。 更加一般的情况 是,给定一个数据集 ,其中 ,“线性回归”试图学得一个线性模型以尽可能准确地预测实值输出标记。 用 向量形式 写成    ,这称为 “多元线性回归” 因为是 d维的特性 ,那么w就是一个由回归系数组成的 d×1维向量 ,X 是 n×(d+1)的矩阵(第一列元素都是1,其余列都是x1...xn) , 是 (d+1)×1的向量    此时, 平方误差 (由于误差有正有负,所以不能直接相加)可以表示成    ,其中 需要使得 平方误差最小 ,就需要对其求导,并另求导后的式子等于0,求出    而这个使得 平方误差最小 的算法就称为