⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 env_inducer.java

📁 id3的java实现
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package shared;
import id3.ID3Inducer;
/*
 * Env_Inducer.java
 *
 * Created on January 23, 2002, 12:26 PM
 */

/** The Env_Inducer class provides functions for creating Inducer objects of any
 * specific type.
 * @author James Louis Ported to Java.
 */
public class Env_Inducer {

    /** GetEnv object used to access global variables.
     */    
    static GetEnv getEnv = new GetEnv();
    
    


    /** Help string for the INDUCER_TYPE option.
     */    
    static private String INDUCER_TYPE_HELP = "Use this option to select the type of "+
    "inducer to use.  Refer to inducer-specific documentation for more "+
    "details on what each of these inducers do.";
    
    /** List of Inducer names.
     */    
    static String[] InducerName  = {"null","ID3","HOODG","const","table-majority",
    "table-no-majority","IB","c4.5","c4.5-no-pruning","c4.5-rules","naive-bayes",
    "performance-estimator","oneR","disc-filter","EODG","lazyDT","bagging",
    "pebls","aha-ib","perceptron","winnow","disc-naive-bayes","oc1","CatDT",
    "cont-filter","list-hoodg","cn2","COODG","ListODG","T2","stacking","MC4",
    "SGIDT","nn-am","ripper","cart","c5.0","option-dt","booster","nbtree","ODT",
    "ddt","ddtC"};
    
    /** List of Inducer types associated with names.
     */    
    static String[] InducerType  = {"null","id3","hoodg","constInducer","tablemaj",
    "tablenomaj","ib","c45prune","c45nopruning","c45Rules","naiveBayes",
    "perfEst","oneR","dfInducer","eodg","lazyDT","baggingInd",
    "peblsInd","ahaIB","ptronInd","winnowInd","discNaiveBayes","oc1","catDT",
    "cfInducer","listHOODG","cn2","COODG","ListODG","t2Ind","stackingInd","mC4",
    "sgidt","nnAM","Ripper","cart","c50","optionDT","boosterInd","nbtree","ODT",
    "ddt","ddtC"};
    
    
    /** Creates a new instance of Env_Inducer. Should not be accessable. */
    public Env_Inducer() {
    }

    /** Returns an Inducer object of an unspecified type.
     * @return An Inducer object of an unspecified type.
     */    
    static public BaseInducer env_inducer() {
        return env_inducer(Globals.EMPTY_STRING);
    }
    
    /** Returns the name associated with the specified type.
     * @param inducerType Prefix for Inducer options.
     * @return The name of the Inducer type.
     */    
    static public String name_from_value(String inducerType) {
        int i;
        for(i = 0; i < InducerType.length && !InducerType[i].equals(inducerType); i++);
        if (i == InducerType.length) return "";
        else return InducerName[i];
    }
    
    /** Creates a new instance of Env_Inducer
     * @param prefix Prefix for Inducer options. Should correspond to the Inducer name.
     * @return An Inducer of the type corresponding to the name specified.
     */
    static public BaseInducer env_inducer(String prefix) {
        BaseInducer baseInd;
       
        String envVarType = prefix + "INDUCER";
        String envVarName = prefix + "INDUCER_NAME";
        
        String inducerType = getEnv.get_option_string(envVarType);
//        getEnv.get_option_enum_no_default(envVarType, envInducerEnum, INDUCER_TYPE_HELP, false, inducerType);
        String defaultInducerName = name_from_value(inducerType);
//        String inducerName = getEnv.get_option_string(envVarName, defaultInducerName, Globals.EMPTY_STRING, true);
        String inducerName = getEnv.get_option_string(envVarName,defaultInducerName,Globals.EMPTY_STRING,true);

        if (inducerType.equals("id3")){
                ID3Inducer inducer = new ID3Inducer(inducerName);
                inducer.set_user_options(prefix + "ID3_");
                return inducer;
            }
//            else if(inducerType.equals("naive-bayes")){
//                NaiveBayesInd inducer = new NaiveBayesInd(inducerName);
//                inducer.set_user_options(prefix + "NB_");
//                return inducer;
//            }
/*        switch (inducerType) {
            case "null":
                // create a null inducer that never aborts
                return new NullInducer(inducerName, false);
            case "MC4": {
                ID3Inducer inducer = new ID3Inducer(inducerName);
                inducer.set_c45_options();
                inducer.set_user_options(prefix + "MC4_");
                return inducer;
            }
            case "SGIDT": {
                SGIDTInducer inducer = new SGIDTInducer(inducerName);
                inducer.set_user_options(prefix + "SGIDT_");
                return inducer;
            }
            case "hoodg": {
                HOODGInducer inducer = new HOODGInducer(inducerName);
                BaseInducer inner = inducer;
                return make_disc_filter(prefix, inner);
            }
            case "constInducer": {
                ConstInducer inducer = new ConstInducer(inducerName);
                return inducer;
            }
            case "tablemaj": {
                TableInducer inducer = new TableInducer(inducerName, true);
                return inducer;
            }
            case "table-no-majority": {
                TableInducer inducer = new TableInducer(inducerName, false);
                return inducer;
            }
            case "IB": {
                IBInducer inducer = new IBInducer(inducerName);
                inducer.set_user_options(prefix);
                return inducer;
            }
            case "c4.5": {
                String c45Flags = get_option_string(prefix + "C45_FLAGS", C45Inducer.defaultPgmFlags);
                C45Inducer inducer = new C45Inducer(inducerName, c45Flags, true);
                return inducer;
            }
            case "c4.5-rules": {
                String c45Flags1 = get_option_string(prefix + "C45R_FLAGS1", C45RInducer.defaultPgmFlags1);
                String c45Flags2 = get_option_string(prefix + "C45R_FLAGS2", C45RInducer.defaultPgmFlags2);
                C45RInducer inducer = new C45RInducer(inducerName, c45Flags1, c45Flags2);
                return inducer;
            }
            case "c4.5-no-pruning": {
                String c45Flags = get_option_string(prefix + "C45_FLAGS", C45Inducer.defaultPgmFlags);
                C45Inducer inducer = new C45Inducer(inducerName, c45Flags, false);
                return inducer;
            }
            case "performance-estimator": {
                PerfEstInducer inducer = new PerfEstInducer(prefix, inducerName);
                return inducer;
            }
            case "oneR": {
                int minInstPerLabel = get_option_int(prefix + "MIN_INST", 6, "Small parameter", true);
                OneRInducer inducer = new OneRInducer(inducerName, minInstPerLabel);
                return inducer;
            }
            case "eodg": {
                EntropyODGInducer inducer = new EntropyODGInducer(inducerName);
                inducer.set_user_options(prefix + "ODG_");
                return inducer;
            }
            case "disc-filter": {
                DiscFilterInducer inducer = new DiscFilterInducer(inducerName);
                inducer.set_user_options(prefix);
                return inducer;
            }
            case "lazyDT": {
                LazyDTInducer inducer = new LazyDTInducer(inducerName);
                inducer.set_user_options(prefix + "LAZYDT_");
                BaseInducer *inner = inducer;
                return make_disc_filter(prefix, inner);
            }
            case "bagging": {
                BaggingInd inducer = new BaggingInd(inducerName);
                inducer.set_user_options(prefix);
                return inducer;
            }
            case "pebls": {
                PeblsInducer inducer = new PeblsInducer(inducerName);
                inducer.set_user_options(prefix);
                return inducer;
            }
            case "aha-ib": {
                AhaIBInducer inducer = new AhaIBInducer(inducerName);
                inducer.set_user_options(prefix);
                return inducer;
            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -