本文整理汇总了Java中weka.classifiers.Sourcable类的典型用法代码示例。如果您正苦于以下问题:Java Sourcable类的具体用法?Java Sourcable怎么用?Java Sourcable使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Sourcable类属于weka.classifiers包,在下文中一共展示了Sourcable类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: toSource
import weka.classifiers.Sourcable; //导入依赖的package包/类
/**
* Returns the boosted model as Java source code.
*
* @param className the classname of the generated class
* @return the tree as Java source code
* @throws Exception if something goes wrong
*/
@Override
public String toSource(String className) throws Exception {
if (m_NumIterationsPerformed == 0) {
throw new Exception("No model built yet");
}
if (!(m_Classifiers[0] instanceof Sourcable)) {
throw new Exception("Base learner " + m_Classifier.getClass().getName()
+ " is not Sourcable");
}
StringBuffer text = new StringBuffer("class ");
text.append(className).append(" {\n\n");
text.append(" public static double classify(Object[] i) {\n");
if (m_NumIterationsPerformed == 1) {
text.append(" return " + className + "_0.classify(i);\n");
} else {
text.append(" double [] sums = new double [" + m_NumClasses + "];\n");
for (int i = 0; i < m_NumIterationsPerformed; i++) {
text.append(" sums[(int) " + className + '_' + i
+ ".classify(i)] += " + m_Betas[i] + ";\n");
}
text.append(" double maxV = sums[0];\n" + " int maxI = 0;\n"
+ " for (int j = 1; j < " + m_NumClasses + "; j++) {\n"
+ " if (sums[j] > maxV) { maxV = sums[j]; maxI = j; }\n"
+ " }\n return (double) maxI;\n");
}
text.append(" }\n}\n");
for (int i = 0; i < m_Classifiers.length; i++) {
text.append(((Sourcable) m_Classifiers[i]).toSource(className + '_' + i));
}
return text.toString();
}
示例2: toSource
import weka.classifiers.Sourcable; //导入依赖的package包/类
/**
* Returns the boosted model as Java source code.
*
* @param className the classname of the generated class
* @return the tree as Java source code
* @throws Exception if something goes wrong
*/
public String toSource(String className) throws Exception {
if (m_NumIterationsPerformed == 0) {
throw new Exception("No model built yet");
}
if (!(m_Classifiers[0] instanceof Sourcable)) {
throw new Exception("Base learner " + m_Classifier.getClass().getName()
+ " is not Sourcable");
}
StringBuffer text = new StringBuffer("class ");
text.append(className).append(" {\n\n");
text.append(" public static double classify(Object[] i) {\n");
if (m_NumIterationsPerformed == 1) {
text.append(" return " + className + "_0.classify(i);\n");
} else {
text.append(" double [] sums = new double [" + m_NumClasses + "];\n");
for (int i = 0; i < m_NumIterationsPerformed; i++) {
text.append(" sums[(int) " + className + '_' + i
+ ".classify(i)] += " + m_Betas[i] + ";\n");
}
text.append(" double maxV = sums[0];\n" +
" int maxI = 0;\n"+
" for (int j = 1; j < " + m_NumClasses + "; j++) {\n"+
" if (sums[j] > maxV) { maxV = sums[j]; maxI = j; }\n"+
" }\n return (double) maxI;\n");
}
text.append(" }\n}\n");
for (int i = 0; i < m_Classifiers.length; i++) {
text.append(((Sourcable)m_Classifiers[i])
.toSource(className + '_' + i));
}
return text.toString();
}
示例3: modelToSourcableModel
import weka.classifiers.Sourcable; //导入依赖的package包/类
public static String modelToSourcableModel(Classifier model, String className) throws Exception {
if (model instanceof Sourcable) {
Sourcable sourcable = (Sourcable) model;
return sourcable.toSource(className);
}
return null;
}
示例4: toSource
import weka.classifiers.Sourcable; //导入依赖的package包/类
/**
* Returns the boosted model as Java source code.
*
* @param className the classname in the generated code
* @return the tree as Java source code
* @throws Exception if something goes wrong
*/
public String toSource(String className) throws Exception {
if (m_NumGenerated == 0) {
throw new Exception("No model built yet");
}
if (!(m_Classifiers.get(0)[0] instanceof Sourcable)) {
throw new Exception("Base learner " + m_Classifier.getClass().getName()
+ " is not Sourcable");
}
StringBuffer text = new StringBuffer("class ");
text.append(className).append(" {\n\n");
text.append(" private static double RtoP(double []R, int j) {\n"
+ " double Rcenter = 0;\n"
+ " for (int i = 0; i < R.length; i++) {\n"
+ " Rcenter += R[i];\n" + " }\n" + " Rcenter /= R.length;\n"
+ " double Rsum = 0;\n" + " for (int i = 0; i < R.length; i++) {\n"
+ " Rsum += Math.exp(R[i] - Rcenter);\n" + " }\n"
+ " return Math.exp(R[j]) / Rsum;\n" + " }\n\n");
text.append(" public static double classify(Object[] i) {\n"
+ " double [] d = distribution(i);\n" + " double maxV = d[0];\n"
+ " int maxI = 0;\n" + " for (int j = 1; j < " + m_NumClasses
+ "; j++) {\n" + " if (d[j] > maxV) { maxV = d[j]; maxI = j; }\n"
+ " }\n return (double) maxI;\n }\n\n");
text.append(" public static double [] distribution(Object [] i) {\n");
text.append(" double [] Fs = new double [" + m_NumClasses + "];\n");
text.append(" double [] Fi = new double [" + m_NumClasses + "];\n");
text.append(" double Fsum;\n");
for (int i = 0; i < m_NumGenerated; i++) {
text.append(" Fsum = 0;\n");
for (int j = 0; j < m_NumClasses; j++) {
text.append(" Fi[" + j + "] = " + className + '_' + j + '_' + i
+ ".classify(i); Fsum += Fi[" + j + "];\n");
if (m_NumClasses == 2) {
text.append(" Fi[1] = -Fi[0];\n"); // 2-class case is special
break;
}
}
text.append(" Fsum /= " + m_NumClasses + ";\n");
text.append(" for (int j = 0; j < " + m_NumClasses + "; j++) {");
text.append(" Fs[j] += (Fi[j] - Fsum) * " + (m_NumClasses - 1) + " / "
+ m_NumClasses + "; }\n");
}
text.append(" double [] dist = new double [" + m_NumClasses + "];\n"
+ " for (int j = 0; j < " + m_NumClasses + "; j++) {\n"
+ " dist[j] = RtoP(Fs, j);\n" + " }\n return dist;\n");
text.append(" }\n}\n");
for (int i = 0; i < m_Classifiers.get(0).length; i++) {
for (int j = 0; j < m_Classifiers.size(); j++) {
text.append(((Sourcable) m_Classifiers.get(j)[i]).toSource(
className + '_' + i + '_' + j));
}
if (m_NumClasses == 2) {
break; // Only need one classifier per iteration in this case
}
}
return text.toString();
}
示例5: toSource
import weka.classifiers.Sourcable; //导入依赖的package包/类
/**
* Returns the boosted model as Java source code.
*
* @param className the classname in the generated code
* @return the tree as Java source code
* @throws Exception if something goes wrong
*/
public String toSource(String className) throws Exception {
if (m_NumGenerated == 0) {
throw new Exception("No model built yet");
}
if (!(m_Classifiers[0][0] instanceof Sourcable)) {
throw new Exception("Base learner " + m_Classifier.getClass().getName()
+ " is not Sourcable");
}
StringBuffer text = new StringBuffer("class ");
text.append(className).append(" {\n\n");
text.append(" private static double RtoP(double []R, int j) {\n"+
" double Rcenter = 0;\n"+
" for (int i = 0; i < R.length; i++) {\n"+
" Rcenter += R[i];\n"+
" }\n"+
" Rcenter /= R.length;\n"+
" double Rsum = 0;\n"+
" for (int i = 0; i < R.length; i++) {\n"+
" Rsum += Math.exp(R[i] - Rcenter);\n"+
" }\n"+
" return Math.exp(R[j]) / Rsum;\n"+
" }\n\n");
text.append(" public static double classify(Object[] i) {\n" +
" double [] d = distribution(i);\n" +
" double maxV = d[0];\n" +
" int maxI = 0;\n"+
" for (int j = 1; j < " + m_NumClasses + "; j++) {\n"+
" if (d[j] > maxV) { maxV = d[j]; maxI = j; }\n"+
" }\n return (double) maxI;\n }\n\n");
text.append(" public static double [] distribution(Object [] i) {\n");
text.append(" double [] Fs = new double [" + m_NumClasses + "];\n");
text.append(" double [] Fi = new double [" + m_NumClasses + "];\n");
text.append(" double Fsum;\n");
for (int i = 0; i < m_NumGenerated; i++) {
text.append(" Fsum = 0;\n");
for (int j = 0; j < m_NumClasses; j++) {
text.append(" Fi[" + j + "] = " + className + '_' +j + '_' + i
+ ".classify(i); Fsum += Fi[" + j + "];\n");
}
text.append(" Fsum /= " + m_NumClasses + ";\n");
text.append(" for (int j = 0; j < " + m_NumClasses + "; j++) {");
text.append(" Fs[j] += (Fi[j] - Fsum) * "
+ (m_NumClasses - 1) + " / " + m_NumClasses + "; }\n");
}
text.append(" double [] dist = new double [" + m_NumClasses + "];\n" +
" for (int j = 0; j < " + m_NumClasses + "; j++) {\n"+
" dist[j] = RtoP(Fs, j);\n"+
" }\n return dist;\n");
text.append(" }\n}\n");
for (int i = 0; i < m_Classifiers.length; i++) {
for (int j = 0; j < m_Classifiers[i].length; j++) {
text.append(((Sourcable)m_Classifiers[i][j])
.toSource(className + '_' + i + '_' + j));
}
}
return text.toString();
}
示例6: toSource
import weka.classifiers.Sourcable; //导入依赖的package包/类
/**
* Returns the boosted model as Java source code.
*
* @param className the classname in the generated code
* @return the tree as Java source code
* @throws Exception if something goes wrong
*/
public String toSource(String className) throws Exception {
if (m_NumGenerated == 0) {
throw new Exception("No model built yet");
}
if (!(m_Classifiers.get(0)[0] instanceof Sourcable)) {
throw new Exception("Base learner " + m_Classifier.getClass().getName()
+ " is not Sourcable");
}
StringBuffer text = new StringBuffer("class ");
text.append(className).append(" {\n\n");
text.append(" private static double RtoP(double []R, int j) {\n"+
" double Rcenter = 0;\n"+
" for (int i = 0; i < R.length; i++) {\n"+
" Rcenter += R[i];\n"+
" }\n"+
" Rcenter /= R.length;\n"+
" double Rsum = 0;\n"+
" for (int i = 0; i < R.length; i++) {\n"+
" Rsum += Math.exp(R[i] - Rcenter);\n"+
" }\n"+
" return Math.exp(R[j]) / Rsum;\n"+
" }\n\n");
text.append(" public static double classify(Object[] i) {\n" +
" double [] d = distribution(i);\n" +
" double maxV = d[0];\n" +
" int maxI = 0;\n"+
" for (int j = 1; j < " + m_NumClasses + "; j++) {\n"+
" if (d[j] > maxV) { maxV = d[j]; maxI = j; }\n"+
" }\n return (double) maxI;\n }\n\n");
text.append(" public static double [] distribution(Object [] i) {\n");
text.append(" double [] Fs = new double [" + m_NumClasses + "];\n");
text.append(" double [] Fi = new double [" + m_NumClasses + "];\n");
text.append(" double Fsum;\n");
for (int i = 0; i < m_NumGenerated; i++) {
text.append(" Fsum = 0;\n");
for (int j = 0; j < m_NumClasses; j++) {
text.append(" Fi[" + j + "] = " + className + '_' +j + '_' + i
+ ".classify(i); Fsum += Fi[" + j + "];\n");
if (m_NumClasses == 2) {
text.append(" Fi[1] = -Fi[0];\n"); // 2-class case is special
break;
}
}
text.append(" Fsum /= " + m_NumClasses + ";\n");
text.append(" for (int j = 0; j < " + m_NumClasses + "; j++) {");
text.append(" Fs[j] += (Fi[j] - Fsum) * "
+ (m_NumClasses - 1) + " / " + m_NumClasses + "; }\n");
}
text.append(" double [] dist = new double [" + m_NumClasses + "];\n" +
" for (int j = 0; j < " + m_NumClasses + "; j++) {\n"+
" dist[j] = RtoP(Fs, j);\n"+
" }\n return dist;\n");
text.append(" }\n}\n");
for (int i = 0; i < m_Classifiers.get(0).length; i++) {
for (int j = 0; j < m_Classifiers.size(); j++) {
text.append(((Sourcable)m_Classifiers.get(j)[i])
.toSource(className + '_' + i + '_' + j));
}
if (m_NumClasses == 2) {
break; // Only need one classifier per iteration in this case
}
}
return text.toString();
}