AI人工智能

1,为什么要对特征做归一化?
2,什么是组合特征?如何处理高维组合特征?
3,请比较欧式距离与曼哈顿距离?
4,为什么一些场景中使用余弦相似度而不是欧式距离?
5,One-hot的作用是什么?为什么不直接使用数字作为表示?
6,在模型评估过程中,过拟合和欠拟合具体指什么现象?
7,降低过拟合和欠拟合的方法?

深度学习

数据预处理中的重要技术–特征归一化
数据预处理:

深度学习中的数据预处理有哪些方式
1.数据归一化:包括高斯归一化、最大最小值归一化等
2.白化:许多深度学习算法都依赖于白化来获得更好的特征。所谓的白化,以PCA白化来说,就是对PCA降维后的数据的每一列除以其特征值的根号
为什么需要对于数据进行归一化处理,归一化的方式有哪些
1.为了后面处理数据方便,归一化可以避免一些不必要的数值问题
2.为了程序运行时收敛加快
3.同一量纲。样本数据的评价标准不一样,需要对其量纲化,统一评价标准。这算是应用层面的需求
4.避免神经元饱和。就是当神经元的激活在接近0或者1时会饱和,在这些区域,梯度几乎为0,这样,在反向传播过程中,局部梯度就会接近0,这会有效地"杀死"梯度
5.保证输出数据中数值小的不被吞食

归一化的方式主要有:线性归一化、标准差归一化、非线性归一化

什么是特征归一化
数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权
其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上
为什么要进行特征归一化
1.对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内
2.从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类的准确性

学习机器学习

什么是组合特征?如何处理高维组合特征
狭义的组合特征即将类别特征两个或者多个特征组合(数学里面的组合概念)起来,构成高阶组合特征

为了提高复杂关系的拟合能力,在特征工程中经常会把一届离散特征两两组合,构成高阶组合特征

可以使用降维的方法处理高维组合特征:
矩阵分解、特征筛选:

特征降维其实从大的方面讲有两条路可走:
基于原有的特征进行降维
基于原有的特征进行筛选

欧式距离和曼哈顿距离的比较
欧式距离:欧几里得度量是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离

意义:欧式距离越小,两个向量的相似度越大;欧式距离越大,两个向量的相似度越小

缺点:对异常数据敏感
欧式距离将向量各个维度之间的差异等同对待,(实际情况中,样本的不同属性重要程度往往不同)

优点:计算速度快

曼哈顿距离:欧式距离有一个局限是度量两点之间的直线距离。但实际上,在现实世界中,我们从原点到目标点,往往直走是不能到达的。曼哈顿距离加入了一些这方面的考虑

意义:曼哈顿距离也称为城市街区距离。可以看出在曼哈顿距离中,考虑了更多的实际因素。总之,在曼哈顿距离的世界中,规则是我们只能沿着线画出的格子行进

缺点:对异常值敏感
曼哈顿距离将向量各个维度之间的差异等同对待

优点:计算速度快

欧氏距离和曼哈顿距离的区别在于:它们对向量之间差异的计算过程中,各个维度差异的权值不同。向量各个属性之间的差距越大,则曼哈顿距离越接近欧式距离

余弦距离
余弦相似度,就是计算两个向量间夹角的余弦值

余弦距离就是用1减去这个获得的余弦相似度

由上面余弦距离可知,余弦距离的取值范围为[0,2],满足了非负性的性质

当向量的模长是经过归一化的,此时欧式距离与余弦距离有着单调的关系
在此场景下,如果选择距离最小(相似度最大)的近邻,那么使用余弦相似度和欧式距离的结果是相同的

什么时候用余弦距离,什么时候用欧式距离
总体来说,欧式距离体现在数值上的绝对差异,而余弦距离体现在方向上的相对差异

1)例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距离很大,而欧式距离很小;我们分析两个用户对不同视频的偏好,更关注相对差异,显然应当使用余弦距离
2)而当我们分析用户活跃度,以登陆次数和平均观看时长作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧式距离

在日常使用中需要注意区分,余弦距离虽然不是一个严格意义上的距离度量公式,但是形容两个特征向量之间的关系还是有很大用处的。比如人脸识别,推荐系统等

One-hot的作用是什么?为什么不直接使用数字作为表示?

One-hot主要用来编码类别特征,即采用哑变量对类别进行编码。它的作用是避免因类别用数字作为表示而给函数带来抖动

直接使用数字会给将人工误差而导致的假设引入到类别特征中,比如类别之间的大小关系,以及差异关系等等

One-hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效

在实际的机器学习的应用任务中,特征有时候并不总是连续值,有可能是一些分类值,如性别可分为“ male ”和“ female ”。在机器学习任务中,对于这样的特征,通常我们需要对其进行特征数字化,如下面的例子:

有如下三个特征属性:
性别:[“male”,“female”]
地区:[“Europe”,“US”,“Asia”]
浏览器:[“Firefox”,“Chrome”,“Safari”,“Internet Explorer”]

对于某一个样本,如[“male”,“US”,“Internet Explorer”],我们需要将这个分类值的特征数字化,最直接的方法,我们可以采用序列化的方式:[0,1,3]。但是这样的特征处理并不能直接放入机器学习算法中。

One-Hot Encoding的处理方法

对于上述的问题,性别的属性是二维的,同理,地区是三维的,浏览器则是四维的,这样,我们可以采用One-Hot编码的方式对上述的样本“[“male”,“US”,“Internet Explorer”]”编码,“male”则对应着[1,0],同理“US”对应着[0,1,0],“Internet Explorer”对应着[0,0,0,1]。则完整的特征数字化的结果为:[1,0,0,1,0,0,0,0,1]。这样导致的一个结果就是数据会变得非常的稀疏。

使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点

将离散特征映射到欧式空间,是因为,在回归、分类、聚类等机器学习算法中,特征之间距离的计算或者相似度的计算是非常重要的,而我们常用的距离或者相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间

在模型评估过程中,过拟合和欠拟合具体指什么现象?

过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是模型在训练集上的表现好,但是在测试集和新数据上的表现较差

欠拟合是指模型在训练和预测时都表现不好。用模型在数据上的偏差和方差指标来表示就是,欠拟合的时候,偏差和方差都比较大,而过拟合时,偏差较小但方差较大

过拟合和欠拟合是导致模型泛化能力不高的两种常见原因,都是模型学习能力与数据复杂度之间失配的结果

降低过拟合和欠拟合的方法

欠拟合:
1.增加新特征,可以考虑加入特征组合、高次特征,来增大假设空间
2.添加多项式特征,这个在机器学习算法中用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强
3.减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数
4.使用非线性模型,比如核SVM 、决策树、深度学习等模型
5.调整模型的容量(capacity),通俗地,模型的容量是指其拟合各种函数的能力
6.容量低的模型可能很难拟合训练集;使用集成学习方法,如Bagging ,将多个弱学习器Bagging

过拟合:
1.正则化(Regularization)(L1和L2)
2.数据扩增,即增加训练数据样本
3.Dropout
4.Early stopping

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python练习题

一、 请编写程序,使得能够计算以下算术运算并打印结果:9的3次方 print(9**3)二、 给你一个整数,代表Tom的妈妈买的书本的数量,输出一段英文,能完整表述Tom的妈妈买了几本书。本题考查字符串的组合、数据类型的变换、变…

.NETCore3.1中的Json互操作最全解读-收藏级

前言本文比较长,我建议大家先点赞、收藏后慢慢阅读,点赞再看,形成习惯!我很高兴,.NETCore终于来到了3.1LTS版本,并且将支持3年,我们也准备让部分业务迁移到3.1上面,不过很快我们就遇到了新的问题…

在一个数组中实现两个堆栈

6-11 在一个数组中实现两个堆栈 (20 分) 本题要求在一个数组中实现两个堆栈。 函数接口定义: Stack CreateStack( int MaxSize ); bool Push( Stack S, ElementType X, int Tag ); ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2&…

逻辑结构的四种基本关系

逻辑结构的四种基本关系 1集合结构:数据元素之间除了“属于同一集合”的关系外,没有其他关系 2线性结构:数据元素之间存在一对一的关系 3树结构:数据元素之间存在一对多的关系 4图结构:数据元素之间存在多对多的关系

轻量级开源小程序SDK发车啦

Magicodes.WxMiniProgram.Sdk轻量级微信小程序SDK,支持.NET Framework以及.NET Core。目前已提供Abp模块的封装,支持开箱即用。地址:https://github.com/xin-lai/Magicodes.WxMiniProgram.SdkNuget新的包主要功能轻量级微信小程序SDK&#xf…

单链表基础知识详解

//通常使用结构的嵌套来定义单向链表结点的数据类型 typedef struct Node *PtrToNode;//将Node命名为PtrToNode struct Node {ElementType Data;//存储结点数据PtrToNode Next;//指向下一个结点的指针 }; //结构类型Node中的Next分量又是该结构类型的指针&#xff0…

[译文] C# 8 已成旧闻, 向前, 抵达 C# 9!

C# 8 is old news. Onward, to C# 9! (C# 8 已成旧闻, 向前, 抵达 C# 9!)Did you know that planning is already underway for the ninth version of the C# language?第九版 C# 语言已经在开发中了, 你晓得伐?Now, to be fair, this has been in the planning phases long,…

考察对顺序表的理解

顺序表是在计算机内存中以数组的形式保存的线性表 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻…

2020年你应该学习 .Net Core

一、什么是.NET Core.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。.NET Core的…

对表头指针、表头结点,单链表删除的理解

https://blog.csdn.net/weixin_46678290/article/details/105309156

C# WPF发票打印

C# WPF发票打印内容目录实现效果业务场景编码实现本文参考源码下载1.实现效果发票界面PDF打印结果2.业务场景界面作为发票预览,按客户需求可打印成发票纸张给客户。3.编码实现3.1 添加Nuget库站长使用 .Net Core 3.1 创建的WPF工程,创建“Invoice”解决方…

对全局变量,static静态变量的理解

如果所有的变量按照下面的程序进行定义和声明,那么在main()函数中所有可用的变量为 ()。 void fun(int x) {static int y;……return; } int z; void main( ) {int a,b;fun(a);…… }A.x,y B.x,y,z C.a,b,z D.a,b,x,y,z static静态变量的值在…

dotNET知音,19年归档

2019年下半年开通公众号,尝试着分享和技术交流,也很高兴认识很多NETer同行。为了方便阅读,进行归档,如果之前有错过的文章,这是一个很好的补课机会。.NETCore3.0:《.Net Core3.0 配置Configuration》《.Net…

顺序表和链表的优缺点理解

若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用哪种存储方式最节省时间?D A.双链表 B.单循环链表 C.带头结点的双循环链表 D.顺序表 想要存取任一指定序号的元素,链表实现这个功能的代价很大 本来顺序表的…

阿里如何应对亿级高并发大流量?如何保障高可用和稳定性!

作者:丁浪,目前在创业公司担任高级技术架构师。曾就职于阿里巴巴大文娱和蚂蚁金服。具有丰富的稳定性保障,全链路性能优化的经验。架构师社区特邀嘉宾!阅读本文,你将会收获: 高并发、大流量场景的常见问题和…

中缀转后缀

从中序表达式 转换为 后序表达式 例题: 利用栈对表达式19/(8-5)*4求值的过程中,操作数栈的最大容量是多少?(B )。 A.3 B.4 C.5 D.2 操作数栈:先是/(- , 然后遇到),则为/ &#xff0…

动手造轮子:写一个日志框架

动手造轮子:写一个日志框架Intro日志框架有很多,比如 log4net / nlog / serilog / microsoft.extensions.logging 等,如何在切换日志框架的时候做到不用修改代码,只需要切换不同的 loggingProvider 就可以了,最低成本的…

对循环队列的理解

循环队列存储在数组A[0…n-1]中,其头尾指针分别为f和r,头指针f总是指向队头元素,尾指针r总是指向队尾元素的下一个位置,则元素e入队时的操作为(B )。 A.A[r]e; rr1 B.A[r]e; r(r1)%n C.A[r]e;r(r1)%(n1) D.…

【C】@程序员,我们送给你一个成熟的Excel导入导出组件

程序员的显著特点有一天跟一位同事跟我闲聊,讨论起过去若干年软件行业的感受,他问了个问题:你觉得一个好的软件工程师最显著的特点是什么?我想了一会,说:大概是坐得住吧。某种意义上来说,在互联…