机器学习(三)—线性回归、逻辑回归、Softmax回归 的区别
1、什么是回归?
是一种监督学习方式,用于预测输入变量和输出变量之间的关系,等价于函数拟合,选择一条函数曲线使其更好的拟合已知数据且更好的预测未知数据。
2、线性回归
于一个一般的线性模型而言,其目标就是要建立输入变量和输出变量之间的回归模型。该模型是既是参数的线性组合,同时也是输入变量的线性组合。

最小二乘法,代价函数(平方误差代价函数,加1/2是为了方便求导):
这里使用基函数(basis function)对上面的线性模型进行拓展,即:线性回归模型是一组输入变量x的非线性基函数的线性组合。
(相当于SVM里面的核函数— 线性核、多项式核、高斯核、sigmoid核)
梯度下降法:
(1) 批处理梯度下降法:每次对全部训练数据进行求导后更新参数,能求得最优解;
(2) 增量梯度下降法:每扫描一个训练样本就更新参数,快,训练集很大时选择。
正规方程组求解(The normal equations):直接令代价函数对参数求导为0:
步长(学习率)的选择:过小,迭代次数非常高;过大,越过最小值无法收敛。0.01,0.03,0.1,0.3,1,3,10
特征值归一化:多维特征时,需要确保特征的取值范围在相同的尺度内计算过程才会收敛,常用方法有(1) (X- mean(X))/std(X);(2) (X - min) / (max - min)。
3、逻辑回归
目的:从训练数据特征学习出一个0/1分类模型。
预测函数:
优点:计算代价不高,易于理解和实现;缺点:容易欠拟合,分类精度不高
观测值的概率:
损失代价函数:
4. Softmax回归模型
当多分类问题时,logistic推广为softmax.
假设函数:
损失函数:
为了解决softmax回归的参数冗余带来的数值问题,可以加入权重衰减项
5. 过拟合和欠拟合如何产生,如何解决?
欠拟合:根本原因是特征维度过少,导致拟合的函数无法满足训练集,误差较大;解决方法:增加特征维度;
过拟合:根本原因是特征维度过大,导致拟合的函数完美的经过训练集,但对新数据的预测结果差。解决方法:(1)减少特征维度;(2)正则化,降低参数值。
减少过拟合总结:过拟合主要是有两个原因造成的:数据太少+模型太复杂
(1)获取更多数据 :从数据源头获取更多数据;数据增强(Data Augmentation) :数据增强,常用的方式:上下左右翻转flip,旋转图像,平移变换,随机剪切crop图像,图像尺度变换,改变图像色差、对比度,仿射变换,扭曲图像特征,增强图像噪音(一般使用高斯噪音,盐椒噪音)等
(2)使用合适的模型:减少网络的层数、神经元个数等均可以限制网络的拟合能力;
(3)dropout
(3)正则化,在训练的时候限制权值变大;
(4)限制训练时间;通过评估测试;
(4)增加噪声 Noise: 输入时+权重上(高斯初始化)
(5)结合多种模型: Bagging用不同的模型拟合不同部分的训练集;Boosting只使用简单的神经网络;
6、逻辑回归和线性回归区别
1)线性回归要求变量服从正态分布,logistic回归对变量分布没有要求。
2)线性回归要求因变量是连续性数值变量,而logistic回归要求因变量是分类型变量。
3)线性回归要求自变量和因变量呈线性关系,而logistic回归不要求自变量和因变量呈线性关系
4)因变量不同:logistic回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接分析因变量与自变量的关系
Logistic Regression最大的特点就是将函数值收缩到[0,1]这个范围。
注意:能和逻辑斯蒂回归进行比较的就是牛逼闪闪的线性SVM了。大概意思是:直接用线性回归做分类因为考虑到了所有样本点到分类决策面的距离,所以在两类数据分布不均匀的时候将导致误差非常大;逻辑斯蒂回归回归和SVM克服了这个缺点,前者采用将所有数据采用sigmod函数进行了非线性映射,使得远离分类决策面的数据作用减弱;后者则直接去掉了远离分类决策面的数据,只考虑支持向量的影响。
机器学习(三)—线性回归、逻辑回归、Softmax回归 的区别的更多相关文章
- 【分类器】感知机+线性回归+逻辑斯蒂回归+softmax回归
一.感知机 详细参考:https://blog.csdn.net/wodeai1235/article/details/54755735 1.模型和图像: 2.数学定义推导和优化: 3.流程 ...
- 机器学习之线性回归---logistic回归---softmax回归
在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...
- Softmax回归 softMax回归与logistic回归的关系
简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分 ...
- 机器学习 —— 基础整理(五)线性回归;二项Logistic回归;Softmax回归及其梯度推导;广义线性模型
本文简单整理了以下内容: (一)线性回归 (二)二分类:二项Logistic回归 (三)多分类:Softmax回归 (四)广义线性模型 闲话:二项Logistic回归是我去年入门机器学习时学的第一个模 ...
- 【机器学习基础】逻辑回归——LogisticRegression
LR算法作为一种比较经典的分类算法,在实际应用和面试中经常受到青睐,虽然在理论方面不是特别复杂,但LR所牵涉的知识点还是比较多的,同时与概率生成模型.神经网络都有着一定的联系,本节就针对这一算法及其所 ...
- 机器学习——softmax回归
softmax回归 前面介绍了线性回归模型适用于输出为连续值的情景.在另一类情景中,模型输出可以是一个像图像类别这样的离散值.对于这样的离散值预测问题,我们可以使用诸如 softmax 回归在内的分类 ...
- 02-13 Softmax回归
目录 Softmax回归 一.Softmax回归详解 1.1 让步比 1.2 不同类之间的概率分布 1.3 目标函数 1.4 目标函数最大化 二.Softmax回归优缺点 2.1 优点 2.2 缺点 ...
- 利用TensorFlow识别手写的数字---基于Softmax回归
1 MNIST数据集 MNIST数据集主要由一些手写数字的图片和相应的标签组成,图片一共有10类,分别对应从0-9,共10个阿拉伯数字.原始的MNIST数据库一共包含下面4个文件,见下表. 训练图像一 ...
- Stanford大学机器学习公开课(三):局部加权回归、最小二乘的概率解释、逻辑回归、感知器算法
(一)局部加权回归 通常情况下的线性拟合不能很好地预测所有的值,因为它容易导致欠拟合(under fitting).如下图的左图.而多项式拟合能拟合所有数据,但是在预测新样本的时候又会变得很糟糕,因为 ...
随机推荐
- 解决windows server 2003不识别移动硬盘
解决windows server2003不显示移动硬盘的问题: 1.进入命令提示符环境(也就是DOS) 2.进入DISKPART程序 3.输入AUTOMOUNT ENABLE指令 4.输入OK 下次U ...
- Python2 和 Python3 区别汇总
[Python2 和 Python3 的区别汇总,不定期补充] print 在进行程序调试时用得最多的语句可能就是 print,在 Python 2 中,print 是一条语句,而 Python3 中 ...
- Linux中的自定义变量
范围: 只在当前Shell中生效 语法: 变量定义: name="xiaol" hello="$name"" hello" 变量调用: ec ...
- ApexSQL Recover 恢复一个被drop的表的数据
没有备份的情况下恢复一个被drop的表的数据 ApexSQL Recover 恢复一个被drop的表的数据 转自:https://solutioncenter.apexsql.com/zh/%E6%B ...
- Oracle学习笔记—数据库,实例,表空间,用户、表之间的关系
之前一直使用的关系型数据库是Mysql,而新公司使用Oracle,所以最近从网上搜集了一些资料,整理到这里,如果有不对的地方,欢迎大家讨论. 基本概念: 数据库:Oracle 数据库是数据的物理存储. ...
- boost之字符串与文本处理
C++标准库中字符串转数值使用函数atoi(),数值转字符串使用printf系列函数. boost中使用转换函数操作符lexical_cast<>进行转换,实际上是模板函数.自定义类型,要 ...
- springboot 项目跨域问题 CORS
package com.example.demo.cors; import org.springframework.context.annotation.Bean; import org.spring ...
- Linux 路径与命令搜寻顺序
以相对/绝对路径运行命令,例如『 /bin/ls 』或『 ./ls 』: 由 alias 找到该命令来运行: 由 bash 内建的 (builtin) 命令来运行: 透过 $PATH 这个变量的顺序搜 ...
- JAVA使用DES加密解密
在使用DES加密解密的时候,遇到了一些问题,廖记一下.如有哪位大神亲临留言指点,不胜感激. 先上代码: public DESUtil() { } //密码,长度要是8的倍数 注意此处为简单密码 简单应 ...
- 使用BUCK进行iOS项目打包
关于BUCK BUCK是Facebook开源的快速打包工具,可以用于多种语言及平台的项目打包,例如:C.C++.Java.iOS.Android等等.用于大型的iOS.Android项目,可以显著提升 ...