📄 statisticsminingmodel.java
字号:
}
/**
* 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 + -