机器学习开篇-记于2017-10-24
来源:互联网 发布:看电视直播软件 编辑:程序博客网 时间:2024/05/29 18:46
1.机器学习的分类(首先明确常见类别)
监督学习
大体上讲:对一组给定的输入提供应有的输出结果,也就是对训练样本集中的每个样本都能提供其真实输出,有时还能提供预测错误的代价。监督学习中的经典学习算法:决策 树、人工神经网络、贝叶斯网络、支持向量机等。
对应于数学来讲:此处我们转换一下思维,联想一下从小学习的数学。以前我们经常碰到的问题,给出两点坐标a(x1,y1),b(x2,y2),另给出一点c的x坐标x3,求c点对应于确定直线的y坐标y3。我们首先需要根据ab两点确定直线(得到了一个描述直线的表达式),再根据表达式和x3来计算y3。其实机器学习又何尝不是如此,我们将样本X 表示为属性向量的形式,即
X = (x1,x2,…,xl)
其中,元素xj(1≤j≤l)为样本X 在第j 个属性上的值;l 为属性的个数,各属性可以是
离散或连续属性。另外,定义样本的属性空间为X,监督学习的求解空间为Y,N 为
自然数集合。根据上述符号定义,可将监督学习问题描述为:给定一个已知类别的样
本集合LS = {(Xi,yi)| Xi∈X,yi∈Y,i∈N},LS 确定了属性向量X 与其输出y 之间
的某种未知函数关系y = f1(X),利用监督学习算法I 对LS 中的样本进行学习,得到
学习器 f2= f2(LS),用于近似表示该未知函数。
对比我举的例子大家可以很容易的发现,监督学习中最重要的就是利用某种监督学习算法对样本(样本中包含真实输出)进行学习,得到一种近似函数,然后进行分类或者回归问题。
非监督学习
学习的训练数据中没有样本的输出标识,即LS = {Xi |Xi∈X,i∈N},因此非监督学习是没有先验知识的学习,仅凭数据的自然聚类特性,进行“盲目”学习。这种无先验知识、无环境反馈的学习似乎不可思议,但是通过对训练数据集进行分析,可以从中抽取出相应的内在规律与规则。非监督学习可以作为后续学习的预处理过程,也可以用于机器预测或决策。研究非监督学习理论是提高和完善机器学习能力的重要途径和手段
最常用的非监督学习是聚类分析(先暂时有个印象即可)。。一般的聚类算法是先选择若干个样本点作为聚类中心,每一中心代表一个类别,按照某种相似性度量方法(如最小距离)将各样本归于各聚类中心所代表的类别,形成初始分类,然后由聚类准则判断初始分类是否合理,如果不合理就修改分类,如此反复迭代运算,直到合理为止。
半监督学习
此概念可以参照周志华《机器学习》中的p293 ,此本书中对于概念的描述通俗易懂,非常适合初学者对于概念的把握。
强化学习
强化学习过程是不断尝试错误,从环境中得到相应的奖惩,通过自主学习获得不同状态下哪些动作具有最大的价值,从而发现或逼近能够得到最大奖励的动作策略。可以说,强化学习类似于传统经验中的“吃一堑,长一智”。(暂时这么理解,以后会根据用例和代码来详细论述)
2.什么是分类问题、什么是回归问题?
分类和回归的区别在于输出变量的类型。
输入变量与输出变量均为连续变量的预测问题称为回归问题
输出变量为有限个离散变量的预测问题称为分类问题
定量输出称为回归,或者说是连续变量预测;
定性输出称为分类,或者说是离散变量预测。
预测明天的气温是多少度,这是一个回归任务;
预测明天是阴、晴还是雨,就是一个分类任务。
再举个例子:
刚才求解直线的问题中,
如果给出一个坐标c(x3,y3),求其是否在直线上,就是一个分类问题
如果给出点c的x3,求y3,就是一个回归问题
3.一般性定理和规则
奥卡姆剃刀原则
自行查阅,联系机器学习我们需要理解的是:过于复杂的学习结果往往存在对训练样本集的过拟合现象,相对简单的假设可能对训练样本集的分类精度差一些,但是对未知样本的预测能力更强,也就是说泛化能力更强。
五免费午餐定理
我们在考虑机器学习算法的泛化能力时,如果某个学习算法比另外一些算法的预测精度高,那么只是因为这个算法更适合测试数据所描述的特定问题。如果一个机器学习算法在某些领域表现出优越的性能优势,那么必定在其他一些领域表现出它的劣势。联系机器学习可以理解为,任何算法不能单方面评价,使用效果好只是因为它刚好适合问题场景,没有一种一劳永逸的绝对高效的学习算法能完美解决所有问题。
4.学习算法的评价考虑因素
预测精度(泛化能力)
学习速度
分类速度
可理解性
- 机器学习开篇-记于2017-10-24
- 机器学习开篇
- 机器学习 - 开篇
- 机器学习开篇
- 机器学习(开篇)
- 可视化于机器学习
- 机器学习系笔记开篇
- 机器学习开篇第一博
- 开篇:学习 《自己动手写操作系统 》于渊
- 机器学习趋向于平民化
- 神经网络与机器学习之开篇
- 神经网络与机器学习之开篇续
- 【一】机器学习小白之路之开篇
- [人工智能]机器学习的框架偏向于Python原因
- [人工智能]机器学习的框架偏向于Python原因
- [2017/02/24] 机器学习
- 简单易学的机器学习算法——支持向量机(开篇:基本概念)
- 写点什么吧,作为机器学习分类的开篇……
- Java数据结构与算法解析(十四)——二叉堆
- hadoop入门之利用hadoop来对文档数据归类统计案例wordcount
- unity computshader的入门教程,别听半灌水瞎BB。
- Dalvik 字节码的读取
- swift + 百度地图 初始化BMKMapView崩溃 不报错 无打印 (一个愚蠢的错误。。。)
- 机器学习开篇-记于2017-10-24
- 帮助和变量强制转换
- DrawerLayout+Tablayout+PullTofresh+Fragment(Viewpage)
- IntelliJ IDEA下的使用git
- 安装vmware workstations 的时候 在virtual network editor 的时候停下了 安装,卸载或重装Vmware Workstation时失败的官方解决方案
- PHP/如何在Linux服务器中隐藏PHP版本
- 【TensorFlow问题】AttributeError:'module' object has no attribute 'mul'
- kmp相关
- 使用JYaml实现Java对象与Yaml间的序列化与反序列化