<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Change Dir

    先知cd——熱愛生活是一切藝術(shù)的開始

    統(tǒng)計

    留言簿(18)

    積分與排名

    “牛”們的博客

    各個公司技術(shù)

    我的鏈接

    淘寶技術(shù)

    閱讀排行榜

    評論排行榜

    weka的java使用(2)——分類

    書接上文,既然寫了聚類,再把我用到的分類的相關(guān)代碼奉上。
      1/**
      2 * 
      3 */

      4package edu.tju.ikse.mi.util;
      5
      6import java.io.File;
      7import java.io.IOException;
      8
      9import weka.classifiers.Classifier;
     10import weka.core.Attribute;
     11import weka.core.Instances;
     12import weka.core.converters.ArffLoader;
     13
     14/**
     15 * @author Jia Yu
     16 * @date 2010-6-9
     17 */

     18public class WekaClassifier {
     19
     20    /**
     21     * @param args
     22     */

     23    private ArffLoader loader;
     24    private Instances dataSet;
     25    private File arffFile;
     26    private int sizeOfDataset;
     27    private Classifier classifier;
     28    private int sizeOfAttribute;
     29    private String resultClass;
     30    private double[] distributions;
     31
     32    public WekaClassifier(File file) throws Exception {
     33        this.arffFile = file;
     34        loadTrainSet();
     35        loadClassifier();
     36        buildClassifierModel();
     37    }

     38
     39    private void buildClassifierModel() throws Exception {
     40        this.classifier.buildClassifier(dataSet);
     41    }

     42
     43    private void loadClassifier() {
     44        this.classifier = new weka.classifiers.meta.RandomSubSpace();
     45    }

     46
     47    private void loadTrainSet() throws IOException {
     48        loader = new ArffLoader();
     49        loader.setFile(this.arffFile);
     50        dataSet = loader.getDataSet();
     51        setSizeOfDataset(dataSet.numInstances());
     52        setSizeOfAttribute(dataSet.numAttributes());
     53        dataSet.setClassIndex(this.sizeOfAttribute - 1);
     54    }

     55
     56    public void classifyInstance(weka.core.Instance instance) throws Exception {
     57        double tNum = this.classifier.classifyInstance(instance);
     58        setDistributions(this.classifier.distributionForInstance(instance));
     59        Attribute attr = dataSet.attribute(dataSet.classIndex());
     60        int classIndex = (int) tNum;
     61        setResultClass(attr.value(classIndex));
     62    }

     63    
     64    public static void main(String[] args) {
     65        File file = new File(
     66                "iris.arff");
     67        try {
     68            WekaClassifier wc = new WekaClassifier(file);
     69            double[] feature = 5.1,3.5,1.4,0.2 };
     70            weka.core.Instance ins = new weka.core.Instance(wc
     71                    .getSizeOfAttribute());
     72            ins.setDataset(wc.getDataSet());
     73            for (int i = 0; i < ins.numAttributes() - 1; i++{
     74                ins.setValue(i, feature[i]);
     75                // System.out.println(ins.attribute(i).getLowerNumericBound());
     76            }

     77            ins.setValue(ins.numAttributes() - 1"Iris-setosa");
     78            System.out.println("original class is "
     79                    + ins.stringValue(ins.numAttributes() - 1));
     80            wc.classifyInstance(ins);
     81            System.out.println("classify it to class "
     82                    + wc.getResultClass());
     83        }
     catch (Exception e) {
     84            e.printStackTrace();
     85        }

     86    }

     87
     88    public int getSizeOfAttribute() {
     89        return sizeOfAttribute;
     90    }

     91
     92    public void setSizeOfAttribute(int sizeOfAttribute) {
     93        this.sizeOfAttribute = sizeOfAttribute;
     94    }

     95
     96    public Instances getDataSet() {
     97        return dataSet;
     98    }

     99
    100    public void setDataSet(Instances dataSet) {
    101        this.dataSet = dataSet;
    102    }

    103
    104    public String getResultClass() {
    105        return resultClass;
    106    }

    107
    108    public void setResultClass(String resultClass) {
    109        this.resultClass = resultClass;
    110    }

    111
    112    public void setDistributions(double[] distributions) {
    113        this.distributions = distributions;
    114    }

    115
    116    public double[] getDistributions() {
    117        return distributions;
    118    }

    119
    120    public void setSizeOfDataset(int sizeOfDataset) {
    121        this.sizeOfDataset = sizeOfDataset;
    122    }

    123
    124    public int getSizeOfDataset() {
    125        return sizeOfDataset;
    126    }

    127}

    128

    其中的iris數(shù)據(jù)集也是數(shù)據(jù)挖掘領(lǐng)域的標(biāo)準(zhǔn)數(shù)據(jù)集,這個程序的運行結(jié)果如下:
    original class is Iris-setosa
    classify it to class Iris-setosa
    感興趣的朋友可以和我一起研究~~~郵件聯(lián)系哦。

    posted on 2010-11-04 09:51 changedi 閱讀(4074) 評論(2)  編輯  收藏 所屬分類: 機器學(xué)習(xí)

    評論

    # re: weka的java使用(2)——分類 2011-03-31 20:21 Jesson

    你好,我在學(xué)習(xí)weka中。。。利用java調(diào)用j48算法對數(shù)據(jù)集構(gòu)建分類模型,這個步驟問題 不大,重點是我應(yīng)該如何利用模型對未分類的數(shù)據(jù)集進(jìn)行分類?謝謝啊~~~~~  回復(fù)  更多評論   

    # re: weka的java使用(2)——分類 2011-03-31 20:35 changedi

    @Jesson
    在weka中默認(rèn)的分類是十折交叉驗證即train和test都用你提供的arff文件。你可以選擇train和test分開,使用單獨的train文件和test文件,在weka的explorer界面的classifier選項卡里有設(shè)置的,很容易找到。  回復(fù)  更多評論   

    主站蜘蛛池模板: 亚洲一区中文字幕久久| 免费无遮挡无码永久在线观看视频| 亚洲国产精品碰碰| 亚洲日韩国产AV无码无码精品| 久久国产乱子伦精品免费一| 国产精品亚洲аv无码播放| 国产精品福利片免费看| 亚洲一级特黄大片在线观看| 七次郎成人免费线路视频| 亚洲性日韩精品一区二区三区 | 亚洲国产精品无码久久久蜜芽| 久久高潮一级毛片免费| 中文字幕精品亚洲无线码二区| 中国好声音第二季免费播放| 久久久久久a亚洲欧洲aⅴ| 久久成人免费电影| 亚洲一级毛片在线播放| 女人被弄到高潮的免费视频| 国产精品成人亚洲| 国产亚洲精久久久久久无码AV| 你是我的城池营垒免费观看完整版 | 亚洲宅男天堂a在线| 久久精品网站免费观看| 亚洲欧美成人一区二区三区| 全亚洲最新黄色特级网站 | 青青青国产手机频在线免费观看 | 亚洲精品无码久久久久去q| 国产精品白浆在线观看免费| 亚洲沟沟美女亚洲沟沟| 免费无码不卡视频在线观看| 国产亚洲精彩视频| 亚洲av无码一区二区三区不卡 | 久久精品国产亚洲AV无码麻豆| 国产卡二卡三卡四卡免费网址| 亚洲国产精品18久久久久久| 久久亚洲国产精品五月天婷| 在线免费观看亚洲| 黄色免费网址在线观看| 亚洲国产一区国产亚洲| 永久免费AV无码网站在线观看| baoyu116.永久免费视频|