Weka使用之属性选择
2016-09-26 14:25
183 查看
原文地址:Weka使用之属性选择作者:wbxjj转自:http://anna-zr.javaeye.com/blog/578943
在这一节我们看看属性选择。在数据挖掘的研究中,通常要通过距离来计算样本之间的距离,而样本距离是通过属性值来计算的。我们知道对于不同的属性,它们在样本空间的权重是不一样的,即它们与类别的关联度是不同的,因此有必要筛选一些属性或者对各个属性赋一定的权重。这样属性选择的方法就应运而生了。
在属性选择方面InfoGain和GainRatio的比较常见,也是最通俗易懂的方法。它们与Decision
Tree的构造原理比较相似,哪个节点拥有的信息量就为哪个节点赋较高的权重。其它的还有根据关联度的办法来进行属性选择(Correlation-based
Feature Subset Selection for Machine
Learning)。具体它的工作原理大家可以在网上看论文。
现在我将简单的属性选择实例给大家展示一下:
package com.csdn;
import java.io.File;
import weka.attributeSelection.InfoGainAttributeEval;
import weka.attributeSelection.Ranker;
import weka.classifiers.Classifier;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class SimpleAttributeSelection {
public
static void main(String[] args) {
// TODO Auto-generated method stub
Instances trainIns = null;
try{
File file= new File("C:\Program
Files\Weka-3-6\data\segment-challenge.arff");
ArffLoader loader = new ArffLoader();
loader.setFile(file);
trainIns = loader.getDataSet();
//在使用样本之前一定要首先设置instances的classIndex,否则在使用instances对象是会抛出异常
trainIns.setClassIndex(trainIns.numAttributes()-1);
Ranker rank = new Ranker();
InfoGainAttributeEval eval = new InfoGainAttributeeval_r();
eval.buildEvaluator(trainIns);
//System.out.println(rank.search(eval, trainIns));
int[] attrIndex = rank.search(eval, trainIns);
在这一节我们看看属性选择。在数据挖掘的研究中,通常要通过距离来计算样本之间的距离,而样本距离是通过属性值来计算的。我们知道对于不同的属性,它们在样本空间的权重是不一样的,即它们与类别的关联度是不同的,因此有必要筛选一些属性或者对各个属性赋一定的权重。这样属性选择的方法就应运而生了。
在属性选择方面InfoGain和GainRatio的比较常见,也是最通俗易懂的方法。它们与Decision
Tree的构造原理比较相似,哪个节点拥有的信息量就为哪个节点赋较高的权重。其它的还有根据关联度的办法来进行属性选择(Correlation-based
Feature Subset Selection for Machine
Learning)。具体它的工作原理大家可以在网上看论文。
现在我将简单的属性选择实例给大家展示一下:
package com.csdn;
import java.io.File;
import weka.attributeSelection.InfoGainAttributeEval;
import weka.attributeSelection.Ranker;
import weka.classifiers.Classifier;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class SimpleAttributeSelection {
public
static void main(String[] args) {
// TODO Auto-generated method stub
Instances trainIns = null;
try{
File file= new File("C:\Program
Files\Weka-3-6\data\segment-challenge.arff");
ArffLoader loader = new ArffLoader();
loader.setFile(file);
trainIns = loader.getDataSet();
//在使用样本之前一定要首先设置instances的classIndex,否则在使用instances对象是会抛出异常
trainIns.setClassIndex(trainIns.numAttributes()-1);
Ranker rank = new Ranker();
InfoGainAttributeEval eval = new InfoGainAttributeeval_r();
eval.buildEvaluator(trainIns);
//System.out.println(rank.search(eval, trainIns));
int[] attrIndex = rank.search(eval, trainIns);
相关文章推荐
- (转)机器学习工具WEKA使用总结,包括算法选择、参数优化、属性选择
- GTK+ 消息对话框 属性对话框 字体选择对话框 颜色选择对话框 的使用例子
- Asp.net 2.0中使用ValidationGroup属性有选择验证某些控件(http://hi.baidu.com/tracyjay/blog/item/4e894e205fa18a4593580785.html)
- jquery属性选择器使用事例
- weka的java使用(3)——特征选择
- Weka-Fliter类-选择属性变量[4]
- [CODE Smith]属性窗中填写属性时使用选择文件夹路径
- 使用js创建div、添加子div并给div设置在css中定义的class选择属性以及设置style属性
- [JQ权威指南]第四天:使用JQ属性过滤器选择元素
- 在Java中使用weka:在数据集中增加属性
- jQuery 之 (二)事件操作、jq对文档的操作、属性选择器使用
- Weka学习四(属性选择)
- 使用jQuery属性过滤选择器选择元素
- script标签属性type与language使用选择
- 使用 CSS3 新属性 user-select 控制网页内容的选择范围
- weka之属性选择
- sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所
- script标签属性type与language使用选择
- 使用 jQuery 属性选择器获取服务器控件 ClientID
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)