• 【cs229-Lecture10】特征选择


    本节课要点:

    • VC维:
    • 模型选择算法

                 特征选择


    vc维:个人还是不太理解。个人的感觉就是为核函数做理论依据,低维线性不可分时,映射到高维就可分,那么映射到多高呢?我把可分理解为“打散”。

    参考的资料:http://www.cnblogs.com/boostable/p/iage_VC_dimension.html?utm_source=tuicool(前面的讲解很不错)

    http://www.svms.org/vc-dimension/

    http://www.tnove.com/?p=423&utm_source=tuicool


    模型选择

    选择过于简单的模型,可能会导致欠拟合;

    选择过于复杂的模型,可能会导致过拟合。

    那么问题来了?

    如何选择适合的模型呢?

    摘自http://blog.csdn.net/stdcoutzyx :机器学习的模型有很多,如何在多个模型中选择最好的一个?即便对于同一个模型来说,又如何选择最好的参数?这就是本节要解决的问题。具体举几个例子,比如多项式模型如何选择阶数?svm 模型如何选择惩罚参数 C 和正则化项?局部加权回归如何选择带宽参数?如何从神经网络与 svm 模型中选择一个较好的模型?等等。

    我们希望能够找到一个自动选择模型的方法。

    两种方法:保留交叉验证和特征选择。

    保留交叉验证:

    对于一个给定的训练集合,将其随机地划分成两个子集:训练集和保留交叉验证集。

    之后用训练集训练模型,用保留交叉验证集进行测试。最后选择具有最小测试误差的模型作为最后的结果。

              变种1:K重交叉验证:把数据集合分成k份。从第一份数据开始,保留第一份数据的(k-1)/k进行训练,用剩下的1/k进行测试。这样会得到k个误差,然后再取平均。

              k取10比较常见。这样做的优点:只需要留出更少的数据用于测试;缺点:需要大量的计算。

              变种2:留1交叉验证:划分的数目和样本的数目一样多。留出第一个样本进行测试,用剩下的进行训练;留出第二个样本进行测试,用剩下的进行训练;留出第三个样本进行测试,用剩下的进行训练……

               数据少的时候可以采用。

    特征选择:

    假设有n个特征,则有2^n个子集。我们要在这2^n个子集中选用一个集合,需要采用不同的启发式搜索算法。

    1、前向搜索算法(前向选择算法):从1~n,尝试将特征i加入到集合,并进行交叉验证。筛选出最好的特征F。计算量大。

    2、封装特征选择,后向选择算法:F初始为全部特征,然后从1~n,尝试逐个删除特征i,然后再进行交叉验证。

    3、过滤特征选择算法:对于每个特征i,衡量其对y的影响。计算与y的相关度。比如在文本分类问题中,我们常用的停用词,就是和y不相关,所以可以直接删掉。取相关度最大的前k个的特征,k多大,可以用交叉验证来计算。

  • 相关阅读:
    hadoop中namenode发生故障的处理方法
    开启虚拟机所报的错误:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for temporary fil
    Hbase的安装与部署(集群版)
    分别用反射、编程接口的方式创建DataFrame
    用Mapreduce求共同好友
    SparkSteaming中直连与receiver两种方式的区别
    privot函数使用
    Ajax无刷新显示
    使用ScriptManager服务器控件前后台数据交互
    数据库知识
  • 原文地址:https://www.cnblogs.com/XBWer/p/4330259.html
Copyright © 2020-2023  润新知