看过这篇博客的都应该明白,特征选择代码实现应该包括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. paip.提升效率---提升绑定层次--form绑定取代field绑定

    paip.提升效率---提升绑定层次--form绑定取代field绑定 =================== 编辑form中,常常需要,绑定一个对象到个form..   传统上要绑定field开始. ...

  2. paip.log4j 日志系统 参数以及最佳实践

    paip.log4j 日志系统 参数以及最佳实践   %d{yyyy-MM-dd HH:mm:ss} [thrd:%t] %5p   loger:%c   (%C.%M.%L)  - %m%n 201 ...

  3. JAVA学习Swing绝对局部简单学习

    package com.swing; import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; ...

  4. python redis使用

    #!/usr/bin/python #coding=utf-8 import redis class CRedis: def __init__(self): self.host = 'localhos ...

  5. iOS7隐藏状态栏 statusBar

    转:http://blog.csdn.net/dqjyong/article/details/17896145 评:通过这点变化,可以看出苹果倾向于使用delegate取代全局变量. IOS7中,不仅 ...

  6. Jquery easyui开启行编辑模式增删改操作

    Jquery easyui开启行编辑模式增删改操作 Jquery easyui开启行编辑模式增删改操作先上图 Html代码: <table id="dd"> </ ...

  7. Revit中如何将视图过滤器传递到其它项目

    在Revit中采用过滤器控制视图显示,利用过滤器给图元着色,利用过滤器控制视图显示或隐藏等,那么,在不同的项目中是否每次都要设置相同的过滤器,其实,Revit提供了这么一种在不同项目传递信息的方式,在 ...

  8. “代理XP”组件已作为此服务器安全配置的一部分被关闭的解决办法

    代理XP”组件已作为此服务器安全配置的一部分被关闭.系统管理员可以使用sp_configure来启用“代理XP”.有关启用“代理XP”的详细信息,请参阅SQL Server联机丛书中的“外围应用配置器 ...

  9. 常用jquery插件资料

    fullPage.js 全屏滚动https://github.com/alvarotrigo/fullPage.js Lava Lamp 导航条熔岩灯http://lavalamp.magicmedi ...

  10. gradle 如何操作命令行

    如题: 官方做法: task startApp(type: Exec){task -> workingDir mWorkingDirRoot commandLine 'cd'} 后来我看到这篇文 ...