R-L模型算法的优缺点_模型解题

R-L模型算法的优缺点_模型解题@[TOC]LR模型相关知识点#1.LR归一化问题,什么情况可以不归一化,什么情况必须归一化,#2.为什么提到LR损失函数要能知道交叉熵,为什么是它,以它为损失函数在优化的是一个什么东西,知道它和KL散度以及相对熵的关系#3.提到LR的求解方法,比如SGD,知道SGD和BGD的区别,知道不同的GD方法有什么区别和联系,二阶优化算法知道什么,对比offlinelearning和onlinelearning的区别#4.提到调参,知道模型不同超参数的含义,以及给定一个特定情况,大概要调整哪些参数,怎么

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

LR模型相关知识点

归一化

  1. 机器学习中为什么需要归一化?
    (1) 消除量纲影响
    健康=3身高+2体重,身高单位:米,体重单位:斤
    Δ身高=0.3,Δ体重=5,前者变化更大,但‘健康’指标变化小
    (2)可以加速优化过程,后加快了梯度下降求最优解的速度;(减少迭代次数,加快模型的训练)
    数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。
    在这里插入图片描述
    两个特征区别相差特别大。所形成的等高线比较尖锐。当时用梯度下降法时,很可能要垂直等高线走,需要很多次迭代才能收敛。

在这里插入图片描述
对两个原始特征进行了归一化处理,其对应的等高线相对来说比较圆,在梯度下降时,可以较快的收敛。

(3)归一化有可能提高精度
有些分类器需要计算样本之间的距离,例如k-means。如果一个特征的值域范围特别大。那么距离计算就主要取决于这个特征,有时会与实际情况相违背。(比如这时实际情况是值域范围小的特征更重要)

  1. 哪些归一化的方法?

Ⅰ 线性函数归一化
在这里插入图片描述

缺陷:
1)当有新数据加入时,可能导致max和min的变化,需要重新定义
2)存在极端的最大最小值,即易受异常值影响
适用:
如果对输出结果范围有要求,用归一化
如果数据较为稳定,不存在极端的最大最小值,用归一化

Ⅱ 0均值标准化
在这里插入图片描述

适用:
如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响

归一化与标准化的区别
1)归一化的缩放是统一到区间(仅由极值决定),
标准化的缩放是更加“弹性”和“动态”的,和整体样本的分布有很大的关系。
2)归一化:缩放仅仅与最大最小值有关。
标准化:缩放与每个点有关。通过方差和均值体现出来。
3)归一化:输出范围在0-1之间
标准化:输出范围是负无穷到正无穷

  1. 归一化和标准化本质上都是一种线性变换

在这里插入图片描述

就发现事实上就是对向量 x按照比例压缩a再进行平移 c。所以归一化和标准化的本质就是一种线性变换。
性质:线性变化不改变原始数据的数值排序

  1. 代码
from sklearn import preprocessing
from scipy.stats import rankdata
x = [[1], [3], [34], [21], [10], [12]]
std_x =preprocessing.StandardScaler().fit_transform(x)
norm_x = preprocessing.MinMaxScaler().fit_transform(x)
# print(std_x)
# print(norm_x)
print('原始顺序 :', rankdata(x))
print('标准化顺序:', rankdata(std_x))
print('归一化顺序:', rankdata(norm_x))
  1. 哪些模型需要归一化,哪些不需要

需要:
线性回归、LR、SVM、GBDT(?)、KNN、KMeans 、神经网络(基本都有wx+b)基于参数的模型或基于距离的模型,都是要进行特征的归一化。
不需要:
概率模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,更关注增量,如决策树、rf
基于树的方法是不需要进行特征的归一化,例如随机森林,bagging 和 boosting等

  1. LR归一化问题,什么情况可以不归一化,什么情况必须归一化
    可以不归一化: 量纲没有明显差距,
    不同特征取值范围差异过大的数据最好都先做归一化
    还要具体看使用两种归一化方法中的哪个

损失函数及解法
3. 为什么提到LR损失函数要能知道交叉熵,为什么是它,以它为损失函数在优化的是一个什么东西,知道它和KL散度以及相对熵的关系
4. 提到LR的求解方法,比如SGD,知道SGD和BGD的区别,知道不同的GD方法有什么区别和联系,二阶优化算法知道什么,对比offline learning和online learning的区别

调参
6. 提到调参,知道模型不同超参数的含义,以及给定一个特定情况,大概要调整哪些参数,怎么调整

正则化(regularization)

  1. 如何防止模型的过拟合(overfit)?
    通过正则化
  2. l1、l2的原理,几何解释和概率解释?
    几何解释
    https://zhuanlan.zhihu.com/p/35356992
    概率解释
    https://zhuanlan.zhihu.com/p/56185913
  3. 为什么正则化能够防止过拟合?
    模型越复杂,越容易过拟合,这大家都知道,加上L1正则化给了模型的拉普拉斯先验,加上L2正则化给了模型的高斯先验。从参数的角度来看,L1得到稀疏解,去掉一部分特征降低模型复杂度。L2得到较小的参数,如果参数很大,样本稍微变动一点,值就有很大偏差,这当然不是我们想看到的,相当于降低每个特征的权重。)

模型过拟合通常是因为模型复杂度过高(补图)
模型复杂度又通常是与参数个数有关:参数个数越多,模型复杂度越高。所以
感性角度: 减少参数个数(让参数=0),就可以降低模型复杂度
*数学角度:*相当于拉格朗日
【待完成】再补充几个视频

  1. 为什么l1正则化具有稀疏性(w=0)?/为什么l1正则能够进行特征选择(使w=0)

解空间的形状的角度: 交点才满足最小化目标和约束条件,方形更容易在坐标轴上有交点,所以w=0可以实现,圆形l2可以使参数很小,但基本不会取0
L1正则化是L1范数而来,投到坐标图里面,是棱型的,最优解在坐标轴上取到,所以某些部分的特征的系数就为0。
(彩色为等值线图:同一圈上经验风险/损失是相同的;
方形、圆形:分别为l1/l2的可行域)
在这里插入图片描述
贝叶斯概率角度:
贝叶斯最大后验概率估计
https://zhuanlan.zhihu.com/p/32685118

  1. L1正则化不可导,怎么求解?
    坐标轴下降法(按照每个坐标轴一个个使其收敛),最小角回归(是一个逐步的过程,每一步都选择一个相关性很大的特征,总的运算步数只和特征的数目有关,和训练集的大小无关)

其他

  1. LR的分布式实现逻辑是怎么样的,数据并行和模型并行的区别,P-S架构大概是怎么一回事
  2. LR作为一个线性模型,如何拟合非线性情况?特征侧比如离散化,交叉组合,模型比如引入kernel,又可以推广到FM等model上
  3. 逻辑回归为什么一般性能差?
    LR是线性的,不能得到非线性关系,实际问题并不完全能用线性关系就能拟合。

参考:
https://zhuanlan.zhihu.com/p/32685118

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183429.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2022美赛备赛资料大全

    2022美赛备赛资料大全目录1、美赛比赛网址及其介绍2、美赛摘要页说明3、美赛常用词语与语句4、美赛翻译注意事项5、美赛论文写作一些建议5.1团队方面准备5.2摘要表部分5.3评委关注点6、组队要求7、软件与一些建模网址参考(1)写一篇建模文章大致需要如下技能:(2)数学建模算法总结(3)word小白教程数据资料:(4)1982—2018中国统计年鉴大全链接(5)美国人口普查数据大全链接(6)美国城市数据大全链接(7)全球统计数…

    2022年6月5日
    33
  • Pycharm Debug调试使用+代码调试理解

    Pycharm Debug调试使用+代码调试理解Pycharm使用教程03pycharm的Debug调试使用+代码调试理解。横着的七个按钮的功能:依次从左到右。ShowExecutionPoint:鼠标光标跳到程序运行到的位置StepOver:单步运行程序,不进入函数。在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。在不存在子函数的情况下是和stepinto效果一样的。简单的说就是,程序代码越过子函数,但子函数会执行,且不进入。StepInto:在单步执行时,遇到子函数

    2022年10月31日
    0
  • c++cstring头文件_fstream头文件

    c++cstring头文件_fstream头文件函数strcpy原型:char*strcpy(char*s1,constchar*s2);作用:将字符串2复制到字符数组1当中去说明:字符数组1的长度应不小于字符串2的长度”字符数组1″必须写成数组名形式,”字符串2″可以为字符数组名,也可以是一个字符串常量在未对字符数组1赋初值时,复制时将”字符串2″中的字符串和其后的”/0″一

    2022年9月12日
    0
  • 国家标准《电子计算机机房设计规范》(GB50174-93)_计算机机房设计标准GB50174

    国家标准《电子计算机机房设计规范》(GB50174-93)_计算机机房设计标准GB501748电气8.1供配电8.1.1电子信息系统机房用电负荷等级及供电要求应根据机房的等级,按现行国家标准《供配电系统设计规范》GB50052及本规范附录A的要求执行。8.1.2电子信息设备供电电源质量应根据电子信息系统机房的等级,按本规范附录A的要求执行。8.1.3供配电系统应为电子信息系统的可扩展性预留备用容量。8.1.4户外供电线路不宜采用架空方式敷设。当户外供电线路采用具有金属外护套的电缆时,在…

    2022年10月2日
    0
  • oracle12官方下载,Oracle 12c下载64位|Oracle Database 12c下载 官方版_最火软件站[通俗易懂]

    oracle12官方下载,Oracle 12c下载64位|Oracle Database 12c下载 官方版_最火软件站[通俗易懂]Oracle12C是由Oracle官方提供的最新版本数据库,Oracle12C引入了CDB与PDB的新特性,在ORACLE12C数据库引入的多租用户环境(MultitenantEnvironment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为PluggableDatabase,即可…

    2022年10月28日
    0
  • Pycharm 运行py文件[通俗易懂]

    Pycharm 运行py文件[通俗易懂]1 在桌面上建立一个文件夹  2.打开pycharm,如果已经有文件了,就点击File->closeproject,回到主界面3 选择Createanewproject 4.    将该文件夹的所在路径设为工程的路径,选择一下解释器,就点击Create,如果提示该文件夹不空的话,点击yes即可,可以提前把数据放入该aaaa文件夹5.   现在进入该页面,然后新建一个…

    2022年8月29日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号