读懂基础机器学习算法

 本篇内容主要是面向机器学习初学者,介绍常见的机器学习算法,当然,欢迎同行交流。

 哲学要回答的基本问题是从哪里来、我是谁、到哪里去,寻找答案的过程或许可以借鉴机器学习的套路:组织数据->挖掘知识->预测未来。组织数据即为设计特征,生成满足特定格式要求的样本,挖掘知识即建模,而预测未来就是对模型的应用。

 特征设计依赖于对业务场景的理解,可分为连续特征、离散特征和组合高阶特征。本篇重点是机器学习算法的介绍,可以分为监督学习和无监督学习两大类。

 无监督学习算法很多,最近几年业界比较关注主题模型,LSA->PLSA->LDA为主题模型三个发展阶段的典型算法,它们主要是建模假设条件上存在差异。LSA假设文档只有一个主题,PLSA假设各个主题的概率分布不变(theta都是固定的),LDA假设每个文档和词的主题概率是可变的。

 LDA算法本质可以借助上帝掷骰子帮助理解,详细内容可参加Rickjin写的《LDA数据八卦》文章,浅显易懂,顺便也科普了很多数学知识,非常推荐。

 监督学习可分为分类和回归,感知器是最简单的线性分类器,现在实际应用比较少,但它是神经网络、深度学习的基本单元。

 线性函数拟合数据并基于阈值分类时,很容易受噪声样本的干扰,影响分类的准确性。逻辑回归(Logistic Regression)利用sigmoid函数将模型输出约束在0到1之间,能够有效弱化噪声数据的负面影响,被广泛应用于互联网广告点击率预估。

 逻辑回归模型参数可以通过最大似然求解,首先定义目标函数L(theta),然后log处理将目标函数的乘法逻辑转化为求和逻辑(最大化似然概率 -> 最小化损失函数),最后采用梯度下降求解。

 相比于线性分类去,决策树等非线性分类器具有更强的分类能力,ID3和C4.5是典型的决策树算法,建模流程基本相似,两者主要在增益函数(目标函数)的定义不同。

 线性回归和线性分类在表达形式上是类似的,本质区别是分类的目标函数是离散值,而回归的目标函数是连续值。目标函数的不同导致回归通常基于最小二乘定义目标函数,当然,在观测误差满足高斯分布的假设情况下,最小二乘和最大似然可以等价。

 当梯度下降求解模型参数时,可以采用Batch模式或者Stochastic模式,通常而言,Batch模式准确性更高,Stochastic模式复杂度更低。

 上文已经提到,感知器虽然是最简单的线性分类器,但是可以视为深度学习的基本单元,模型参数可以由自动编码(Auto Encoder)等方法求解。

 深度学习的优势之一可以理解为特征抽象,从底层特征学习获得高阶特征,描述更为复杂的信息结构。例如,从像素层特征学习抽象出描述纹理结构的边缘轮廓特征,更进一步学习获得表征物体局部的更高阶特征。

 俗话说三个臭皮匠赛过诸葛亮,无论是线性分类还是深度学习,都是单个模型算法单打独斗,有没有一种集百家之长的方法,将模型处理数据的精度更进一步提升呢?当然,Model Ensembel就是解决这个问题。Bagging为方法之一,对于给定数据处理任务,采用不同模型/参数/特征训练多组模型参数,最后采用投票或者加权平均的方式输出最终结果。

 Boosting为Model Ensemble的另外一种方法,其思想为模型每次迭代时通过调整错误样本的损失权重提升对数据样本整体的处理精度,典型算法包括AdaBoost、GBDT等。

 不同的数据任务场景,可以选择不同的Model Ensemble方法,对于深度学习,可以对隐层节点采用DropOut的方法实现类似的效果。

 

 介绍了这么多机器学习基础算法,说一说评价模型优劣的基本准则。欠拟合和过拟合是经常出现的两种情况,简单的判定方法是比较训练误差和测试误差的关系,当欠拟合时,可以设计更多特征来提升模型训练精度,当过拟合时,可以优化特征量降低模型复杂度来提升模型测试精度。

 特征量是模型复杂度的直观反映,模型训练之前设定输入的特征量是一种方法,另外一种比较常用的方法是在模型训练过程中,将特征参数的正则约束项引入目标函数/损失函数,基于训练过程筛选优质特征。

 模型调优是一个细致活,最终还是需要能够对实际场景给出可靠的预测结果,解决实际问题。期待学以致用!

转载自网络

转载于:https://www.cnblogs.com/pejsidney/p/6930000.html

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

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

相关文章

在c语言中有函数leapyear定义如下,职业教育概论——职业教育的发展历史超星尔雅答案题库...

职业职业展历有时候,文学造诣高的中国诗歌翻译者在用词华丽方面超过莎士比亚。有int型变量x,教育教育i,j,k,则表达式x(i5,j6,k7)的值为( )从数据表student中查询张姓的所有学生,概论正确的SQL语句是( )史超世界上第一个…

tomcat安装启动配置

服务器: 服务器的概念非常的广泛,它可以指代一台特殊的计算机(相比普通计算机运行更快、负载更高、价格更贵),也可以指代用于部署网站的应用。我们这里说的服务器,其实是web服务器,或者应用服务…

JS在页面限制checkbox最大复选数

应该是挺简单的代码, 记录一下分享. 首先最直接的想法就是使用循环, 用局部变量记录已选的checkbox, 达到最大值就将余下的checkbox都禁止选择, 例如以下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""> <html xmlns"…

c语言 二维数组 文库,c语言二维数组练习题

c语言二维数组练习题 (3页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;19.90 积分完成下列程序代码完成下列程序代码1、 将二维数组(5 行 5 列)的右上半部分置零。 即&#xff1a;1234510000678910…

Mysql基础语法DDL、DML、DQL

DDL&#xff1a; DDL(Data Definition Language)数据定义语言用来定义数据库对象&#xff1a;数据库&#xff0c;表&#xff0c;列等。关键字&#xff1a;create, drop,alter 等 DML语句操作关键字添加INSERT INTO 表名 (字段名) VALUES (值);修改UPDATE 表名 SET 字段名新的值…

UVA 12716 GCD XOR(数论+枚举+打表)

&#xfeff;&#xfeff;题意&#xff1a;给你一个N&#xff0c;让你求有多少组A,B, 满足1< B < A < N, 且 gcd(A,B) A XOR B。思路&#xff1a;首先我们能够得出两个结论&#xff1a; A-B > A%B > gcd(A, B) A xor B > A-B 所以说A xor B > A-B > …

android陀螺仪轨迹,陀螺仪轨迹法长距离管道测量精度实测分析

陀螺仪轨迹法长距离管道测量精度实测分析陀螺仪轨迹法用于非开挖管道的精准坐标与位置测量已被电力与燃气等行业逐步了解与接受&#xff0c;近两年不断被引入到城市地下管线探测及电力与燃气管道验收标准中。由于管道埋于地下往往不能眼见为实&#xff0c;作为一种新的测量方式…

codeforces 558E A Simple Task 线段树

题目链接 题意较为简单。思路&#xff1a; 由于仅仅有26个字母&#xff0c;所以用26棵线段树维护就好了&#xff0c;比較easy。 #include <iostream> #include <string> #include <vector> #include <cstring> #include <cstdio> #include <m…

android新建多个java,Java-如何在Android的警报对话框中添加多项选...

我已经在Android应用程序中创建了“同步”菜单.当我们单击“同步”警报时,打开4个复选框的布局.我想要的是让它们起作用,例如,当我单击15分钟,然后自动取消单击其他选项时.Overridepublic boolean onCreateOptionsMenu(Menu menu){MenuInflater inflater getMenuInflater();in…

Spring IOC详解与配置

Spring&#xff1a; 框架&#xff1a; 具有一定功能的半成品软件&#xff0c;基于框架会节省开发成本 框架作用&#xff1a; 提高开发效率、复用性、编写规范、节约维护成本、解耦底层实现原理 Spring&#xff1a; Spring是分层的JavaSE/EE应用full-stack轻量级开源框架Sprin…

android8.0的蓝牙版本,android o 新特性详解 安卓8.0蓝牙音频增强以及更加可爱的表情包...

android 8.0什么时候推出&#xff1f;有哪些新特色&#xff1f;很多安卓用户非常想知道答案吧&#xff01;不用着急&#xff0c;下面是大麦子小编整理出来的安卓8.0新特性详解&#xff0c;希望可以帮到大家。有媒体近日曝光了有关谷歌Pixel XL 2手机会首发Android 8.0系统。现在…

操作系统介绍

操作系统&#xff1a; 操作系统(Operation System, OS)&#xff0c;是管理计算机硬件与软件资源的计算机程序&#xff0c;同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基…

DOM初级篇

DOM是什么、作用、与javascript&#xff1f; DOM是对HTML文档的访问和操作&#xff0c;对文档的增删改查。 DOM相当于是javascript一个类&#xff0c;这个类中提供了多种操作HTML的方法&#xff0c;也可以说DOM是依附在JavaScript上进行操作的。 一、标签的查找命令&#xff1b…

Activiti工作流的简单介绍

1.概念 工作流(Workflow)就是“业务过程的部分或整体在计算机应用环境下的自动化”&#xff0c;它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息 或任务的过程自动进行&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目标的实现。” 2.…

vs2019开发android应用,VS 2019开发APP(一)界面和代码

1.界面在Resources>layout>目录下的*.xml文件就是界面文件2.关联界面接下来&#xff0c;通过将支持代码插入到 MainActivity 类中来添加代码以关联用户界面。在 MainActivity 类中找到 OnCreate 方法&#xff0c;在其中添加关联按钮代码如下&#xff1a;protected overri…

关于AM335X移植SDIO WIFI的简易教程(转)

最近应一个朋友邀请&#xff0c;帮他移植了SDIO WIFI到3.2版本内核。因为之前已经成功移植了3.14内核&#xff0c;所以整个过程花了一个下午就完成了。话不多说&#xff0c;先交待一下平台&#xff1a; CPU&#xff1a;TI AM3352 600MOS&#xff1a;ubuntu core 12.04 for armS…

oracle 数据库字段html显示正常text显示不全,layui表格字段表格显示不全(自适应)...

本文将为您描述layui表格字段表格显示不全(自适应),具体操作方法:好记性不如烂笔头。本来就是没什么好记得东西&#xff0c;下次再用时已经想不起来了。问题如下&#x1f41f;使用layui表格&#xff0c;表格字段显示不全&#xff0c;如果超出分配的位置&#xff0c;就会显示省略…

使用 VSCode 编写 .NET Core 项目之初体验

注&#xff1a;本文在根据 微软官方文档指导下&#xff0c;根据自己的学习中整理&#xff0c;并不完全照搬文档&#xff0c;但也大体和文档学习路线相似&#xff0c;主要为记录学习过程。 官方学习地址&#xff1a; https://code.visualstudio.com/docs/other/dotnet https://d…

html载入hta文件,HTA文件去除html控件认证和接收命令行参数

一是利用hta 去掉htm的控件验证hta1的代码如下&#xff1a;sample html application oneactivexcontrol.htm代码如下&#xff1a;dim filesystem creates the filesystemobjectset filesystem createobject("scripting.filesystemobject")这样就可以去掉htm的本地验…

sql 同一字段合并

select a.* from (select id,Detail,partId(select cast(partId as char(36)), from (select * from table) as b where b.ida.id for xml path()) ,code from table a group by id,Detail,code) a 转载于:https://www.cnblogs.com/chang1/p/6952715.html