/** * Feature selection using Weka. * * @param trainData * weka train data * @param featureSearcher * list of features * @param attributeEvaluator * list of attribute evaluators * @return attribute selection * @throws Exception * in case of errors */ public static AttributeSelection singleLabelAttributeSelection(Instances trainData, List<String> featureSearcher, List<String> attributeEvaluator) throws Exception { AttributeSelection selector = new AttributeSelection(); // Get feature searcher ASSearch search = ASSearch.forName(featureSearcher.get(0), featureSearcher.subList(1, featureSearcher.size()).toArray(new String[0])); // Get attribute evaluator ASEvaluation evaluation = ASEvaluation.forName(attributeEvaluator.get(0), attributeEvaluator.subList(1, attributeEvaluator.size()).toArray(new String[0])); selector.setSearch(search); selector.setEvaluator(evaluation); selector.SelectAttributes(trainData); return selector; }
/** * Select attributes for a split of the data. Calling this function updates * the statistics on attribute selection. CVResultsString() returns a string * summarizing the results of repeated calls to this function. Assumes that * splits are from the same dataset--- ie. have the same number and types of * attributes as previous splits. * * @param split the instances to select attributes from * @exception Exception if an error occurs */ public void selectAttributesCVSplit(Instances split) throws Exception { m_ASEvaluator.buildEvaluator(split); // Do the search int[] attributeSet = m_searchMethod.search(m_ASEvaluator, split); // Do any postprocessing that a attribute selection method might // require attributeSet = m_ASEvaluator.postProcess(attributeSet); updateStatsForModelCVSplit(split, m_ASEvaluator, m_searchMethod, attributeSet, m_doRank); }
addMissing(train, missingLevel, predictorMissing, classMissing); search = ASSearch.makeCopies(getSearch(), 1)[0]; evaluation = ASEvaluation.makeCopies(getEvaluator(), 1)[0]; } catch (Exception ex) {
ASEvaluation evalCopy = ASEvaluation.makeCopies(m_evaluatorTemplate, 1)[0]; ASSearch searchCopy = ASSearch.makeCopies(m_searchTemplate, 1)[0]; if (!isStopRequested()) { String message = int[] selectedAtts = searchCopy.search(evalCopy, train); selectedAtts = evalCopy.postProcess(selectedAtts); if (m_isRanking) {
addMissing(train, missingLevel, predictorMissing, classMissing); search = ASSearch.makeCopies(getSearch(), 1)[0]; evaluation = ASEvaluation.makeCopies(getEvaluator(), 1)[0]; } catch (Exception ex) {
ASEvaluation evalCopy = ASEvaluation.makeCopies(m_evaluatorTemplate, 1)[0]; ASSearch searchCopy = ASSearch.makeCopies(m_searchTemplate, 1)[0]; if (!isStopRequested()) { String message = int[] selectedAtts = searchCopy.search(evalCopy, train); selectedAtts = evalCopy.postProcess(selectedAtts); if (m_isRanking) {
/** * * Feature selection using Weka. * * @param trainData * training data * @param featureSearcher * @param attributeEvaluator * @return a feature selector * @throws Exception */ public static AttributeSelection singleLabelAttributeSelection(Instances trainData, List<String> featureSearcher, List<String> attributeEvaluator) throws Exception { AttributeSelection selector = new AttributeSelection(); // Get feature searcher ASSearch search = ASSearch.forName(featureSearcher.get(0), featureSearcher.subList(1, featureSearcher.size()).toArray(new String[0])); // Get attribute evaluator ASEvaluation evaluation = ASEvaluation.forName(attributeEvaluator.get(0), attributeEvaluator.subList(1, attributeEvaluator.size()).toArray(new String[0])); selector.setSearch(search); selector.setEvaluator(evaluation); selector.SelectAttributes(trainData); return selector; }
ASEvaluation evalCopy = ASEvaluation.makeCopies(m_evaluatorTemplate, 1)[0]; ASSearch searchCopy = ASSearch.makeCopies(m_searchTemplate, 1)[0]; eval.setEvaluator(evalCopy); eval.setSearch(searchCopy);
/** * Select attributes for a split of the data. Calling this function updates * the statistics on attribute selection. CVResultsString() returns a string * summarizing the results of repeated calls to this function. Assumes that * splits are from the same dataset--- ie. have the same number and types of * attributes as previous splits. * * @param split the instances to select attributes from * @exception Exception if an error occurs */ public void selectAttributesCVSplit(Instances split) throws Exception { m_ASEvaluator.buildEvaluator(split); // Do the search int[] attributeSet = m_searchMethod.search(m_ASEvaluator, split); // Do any postprocessing that a attribute selection method might // require attributeSet = m_ASEvaluator.postProcess(attributeSet); updateStatsForModelCVSplit(split, m_ASEvaluator, m_searchMethod, attributeSet, m_doRank); }
/** * Feature selection using Weka. * * @param trainData * weka train data * @param featureSearcher * list of features * @param attributeEvaluator * list of attribute evaluators * @return attribute selection * @throws Exception * in case of errors */ public static AttributeSelection singleLabelAttributeSelection(Instances trainData, List<String> featureSearcher, List<String> attributeEvaluator) throws Exception { AttributeSelection selector = new AttributeSelection(); // Get feature searcher ASSearch search = ASSearch.forName(featureSearcher.get(0), featureSearcher.subList(1, featureSearcher.size()).toArray(new String[0])); // Get attribute evaluator ASEvaluation evaluation = ASEvaluation.forName(attributeEvaluator.get(0), attributeEvaluator.subList(1, attributeEvaluator.size()).toArray(new String[0])); selector.setSearch(search); selector.setEvaluator(evaluation); selector.SelectAttributes(trainData); return selector; }
ASEvaluation evalCopy = ASEvaluation.makeCopies(m_evaluatorTemplate, 1)[0]; ASSearch searchCopy = ASSearch.makeCopies(m_searchTemplate, 1)[0]; eval.setEvaluator(evalCopy); eval.setSearch(searchCopy);
attributeSet = m_searchMethod.search(m_ASEvaluator, m_trainInstances);
SearchOptions = Utils.splitOptions(SearchOptionsString); setSearch(ASSearch.forName(SearchClassName, SearchOptions));
addMissing(train, missingLevel, predictorMissing, classMissing); search = ASSearch.makeCopies(getSearch(), 2); evaluationB = ASEvaluation.makeCopies(getEvaluator(), 1)[0]; evaluationI = ASEvaluation.makeCopies(getEvaluator(), 1)[0];
attributeSet = m_searchMethod.search(m_ASEvaluator, m_trainInstances);
SearchOptions = Utils.splitOptions(SearchOptionsString); setSearch(ASSearch.forName(SearchClassName, SearchOptions));
addMissing(train, missingLevel, predictorMissing, classMissing); search = ASSearch.makeCopies(getSearch(), 2); evaluationB = ASEvaluation.makeCopies(getEvaluator(), 1)[0]; evaluationI = ASEvaluation.makeCopies(getEvaluator(), 1)[0];
int[] selected = m_search.search(m_evaluator, m_theInstances);
setSearch(ASSearch.forName(searchName, searchSpec));
addMissing(train, missingLevel, predictorMissing, classMissing); search = ASSearch.makeCopies(getSearch(), 1)[0]; evaluation = ASEvaluation.makeCopies(getEvaluator(), 1)[0]; trainCopy = new Instances(train);