看过这篇博客的都应该明白,特征选择代码实现应该包括3个部分:

  1. 搜索算法;
  2. 评估函数;
  3. 数据;

因此,代码的一般形式为:

AttributeSelection attsel = new AttributeSelection(); // create and initiate a new AttributeSelection instance
Ranker search = new Ranker(); // choose a search method
PrincipalComponents eval = new PrincipalComponents(); // choose an evaluation method
attsel.setEvaluator(eval); // set evaluation method
attsel.setSearch(search); // set search method
attsel.SelectAttributes(data); // set the data to be used for attribute selection

其中,搜索方法和评估函数是不同的:

属性评估方法:

CfsSubsetEval:根据属性子集中每一个特征的预测能力以及它们之间的关联性进行评估。

GainRatioAttributeEval:根据与分类有关的每一个属性的增益比进行评估。

InfoGainAttributeEval:根据与分类有关的每一个属性的信息增益进行评估。

ChiSquaredAttributeEval:根据与分类有关的每一个属性的卡方值进行评估。

SymmetricalUncertAtrributeEval:根据与分类有关的每一个属性的对称不稳定性进行评估。

ClassifierSubsetEval:根据训练集或测试集之外的数据评估属性子集。

ConsistencySubsetEval:根据利用属性子集进行分类时得到的分类值的一致性进行评价。

CostSensitiveAttributeEval:根据使其基础子集评估开销敏感性,变化选择子集评估方法。

CostSentitiveSubsetEval:方法同上。

FilteresAttributeEval:运行在任意过滤器之后的数据上的任意属性评估。

FilteredSubsetEval:方法同上。

LatenSemanticAnalysis:根据数据的潜在的语义分析和转换进行评估,与随机搜索结合。

OneRAttributeEval:根据OneR分类器评估属性。

PrincipalComponents:根据数据的主要成分分析和转换进行评估。

ReliefFAttributeEval:通过反复测试一个实例和其同类或不同类中最近的实例上的属性值进行评估。

SignificanceAttributeEval:计算双向功能的概率意义评估属性值。

SymmetricalUncertAtrributeSetEval:根据与其他属性集有关的每一个属性的对称不稳定性进行评估。

WrapperSubsetEval:使用一种学习模式对属性集进行评估。

搜索算法:

BestFirst:可回溯的贪婪搜索扩张,最好优先原则。

ExhaustiveSearch:穷举搜索,从空集出发。

FCBFSearch:基于相关性分析的特征选择方法。相关性匹配搜索。

GeneticSearch:Goldberg(1989)提出的简单遗传算法。

GreedyStepwise:向前或向后的单步搜索。

LinearForwardSelection:线性向前搜索。

RaceSearch:比较特征子集的交叉验证错误情况。

RandomSearch:随机搜索。

Ranker:对属性值排序。

RankSearch:选择一个评估器对属性进行排序。

ScatterSearchV1:离散搜索。

SubsetSizeForwardSelection:按照特征子集大小向前线性搜索,这是线性搜索的扩展。

TabuSearch:禁忌搜索。

Subset Search Methods:
1. BestFirst
2. GreedyStepwise
3. FCBFSearch (ASU)

Subset Evaluation Methods:
1. CfsSubsetEval
2. SymmetricalUncertAttributeSetEval (ASU)

Individual Search Methods:
1. Ranker

Individual Evaluation Methods:
1. CorrelationAttributeEval
2. GainRatioAttributeEval
3. InfoGainAttributeEval
4. OneRAttributeEval
5. PrincipalComponents (used with a Rander search to perform PCA and data transform
6. ReliefFAttributeEval
7. SymmetricalUncertAttributeEval

代码样式可以参考:http://java-ml.sourceforge.net/content/feature-subset-selection

【Machine Learning】wekaの特征选择简介的更多相关文章

  1. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  2. [Machine Learning] Learning to rank算法简介

    声明:以下内容根据潘的博客和crackcell's dustbin进行整理,尊重原著,向两位作者致谢! 1 现有的排序模型 排序(Ranking)一直是信息检索的核心研究问题,有大量的成熟的方法,主要 ...

  3. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  4. 【机器学习Machine Learning】资料大全

    昨天总结了深度学习的资料,今天把机器学习的资料也总结一下(友情提示:有些网站需要"科学上网"^_^) 推荐几本好书: 1.Pattern Recognition and Machi ...

  5. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

  6. 机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho

    机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho 总述 本书是 2014 ...

  7. 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总

    <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...

  8. 【Machine Learning】Python开发工具:Anaconda+Sublime

    Python开发工具:Anaconda+Sublime 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现 ...

  9. 【Machine Learning】决策树案例:基于python的商品购买能力预测系统

    决策树在商品购买能力预测案例中的算法实现 作者:白宁超 2016年12月24日22:05:42 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本 ...

随机推荐

  1. iOS-App生命周期

    iOS APP 生命周期   官方文档: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneO ...

  2. 喜大普奔!Fanvas正式对外开源了,一键把Flash转为Canvas动画!移动终端动画开发不再困难。

    http://code.tencent.com/ https://github.com/TencentOpen/Fanvas DEMO: http://kenkozheng.github.io/fan ...

  3. [推荐]PaaS技术知识贴

    [推荐]PaaS技术知识贴 云计算PaaS技术与应用 http://wenku.baidu.com/view/08f77eefaeaad1f346933f20?fr=prin大型WEB网站架构深入分析 ...

  4. 如何在servlet取得spring beans (autowired)(转)

    在应用中一般普通的JavaPojo都是由Spring来管理的,所以使用autowire注解来进行注入不会产生问题,但是有两个东西是例外的,一个是 Filter,一个是Servlet,这两样东西都是由S ...

  5. 微信商城系统与手机APP的优势对比!

    随着移动互联网的大势到来,手机移动应用已经成为未来的主流市场,很多企业也在投入精力和财力进行研发自己的手机APP,以便更好的迎合市场的需求. 然而当微信公众平台开放以后,新的机会出现了! 很多企业已经 ...

  6. NR_OPEN 与 NR_FILE 的区别

    NR_OPEN 与 NR_FILE 的区别 阅读0.11版的内核源码时,在linux-0.11/fs/pipe.c中,函数sys_pipe()里面出现了2个宏定义,NR_OPEN 与 NR_FILE. ...

  7. H5小游戏的坑点小结

    坑点: 1) iOS 9.1 的safari中,在onTouchBegan方法中调用cc.audioEngine.playEffect播放音效是没有效果的,如果在onTouchEnded调用则是正常的 ...

  8. 一个优秀windows C++程序员的知识体系

    思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的热情. 转自http://www.cppblog.co ...

  9. (转)投影矩阵的推导(Deriving Projection Matrices)

    转自:http://blog.csdn.net/gggg_ggg/article/details/45969499 本文乃<投影矩阵的推导>译文,原文地址为: http://www.cod ...

  10. Log4j2常见使用示例及Syslog/Syslog-ng

    准备工作 打开http://logging.apache.org/log4j/,点击左侧Download,我下载的是Apache Log4j 2 binary (zip),目前是2.0.2版本.解压后 ...