技术标签: 机器学习
根据数据标记分类
supervised learning 监督学习
unsupervised learning 无监督学习
SEMI-SUPERVISED learning 半监督学习
让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能,就是半监督学习(semi-supervised learning)。
半监督学习可进一步划分为纯(pure)半监督学习和直推学习(transductive learning),前者假定训练数据中的未标记样本并非待测的数据,
而后者则假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。
根据应用类型分类
1.REINFORCEMENT learning 强化学习
2.TRANSFER LEARNING 迁移学习
优点:计算事件概率,能减少极端值的影响
缺点:是由时间的线性分布转化为概率来进行判断,所以只适合线性分布的数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GyciRCqj-1597824699351)(C:\Users\Free\AppData\Roaming\Typora\typora-user-images\image-20200819104518451.png)]
实际上我们会采用更多的方法对逻辑回归的结果进行评估
如:精确度,混淆矩阵confusion matrix,f-score
K-NEAREST NEIGHBOR
step1:找到待测样本周围最近的已知样本点,这一步需要定义空间、距离公式
step2: 录入样本点信息
step3:找最近的k个样本点
step4:找到最近的k个样本点中,哪个类别最多
k临近算法和逻辑回归都是做分类问题
KNN只关注待测样本的局部分布,所以不需要用到loss函数(交叉熵函数)
逻辑回归则关注是对全局分布
KNN还可以用来做推荐系统
优点:
缺点:
通常为了保证一个合理的K的取值,我们会采取交叉验证(cross-validation)找到哪个K的设置会保证最优的估算
决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
决策树的生成算法有ID3, C4.5和C5.0等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
决策树生成的主要分为两步:
step1:节点的分裂:一般当一个节点所代表的属性无法给出判断时,则选择将这一节点分成2个
子节点(如不是二叉树的情况会分成n个子节点)
step2: 阈值的确定:选择适当的阈值使得分类错误率最小 (Training Error)。
比较常用的决策树有ID3,C4.5和CART(Classification And Regression Tree),CART的分类效果一般优于其他决策树。下面介绍具体步骤。
ID3: 由**增熵(Entropy)**原理来评估当前条件下的所有情况并决定哪个做父节点,那个节点需要分裂。
对于一组数据,熵越小说明分类结果越好。熵定义如下:
Entropy=- sum [p(x_i) * log2(P(x_i) ]
其中p(x_i) 为x_i出现的概率。假如是2分类问题,当A类和B类各占50%的时候,
Entropy = - (0.5log_2( 0.5)+0.5log_2( 0.5))= 1
当只有A类,或只有B类的时候,
Entropy= - (1*log_2( 1)+0)=0
所以当Entropy最大为1的时候,是分类效果最差的状态,当它最小为0的时候,是完全分类的状态。因为熵等于零是理想状态,一般实际情况下,熵介于0和1之间。
熵的不断最小化,实际上就是提高分类正确率的过程。
决策树是否能用来做回归问题呢?
梯度下降(gradient descent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。
梯度是一个向量,具有大小和方向。想象我们在爬山,从我所在的位置出发可以从很多方向上山,而最陡的那个方向就是梯度方向。
对函数 f(x1,x2,…,xn)f(x1,x2,…,xn) 来讲,对于函数上的每一个点 P(x1,x2,…,xn)P(x1,x2,…,xn),我们都可以定义一个向量 {∂f∂x1,∂f∂x2,…,∂f∂xn}{∂f∂x1,∂f∂x2,…,∂f∂xn},这个向量被称为函数 ff 在点 PP 的梯度(gradient),记为 ∇f(x1,x2,…,xn)∇f(x1,x2,…,xn) 。函数ff在PP点沿着梯度方向最陡,也就是变化速率最快。比如对于二元函数 f(x,y)f(x,y)来讲,我们先将函数的偏导数写成一个向量 {∂f∂x,∂f∂y}{∂f∂x,∂f∂y},则在点 (x0,y0)(x0,y0)处的梯度为 {∂f∂x0,∂f∂y0}{∂f∂x0,∂f∂y0}。
梯度方向是函数上升最快的方向,沿着梯度方向可以最快地找到函数的最大值,而我们要求误差的最小值,所以在梯度下降中我们要沿着梯度相反的方向。
是无监督学习
优点:非监督类的算法不需要样本的标注信息
缺点:
不能利用到数据的标注信息,意味着模型的性能不如其他监督学习
对于K的取值,也就是你认为数据集中的样本应该分为几类,这个参数的设置极为敏感
目的是找到分界面,并最大化这个间距
即等于最小化间距倒数的平方
SVMLOSS FUNCTION: Loss(β)= ||β||^2/2
所以也叫大间隔分类器
优点:
缺点:
Hard-margin SVM是线性分类器不能处理不同类别相互交融情况
在这种情况下可以强制允许对于一些错误样本的分类来保持大体上的容错率
这就是 SOFT_MARGINSVM
分类器,不可用于求解线性完全不可分的情况 当出现这种情况时,会引入KERNEL,来把数据映射到更高的维度,用线性超平面去使用。
是一种集成学习中Bagging类型算法(Bootstrap Aggregation
)即引导聚合类算法,内部是多个弱监督模型结合,这类算法不专注于解决困难样本,所以模型的Performance往往会受限,集成学习中的另一种算法Boosting,即可解决这种缺点。
森林意思是模型中包含很多决策树
随机意思是从数据集中采用以训练模型中的每颗决策树(即看问题角度不一样)
设计步骤:
预设模型的超参数,几棵树,分几层?
随机采用,训练每个决策树
输入待测样本到每个树中,再将每个树的结果整合
求均值或者求众数
优点:
缺点:
模型往往过于General不具备正确处理过于困难的样本的能力
可以解决随机森林的问题,一句话总结特点,前人栽树,后人乘凉!
ADABOOST:自适应增强算法
后一个模型的训练永远是在前一个模型的基础上完成的,是顺序,级联的结构
step1:对于训练每个weak learner计算样本困难度
step2:学习每个weak learner的权重
然后权限*输出整合起来
优点
缺点:
文章浏览阅读1k次。在命令行中运行下面这行代码:(引号里面要改为自己的stanford-corenlp所在目录)java -mx4g -cp "F:\资源\stanford-corenlp-full-2018-10-05/*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000或java -Xmx4g -cp "F..._stanford corenlp 标注结果没有依存关系
文章浏览阅读7.8k次,点赞5次,收藏43次。目录基础概念快速入门进阶设置基础概念 Sequencer 编辑器使用户能够用专业的多轨迹编辑器(类似于Matinee )创建游戏内过场动画。通过创建 关卡序列(Level Sequences) 和添加 轨迹(Tracks),用户可以定义各个轨迹的组成,轨迹可以包含动画(Animation)(用于将角色动画化)、变形(Transformation)(在场景中移动各个东西)、音频(Audio)(用于包括音乐或音效)和数个其他轨迹(Track)类型等 Sequencer通过添加关键_ue sequencer
文章浏览阅读5.6k次,点赞2次,收藏5次。函数被多次定义的问题总是一直困扰着我,每次都耗费我大量的时间和精力去处理,实在令我头疼解决办法:编写一个头文件(里面放置你的一些函数和变量的声明),在你的.cpp文件中#include “XX.h”这样使得你的工程能通过编译,最后编译器在XX.h寻找其中函数定义时,会去每个文件中查找相关的函数定义。出现问题的原因另外函数重定义的原因是,在多个文件中直接包含了有同一个函数定义的文件,这样链接的时候就会出问题,就会报告多个函数定义,原因不用我细说也懂..._被多次定义
文章浏览阅读1.9w次,点赞87次,收藏439次。项目介绍1、为什么要做这样一个项目?2、介绍下你的项目_webserver面试
文章浏览阅读6.8k次。AndroidXAndroidX 是对 android.support.xxx 包的整理后产物。由于之前的 support 包过于混乱,所以,Google 推出了AndroidX。在后续版本中,会逐步放弃对 support 的升级和维护,所以,我们必须迁移到 AndroidX 。如何迁移到AndroidX在 AndroidStudio 3.2 或更高版本(截图中 AndroidStudio..._androidx.jar
文章浏览阅读541次,点赞22次,收藏16次。最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
文章浏览阅读1.3k次。一. 编码器 MediaCodecMediaCodec 是 Android 提供的用于对音频进行编解码的类,属于硬编解。MediaCodec 在编解码的过程中使用了一组缓冲区来处理数据。如下图所示:基本使用流程如下:// 1 创建编解码器MediaCodec.createByCodecName() // createEncoderByType , createDecoderByType// 2 配置编解码器configure(@Nullable MediaFormat format, @Nu_编码后的aac数据如何保存
文章浏览阅读2.5k次。问题描述在以jpa的方式访问oracle数据库时发现关联表的数据查询不到解决方法大体意思是:hibernate的懒加载出现异常,由于seesion被释放了。自己调试了发现是在找下一级关系的时候,无法找到目标实体类导致的。网上找过一些方法都是让你把hibernate实体映射的由fetch=FetchType.LAZY改为这种FetchType.EAGER但是也是无补于事。看到stackoverflow上一个解决方案在service层的方法添加@Transactional开启事务,最后完美解决了_unable to evaluate the expression method threw 'org.hibernate.lazyinitializa
文章浏览阅读9k次,点赞2次,收藏31次。**一、css3新增边框属性**1、css3新增属性之border-color:为边框设置多种颜色p {border-style:solid;border-color:#ff0000 #0000ff;} 需要注意:“border-width” 属性如果单独使用的话是不会起作用的。请首先使用 “border-style” 属性来设置边框。2、css3新增属性之border-image:图片边框div {-webkit-border-image:url(border.png) 30 30 r_css3新增属性
文章浏览阅读1.6w次。An unknown error occurred during solution. Check the Solver Output on the Solution Information object for possible causes._an unknown error occurred during solution. check the solver output on the so
文章浏览阅读1.8k次。VUE项目里配置eslint lessless安装 less 和less-loader ,npm install less less-loader --save**修改webpack.base.config.js文件,配置loader加载依赖,让其支持外部的less,在原来的代码上添加 // 此种方法在控制台中标签样式显示的是style标签样式{ test: /\.less$/, loader: "style-loader!css-loader!less-loader",}_eslint less
文章浏览阅读1.4w次,点赞27次,收藏21次。大家好,我是Leo哥,上一节我们通过源码剖析以及图文分析,了解了关于委派筛选器代理和过滤器链代理的原理和作用。这节课我们接着学习SpringSecurity的过滤器,了解SpringSecurity中都有哪些核心过滤器。好了,话不多说让我们开始吧。以上便是本文的全部内容,本人才疏学浅,文章有什么错误的地方,欢迎大佬们批评指正!我是Leo,一个在互联网行业的小白,立志成为更好的自己。如果你想了解更多关于Leo,可以关注公众号-程序员Leo,后面文章会首先同步至公众号。