本文整理汇总了Java中weka.core.ContingencyTables.log2方法的典型用法代码示例。如果您正苦于以下问题:Java ContingencyTables.log2方法的具体用法?Java ContingencyTables.log2怎么用?Java ContingencyTables.log2使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类weka.core.ContingencyTables
的用法示例。
在下文中一共展示了ContingencyTables.log2方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: splitEnt
import weka.core.ContingencyTables; //导入方法依赖的package包/类
/**
* Help method for computing the split entropy.
*/
private final double splitEnt(Distribution bags, double totalnoInst) {
double returnValue = 0;
double noUnknown;
int i;
noUnknown = totalnoInst - bags.total();
if (Utils.gr(bags.total(), 0)) {
for (i = 0; i < bags.numBags(); i++) {
returnValue = returnValue - lnFunc(bags.perBag(i));
}
returnValue = returnValue - lnFunc(noUnknown);
returnValue = returnValue + lnFunc(totalnoInst);
}
return returnValue / ContingencyTables.log2;
}
示例2: splitCritValue
import weka.core.ContingencyTables; //导入方法依赖的package包/类
/**
* Computes entropy of test distribution with respect to training distribution.
*/
public final double splitCritValue(Distribution train, Distribution test) {
double result = 0;
int numClasses = 0;
int i, j;
// Find out relevant number of classes
for (j = 0; j < test.numClasses(); j++)
if (Utils.gr(train.perClass(j), 0) || Utils.gr(test.perClass(j), 0))
numClasses++;
// Compute entropy of test data with respect to training data
for (i = 0; i < test.numBags(); i++)
if (Utils.gr(test.perBag(i),0)) {
for (j = 0; j < test.numClasses(); j++)
if (Utils.gr(test.perClassPerBag(i, j), 0))
result -= test.perClassPerBag(i, j)*
Math.log(train.perClassPerBag(i, j) + 1);
result += test.perBag(i) * Math.log(train.perBag(i) + numClasses);
}
return result / ContingencyTables.log2;
}
示例3: oldEnt
import weka.core.ContingencyTables; //导入方法依赖的package包/类
/**
* Computes entropy of distribution before splitting.
*/
public final double oldEnt(Distribution bags) {
double returnValue = 0;
int j;
for (j=0;j<bags.numClasses();j++)
returnValue = returnValue+lnFunc(bags.perClass(j));
return (lnFunc(bags.total())-returnValue)/ContingencyTables.log2;
}
示例4: newEnt
import weka.core.ContingencyTables; //导入方法依赖的package包/类
/**
* Computes entropy of distribution after splitting.
*/
public final double newEnt(Distribution bags) {
double returnValue = 0;
int i,j;
for (i=0;i<bags.numBags();i++){
for (j=0;j<bags.numClasses();j++)
returnValue = returnValue+lnFunc(bags.perClassPerBag(i,j));
returnValue = returnValue-lnFunc(bags.perBag(i));
}
return -(returnValue/ContingencyTables.log2);
}
示例5: splitEnt
import weka.core.ContingencyTables; //导入方法依赖的package包/类
/**
* Computes entropy after splitting without considering the
* class values.
*/
public final double splitEnt(Distribution bags) {
double returnValue = 0;
int i;
for (i=0;i<bags.numBags();i++)
returnValue = returnValue+lnFunc(bags.perBag(i));
return (lnFunc(bags.total())-returnValue)/ContingencyTables.log2;
}
示例6: chooseIndex
import weka.core.ContingencyTables; //导入方法依赖的package包/类
/**
* Method for choosing a subset to expand.
*/
public final int chooseIndex() {
int minIndex = -1;
double estimated, min = Double.MAX_VALUE;
int i, j;
for (i = 0; i < m_sons.length; i++) {
if (son(i) == null) {
if (Utils.sm(localModel().distribution().perBag(i), m_minNumObj)) {
estimated = Double.MAX_VALUE;
} else {
estimated = 0;
for (j = 0; j < localModel().distribution().numClasses(); j++) {
estimated -= m_splitCrit.lnFunc(localModel().distribution()
.perClassPerBag(i, j));
}
estimated += m_splitCrit
.lnFunc(localModel().distribution().perBag(i));
estimated /= (localModel().distribution().perBag(i) * ContingencyTables.log2);
}
if (Utils.smOrEq(estimated, 0)) {
return i;
}
if (Utils.sm(estimated, min)) {
min = estimated;
minIndex = i;
}
}
}
return minIndex;
}