本文整理汇总了Java中cc.mallet.types.InstanceList.getFeatureSelection方法的典型用法代码示例。如果您正苦于以下问题:Java InstanceList.getFeatureSelection方法的具体用法?Java InstanceList.getFeatureSelection怎么用?Java InstanceList.getFeatureSelection使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cc.mallet.types.InstanceList
的用法示例。
在下文中一共展示了InstanceList.getFeatureSelection方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: train
import cc.mallet.types.InstanceList; //导入方法依赖的package包/类
public C45 train (InstanceList trainingList)
{
FeatureSelection selectedFeatures = trainingList.getFeatureSelection();
if (selectedFeatures != null)
// xxx Attend to FeatureSelection!!!
throw new UnsupportedOperationException ("FeatureSelection not yet implemented.");
C45.Node root = new C45.Node(trainingList, null, m_minNumInsts);
splitTree(root, 0);
C45 tree = new C45 (trainingList.getPipe(), root);
logger.info("C45 learned: (size=" + tree.getSize() + ")\n");
tree.print();
if (m_doPruning) {
tree.prune();
logger.info("\nPruned C45: (size=" + tree.getSize() + ")\n");
root.print();
}
root.stopGrowth();
this.classifier = tree;
return classifier;
}
示例2: evaluateInstanceList
import cc.mallet.types.InstanceList; //导入方法依赖的package包/类
public void evaluateInstanceList (ClassifierTrainer trainer, InstanceList instances, String description)
{
Classifier classifier = trainer.getClassifier();
if (classifier.getFeatureSelection() != instances.getFeatureSelection())
// TODO consider if we really want to do this... but note that the old MaxEnt did this to the testing the validation sets.
//instances.setFeatureSelection(classifier.getFeatureSelection());
System.out.print (description+" accuracy=" + classifier.getAccuracy (instances));
}
示例3: train
import cc.mallet.types.InstanceList; //导入方法依赖的package包/类
public DecisionTree train (InstanceList trainingList) {
FeatureSelection selectedFeatures = trainingList.getFeatureSelection();
DecisionTree.Node root = new DecisionTree.Node (trainingList, null, selectedFeatures);
splitTree (root, selectedFeatures, 0);
root.stopGrowth();
finished = true;
System.out.println ("DecisionTree learned:");
root.print();
this.classifier = new DecisionTree (trainingList.getPipe(), root);
return classifier;
}
示例4: train
import cc.mallet.types.InstanceList; //导入方法依赖的package包/类
/**
* Trains winnow on the instance list, updating
* {@link #weights weights} according to errors
* @param ilist Instance list to be trained on
* @return Classifier object containing learned weights
*/
public Winnow train (InstanceList trainingList)
{
FeatureSelection selectedFeatures = trainingList.getFeatureSelection();
if (selectedFeatures != null)
// xxx Attend to FeatureSelection!!!
throw new UnsupportedOperationException ("FeatureSelection not yet implemented.");
// if "train" is run more than once,
// we will be reinitializing the weights
// TODO: provide method to save weights
trainingList.getDataAlphabet().stopGrowth();
trainingList.getTargetAlphabet().stopGrowth();
Pipe dataPipe = trainingList.getPipe ();
Alphabet dict = (Alphabet) trainingList.getDataAlphabet ();
int numLabels = trainingList.getTargetAlphabet().size();
int numFeats = dict.size();
this.theta = numFeats * this.nfactor;
this.weights = new double [numLabels][numFeats];
// init weights to 1
for(int i=0; i<numLabels; i++)
for(int j=0; j<numFeats; j++)
this.weights[i][j] = 1.0;
//System.out.println("Init weights to 1. Theta= "+theta);
// loop through all instances
for (int ii = 0; ii < trainingList.size(); ii++){
Instance inst = (Instance) trainingList.get(ii);
Labeling labeling = inst.getLabeling ();
FeatureVector fv = (FeatureVector) inst.getData ();
double[] results = new double [numLabels];
int fvisize = fv.numLocations();
int correctIndex = labeling.getBestIndex();
for(int rpos=0; rpos < numLabels; rpos++)
results[rpos]=0;
// sum up xi*wi for each class
for(int fvi=0; fvi < fvisize; fvi++){
int fi = fv.indexAtLocation(fvi);
//System.out.println("feature index "+fi);
for(int lpos=0; lpos < numLabels; lpos++)
results[lpos] += this.weights[lpos][fi];
}
//System.out.println("In instance " + ii);
// make guess for each label using threshold
// update weights according to alpha and beta
// upon incorrect guess
for(int ri=0; ri < numLabels; ri++){
if(results[ri] > this.theta){ // guess 1
if(correctIndex != ri) // correct is 0
demote(ri, fv);
}
else{ // guess 0
if(correctIndex == ri) // correct is 1
promote(ri, fv);
}
}
// System.out.println("Results guessed:")
// for(int x=0; x<numLabels; x++)
// System.out.println(results[x]);
// System.out.println("Correct label: "+correctIndex );
// System.out.println("Weights are");
// for(int h=0; h<numLabels; h++){
// for(int g=0; g<numFeats; g++)
// System.out.println(weights[h][g]);
// System.out.println("");
// }
}
classifier = new Winnow (dataPipe, weights, theta, numLabels, numFeats);
return classifier;
}