`
anna_zr
  • 浏览: 200551 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Weka系列转载之属性选择

阅读更多
在这一节我们看看属性选择。在数据挖掘的研究中,通常要通过距离来计算样本之间的距离,而样本距离是通过属性值来计算的。我们知道对于不同的属性,它们在样本空间的权重是不一样的,即它们与类别的关联度是不同的,因此有必要筛选一些属性或者对各个属性赋一定的权重。这样属性选择的方法就应运而生了。

在属性选择方面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 {



    /**

     * @param args

     */

    public static void main(String[] args) {

       // TODO Auto-generated method stub

       Instances trainIns = null;

      

       try{

          

           /*

            * 1.读入训练

            * 在此我们将训练样本和测试样本是由weka提供的segment数据集构成的

            */

           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);

          

           /*

            * 2.初始化搜索算法(search method)及属性评测算法(attribute evaluator)

            */

           Ranker rank = new Ranker();

           InfoGainAttributeEval eval = new InfoGainAttributeEval();

          

           /*

            * 3.根据评测算法评测各个属性

            */

           eval.buildEvaluator(trainIns);

           //System.out.println(rank.search(eval, trainIns));

          

           /*

            * 4.按照特定搜索算法对属性进行筛选

            * 在这里使用的Ranker算法仅仅是属性按照InfoGain的大小进行排序

            */

           int[] attrIndex = rank.search(eval, trainIns);

          

           /*

            * 5.打印结果信息

            * 在这里我们了属性的排序结果同时将每个属性的InfoGain信息打印出来

            */

           StringBuffer attrIndexInfo = new StringBuffer();

           StringBuffer attrInfoGainInfo = new StringBuffer();

           attrIndexInfo.append("Selected attributes:");

           attrInfoGainInfo.append("Ranked attributes:\n");

           for(int i = 0; i < attrIndex.length; i ++){

              attrIndexInfo.append(attrIndex[i]);

              attrIndexInfo.append(",");

             

              attrInfoGainInfo.append(eval.evaluateAttribute(attrIndex[i]));

              attrInfoGainInfo.append("\t");

              attrInfoGainInfo.append((trainIns.attribute(attrIndex[i]).name()));

              attrInfoGainInfo.append("\n");

           }

           System.out.println(attrIndexInfo.toString());

           System.out.println(attrInfoGainInfo.toString());

          

       }catch(Exception e){

           e.printStackTrace();

       }

    }



}

在这个实例中,我用了InfoGain的属性选择类来进行特征选择。InfoGainAttributeEval主要是计算出各个属性的InfoGain信息。同时在weka中为属性选择方法配备的有搜索算法(seacher method),在这里我们用最简单的Ranker类。它对属性进行了简单的排序。在Weka中我们还可以对搜索算法设置一些其它的属性,例如设置搜索的属性集,阈值等等,如果有需求大家可以进行详细的设置。

在最后我们打印了一些结果信息,打印了各个属性的InfoGain的信息。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/anqiang1984/archive/2009/04/04/4048177.aspx
分享到:
评论

相关推荐

    机器学习工具WEKA的使用总结,包括算法选择、属性选择、参数优化.pdf

    机器学习工具WEKA的使用总结,包括算法选择、属性选择、参数优化 一、属性选择 在机器学习中,属性选择是指从原始数据中选择有代表性的特征,以提高模型的泛化能力和减少计算复杂度。WEKA中提供了多种属性选择方法...

    机器学习工具WEKA的使用总结,包括算法选择、属性选择、参数优化.doc

    WEKA提供了多种属性选择算法,包括Filter方法和Wrapper方法。 1. Filter方法:Filter方法根据单个属性和类别之间的相关性进行选择。WEKA中常用的Filter方法有: * CorrelationAttributeEval:根据单个属性和类别的...

    weka 特征选择

    详细讲述了weka中特征选择的使用,清晰,值得学习

    Weka源代码系列- 编程 样例

    这个压缩包包含了一系列的源代码样例,旨在帮助用户更深入地理解如何通过编程接口使用Weka进行数据分析和模型构建。以下是对这些样例代码的详细解释: 1. **ExperimentDemo.java**:这个文件演示了如何使用Weka中的...

    机器学习工具WEKA地使用总结材料,包括算法选择、属性选择、全参数优化.doc

    在机器学习领域,WEKA(Waikato Environment for Knowledge Analysis)是一款广泛使用的开源工具,它提供了多种数据预处理、分类、聚类、关联规则等算法,以及属性选择和参数优化等功能。本篇将详细探讨WEKA在算法...

    weka explorer用户指南中文

    Weka Explorer 提供了一系列功能强大的工具,用于数据预处理、分类、聚类、关联规则发现、属性选择以及数据可视化等。 #### 二、Weka Explorer 的启动与界面 ##### 启动Weka - **新菜单驱动的GUI**:Weka Explorer...

    weka详细使用手册

    - **执行选择**:执行属性选择的过程。 - **可视化**: - **散点图矩阵**:用于展示多维数据之间的关系。 - **选择2D散点图**:允许用户查看特定属性之间的关系。 - **选择实例**:突出显示数据集中的特定实例...

    weka详细使用文档实例

    Weka的主要开发团队位于新西兰的怀卡托大学,这也是软件名称的由来之一。 Weka支持的数据格式为ARFF(Attribute-Relation File Format),这是一种ASCII文本格式的文件,易于阅读和编辑。ARFF文件包含了数据集的头...

    weka特征选择

    图像美学是一个新兴的产业,通过weka软件选择高质量特征分辨图像美学。

    Weka平台使用方法

    2. 学习方法选择:用户可以在Weka的交互式界面中选择分类器或学习器,这些学习器有可调节的参数,通过属性列表或对象编辑器进行设置。常见的学习器有决策树、贝叶斯网络、支持向量机等。 3. 模型评估:Weka内置了...

    weka-src[weka源码]

    在Weka的源码中,`META-INF`可能包含了Weka的版本信息、签名信息以及其他元数据,这对于了解Weka的构建和打包过程是很有帮助的。 2. **weka**: 这个目录包含了Weka的核心代码。我们可以在这个目录下找到各种数据...

    Weka 中文版 v0.3 发布 基于weka 3.7.12 x64

    在第2版weka中文版的 基础上制作了第3版,暂定版本v0.3。将 guichooser 汉化完成。考虑到大家还是习惯使用 guichooser 作为默认启动界面,将 RunWeka.ini 中的设置恢复默认。但是为了支持中文,其中的编码选项从 cp...

    weka完整中文教程

    Weka提供了属性选择的工具,可以帮助用户识别出与特定目标变量相关性高的属性,从而提高数据挖掘任务的准确性。 ### 可视化分析 Weka的图形用户界面提供了一个交互式的环境,用户可以在这个环境中进行数据可视化...

    基于weka的数据分类分析实验报告(精选)

    数据分类是数据挖掘的重要任务之一,其目标是根据已知的属性值,将数据对象分配到预定义的类别中。Weka提供了多种经典的分类算法,如朴素贝叶斯、决策树(C4.5、ID3)、支持向量机(SVM)、随机森林等,这些算法各有...

    weka_doc(weka文档)

    Weka包含了大量预处理、分类、回归、聚类、关联规则和特征选择的算法,为用户提供了一个直观的图形用户界面以及命令行接口,便于进行数据探索和模型构建。 在Weka的文档中,你可以找到关于以下关键知识点的详细信息...

    weka参考手册 入门级

    - **定义**:数据集是Weka中的核心对象之一,通常是一个包含多个实例(样本)的表格形式的数据结构。 - **组成部分**:每个数据集都由一个或多个属性组成,其中每个属性都有一个名称和一个数据类型(如数值型、标称...

    weka.jar和weka.zip源码 API

    这个工具集提供了丰富的算法库,包括分类、回归、聚类、关联规则和特征选择等,并且支持数据预处理和可视化。Weka的核心是用Java编写的,因此可以通过API(应用程序接口)来与其他程序进行集成。 标题提到的“weka....

Global site tag (gtag.js) - Google Analytics