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

📄 statisticsminingmodel.java

📁 一个数据挖掘软件ALPHAMINERR的整个过程的JAVA版源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }

    /**
     * Reads PMML ModelStats. Not supported.
     *
     * @param pmmlObject object of ModelStats
     * @exception MiningException always thrown
     * @see com.prudsys.pdm.Adapters.PmmlVersion20.ModelStats
     */
    public void parsePmmlObject( Object pmmlObject ) throws MiningException
    {
        throw new MiningException("not implemented");
    }

    /**
     * Writes statistics model as plain text.
     *
     * @param writer writer for plain text model
     * @exception MiningException can't write plain text
     */
    public void writePlainText( Writer writer ) throws MiningException
    {
        String s = printStat( rootGroup, 0 );
        try
        {
            writer.write( s );
            writer.flush();
        }
        catch( IOException ex )
        {
            throw new MiningException( "Can't write to plain text." );
        }
    }

    /**
     * Get root element of statistics. By traversing the tree,
     * you obtain all data of the statistics model.
     *
     * @return root element of statistics
     * @see Group
     */
    public Group getRootGroup()
    {
        return rootGroup;
    }

    /**
     * Sets root element of statistics.
     *
     * @param rootGroup new root element of statistics
     * @see Group
     */
    public void setRootGroup(Group rootGroup)
    {
        this.rootGroup = rootGroup;
    }

    /**
     * Returns given number of tabs as string.
     *
     * @param num number of tabs
     * @return tab string
     */
    private String printTabs(int num)
    {
        String s = "";
        for(int i=0;i<num;i++) s = s + "\t";
        return s;
    }

    /**
     * Returns grouped statistics by recursion as string.
     *
     * @param info current statistics node
     * @param level of the node (just for tabs)
     * @return statistics
     */
    private String printStat( Group info, int level )
    {
        String description = "";
        MiningDataSpecification metaData = this.getMiningSettings().getDataSpecification();
        int attrNum = info.getGroupAttribute();
        if(attrNum!=-1)
        {
            if(info instanceof CategoricalGroup)
            {
                CategoricalGroup categ = (CategoricalGroup)info;
                CategoricalAttribute attribute = (CategoricalAttribute)metaData.getMiningAttribute(attrNum);
                double value = categ.getValue();
                description = description + printTabs(level);
                description = description + "Categorical group: "+attribute.getName()+" with value: "+value+" ("+attribute.getCategory(value)+")" + "\n";
            }
            else if(info instanceof NumericGroup)
            {
                NumericGroup numeric = (NumericGroup)info;
                NumericAttribute attribute = (NumericAttribute)metaData.getMiningAttribute(attrNum);
                double low = numeric.getLow();
                double high = numeric.getHigh();
                description = description + printTabs(level);
                description = description + "Numeric group: "+attribute.getName()+" ("+low+" .. "+high+")" + "\n";
            }
            else
            {
                TimeGroup time = (TimeGroup)info;
                NumericAttribute attribute = (NumericAttribute)metaData.getMiningAttribute(attrNum);
                int unit = time.getGroupUnit();
                int value = time.getGroupValue();
                description = description + printTabs(level);
                description = description + "Time group: "+attribute.getName()+" with unit ";
                switch(unit)
                {
                    case java.util.Calendar.SECOND: description = description + "'Seconds'"; break;
                    case java.util.Calendar.MINUTE: description = description + "'Minute'"; break;
                    case java.util.Calendar.HOUR_OF_DAY: description = description + "'Hour'"; break;
                    case java.util.Calendar.DAY_OF_MONTH: description = description + "'Day'"; break;
                    case java.util.Calendar.WEEK_OF_MONTH: description = description + "'Week'"; break;
                    case java.util.Calendar.MONTH: description = description + "'Month'"; break;
                    case java.util.Calendar.YEAR: description = description + "'Year'"; break;
                    default: description = description + "'Unknown!!!' = "+unit;
                }
                description = description + " = "+value + "\n";
            }
        }
        else
        {
            description = description + printTabs(level);
            if(info.getParent()==null) description = description + "Root" + "\n";
            else description = description + "Other" + "\n";
        }
        description = description + printTabs(level); description = description + "Contains "+info.getCount()+" vectors" + "\n";
        if(!info.isLeaf())
        {
            description = description + printTabs(level+1);
            description = description + info.getChildCount()+" subgroups" + "\n";
            for(int i=0;i<info.getChildCount();i++)
            description = description + printStat((Group)info.getChildAt(i),level+1);
        }
        else
        {
            long count = info.getCount();
            if(count!=0)
            {
                description = description + printTabs(level); description = description + "Univariate:" + "\n";
                description = description + printTabs(level+1); description = description + "Count: "+info.getCount() + "\n";
                description = description + printTabs(level+1); description = description + "Min: "+info.getMin() + "\n";
                description = description + printTabs(level+1); description = description + "Max: "+info.getMax() + "\n";
                description = description + printTabs(level+1); description = description + "Range: "+info.getRange() + "\n";
                description = description + printTabs(level+1); description = description + "Sum: "+info.getSum() + "\n";
                description = description + printTabs(level+1); description = description + "Mean: "+info.getMean() + "\n";
                description = description + printTabs(level+1); description = description + "Quartile 25: "+info.getQuart25() + "\n";
                description = description + printTabs(level+1); description = description + "Quartile 50: "+info.getQuart50() + "\n";
                description = description + printTabs(level+1); description = description + "Quartile 75: "+info.getQuart75() + "\n";
                description = description + printTabs(level+1); description = description + "Interquartile range: "+info.getQuartRange() + "\n";
                description = description + printTabs(level+1); description = description + "Variance: "+info.getVariance() + "\n";
                description = description + printTabs(level+1); description = description + "Standart: "+info.getStandart() + "\n";
                description = description + printTabs(level+1); description = description + "Skewness: "+info.getSkewness() + "\n";
                description = description + printTabs(level+1); description = description + "Variation coefficient: "+info.getVarCoeff() + "\n";
                description = description + printTabs(level); description = description + "Multivariate:" + "\n";
                description = description + printTabs(level+1); description = description + "Correlation: "+info.getCorrelation() + "\n";
                java.util.Enumeration em = info.getContingencyTable();
                java.util.Vector vec;
                if(em!=null)
                {
                    vec = new java.util.Vector();
                    while(em.hasMoreElements())
                    vec.add(em.nextElement());
                    description = description + printTabs(level+1); description = description + "Contingency table contains "+vec.size()+" elements" + "\n";
                    for(int i=0;i<vec.size();i++)
                    {
                        description = description + printTabs(level+2);
                        ContingencyEntry entry = (ContingencyEntry)vec.get(i);
                        description = description + entry.toString() + "\n";
                    }
                }
                else
                {
                    description = description + printTabs(level+1);
                    description = description + "Contingency table is empty" + "\n";
                }
                description = description +  "\n";
            }
            else
            {
                description = description + printTabs(level+1); description = description + "Empty group" + "\n";
            }
        }
        return description;
    }
}

⌨️ 快捷键说明

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