`
orange.lpai
  • 浏览: 92720 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Weka使用之属性选择

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

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

          

          

           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的信息。
分享到:
评论

相关推荐

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

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

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

    机器学习工具WEKA的使用总结 机器学习工具WEKA是数据挖掘和机器学习领域中的一个非常流行的开源工具,提供了大量的机器学习算法和数据预处理方法。下面是WEKA中的一些重要知识点总结: 一、属性选择 在机器学习和...

    WEKA使用教程WEKA使用教程

    用户可以根据具体需求选择合适的算法,并利用WEKA提供的界面进行模型训练和测试。 #### 5. 聚类分析 聚类分析是一种无监督的学习方法,旨在将相似的对象分组到同一类别中。WEKA支持多种聚类算法,包括K-means、EM...

    数据挖掘工具-weka使用说明

    数据挖掘工具-Weka使用说明 Weka是一个免费、非商业化、基于Java环境下开源的机器学习和数据挖掘软件。它是一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类...

    weka使用教程数据

    3. **选择算法**:WEKA提供多种分类、回归、聚类等算法,如C4.5决策树、Naive Bayes、SVM等,根据问题需求选择合适的算法。 4. **构建模型**:在“Classify”或“Cluster”菜单下选择算法并运行,生成模型。 5. **...

    weka使用中文教程

    WEKA 使用中文教程 WEKA(Waikato Environment for Knowledge Analysis)是一种开放的数据挖掘工作平台,能够承担大量数据挖掘任务,包括数据预处理、分类、回归、聚类、关联规则等。_WEKA 的主要开发者来自新西兰...

    WEKA使用指南(中文)

    WEKA 使用指南中文版 WEKA 是一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则以及在新的交互式界面上的可视化。WEKA 由四个主要部分...

    Weka使用教程合集

    ARFF是Weka专用的属性关系文件格式。 2. **预处理**:根据数据特点,选择合适的预处理工具,如删除无关特征、处理缺失值、进行特征编码等。 3. **选择算法**:在“Explorer”或“Experimenter”模式下,选择合适的...

    数据挖掘weka使用C4.5实验报告

    本实验报告聚焦于使用Weka工具,结合C4.5算法,对UCI数据集进行分类学习,探究数据集规模和属性数量对决策树分类准确度的影响。 决策树是一种常用的数据挖掘方法,它以树状结构呈现,自顶向下递归地根据属性值进行...

    Weka平台使用方法

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

    weka详细使用手册

    ### weka详细使用手册知识点概览 #### 一、Weka概述 - **版本信息**:本手册适用于Weka 3-6-3版本。 - **编写团队**:由Remco R. Bouckaert、Eibe Frank、Mark Hall、Richard Kirkby、Peter Reutemann、Alex ...

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

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

    weka详细使用文档实例

    与商业软件如SPSS的Clementine相比,Weka是非商业化的、免费的,非常适合数据挖掘初学者和研究人员使用。Weka的主要开发团队位于新西兰的怀卡托大学,这也是软件名称的由来之一。 Weka支持的数据格式为ARFF...

    weka的中文使用教程

    ### weka的中文使用教程 #### 一、Weka简介 Weka,全称为怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款基于Java的开源数据挖掘与知识发现工具。Weka由新西兰怀卡托大学的Ian H. ...

    weka中K-means使用演示

    WEKA 中 K-Means 使用演示 K-Means 算法是聚类分析中的一种常用方法,WEKA 作为一款功能强大的人工智能数据挖掘软件,也提供了 K-Means 算法的实现。下面将详细介绍如何使用 WEKA 实现 K-Means 聚类。 K-Means ...

Global site tag (gtag.js) - Google Analytics