• 机器学习笔记


    NO1

    无监督算法:分类或者聚类

    监督算法 :回归或者预测

    强化学习:定义一个行为,回报函数,自己学习。

    LIBSVM 使用的一般步骤是:

    1)按照LIBSVM软件包所要求的格式准备数据集;                                    

    2)对数据进行简单的缩放操作;                                   

    3)首要考虑选用RBF 核函数;

    4)采用交叉验证选择最佳参数C与g ;

    5)采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型;

    6)利用获取的模型进行测试与预测。

    监督学习中的参数确定:最优梯度降速法

    最小二乘法:x = rev(t(A)A)t(A)Y

    如何使用交叉验证

    在pattern recognition与machine 
    learning的相关研究中,经常会将dataset分为training跟test这两个subsets,前者用以建立model,后者则用来评估该model对未知样本进行预测时的精确度,正规的说法是generalization
    ability。在往下叙述之前,这边就必须点出一个极为重要的观念:只有training data才可以用在model的训练过程中,test
    data则必须在model完成之后才被用来评估model优劣的依据。

    怎么将完整的dataset分为training set与test set也是学问,必须遵守两个要点:

    training
    set中样本数量必须够多,一般至少大于总样本数的50%。
    两组子集必须从完整集合中均匀取样。

    其中第2点特别重要,均匀取样的目的是希望减少training/test
    set与完整集合之间的偏差(bias),但却也不易做到。一般的作法是随机取样,当样本数量足够时,便可达到均匀取样的效果。然而随机也正是此作法的盲点,也是经常是可以在数据上做手脚的地方。举例来说,当辨识率不理想时,便重新取样一组training
    set与test set,直到test set的辨识率满意为止,但严格来说这样便算是作弊了。

    Cross-validation正是为了有效的估测generalization error所设计的实验方法,可以细分为double
    cross-validation、k-fold cross-validation与leave-one-out cross-validation。Double
    cross-validation也称2-fold
    cross-validation(2-CV),作法是将dataset分成两个相等大小的subsets,进行两回合的分类器训练。在第一回合中,一个subset作为training
    set,另一个便作为test set;在第二回合中,则将training set与test set对换后,再次训练分类器,而其中我们比较关心的是两次test
    sets的辨识率。不过在实务上2-CV并不常用,主要原因是training
    set样本数太少,通常不足以代表母体样本的分布,导致test阶段辨识率容易出现明显落差。此外,2-CV中分subset的变异度大,往往无法达到「实验过程必须可以被复制」的要求。

    K-fold cross-validation (k-CV)则是double
    cross-validation的延伸,作法是将dataset切成k个大小相等的subsets,每个subset皆分别作为一次test
    set,其余样本则作为training set,因此一次k-CV的实验共需要建立k个models,并计算k次test
    sets的平均辨识率。在实作上,k要够大才能使各回合中的training set样本数够多,一般而言k=10算是相当足够了。

    最后是leave-one-out cross-validation
    (LOOCV),假设dataset中有n个样本,那LOOCV也就是n-CV,意思是每个样本单独作为一次test set,剩余n-1个样本则做为training
    set,故一次LOOCV共要建立n个models。相较于前面介绍的k-CV,LOOCV有两个明显的优点:

    每一回合中几乎所有的样本皆用于训练model,因此最接近母体样本的分布,估测所得的generalization
    error比较可靠。
    实验过程中没有随机因素会影响实验数据,确保实验过程是可以被复制的。

    但LOOCV的缺点则是计算成本高,因为需要建立的models数量与总样本数量相同,当总样本数量相当多时,LOOCV在实作上便有困难,除非每次训练model的速度很快,或是可以用平行化计算减少计算所需的时间。
  • 相关阅读:
    spring-boot配置文件中server.context-path不起作用的解决方案
    SpringBoot常见错误页面,Whitelabel Error Page解决办法(type=Not Found, status=404)
    JPA通用策略生成器(@GeneratedValue 四种标准用法为TABLE, SEQUENCE, IDENTITY, AUTO)
    springBoot+jpa 测试自增时数据库报错Springboot-jpa Table 'sell.hibernate_sequence' doesn't exist
    Java 枚举(enum) 详解7种常见的用法
    IntelliJ IDEA使用教程 (总目录篇)非常详细,适合各个层次的人群学习
    数据库之MySQL数据库视图:视图定义、创建视图、修改视图
    Java日志管理:Logger.getLogger()和LogFactory.getLog()的区别(详解Log4j)
    谷歌浏览器Chrome开发者工具详解
    基本数据类型----字符串
  • 原文地址:https://www.cnblogs.com/hdu-2010/p/4039290.html
Copyright © 2020-2023  润新知