package com.datascience.core.nominal; import com.datascience.core.base.*; import com.datascience.core.results.IResults; import com.datascience.core.results.WorkerResult; import com.datascience.core.results.DatumResult; import com.datascience.utils.CostMatrix; import java.util.Collection; import java.util.HashMap; import java.util.Map; import static com.datascience.core.nominal.Quality.getMinSpammerCost; /** * User: artur */ public class NominalProject extends Project<String, INominalData, DatumResult, WorkerResult> { protected NominalAlgorithm nomAlgorithm; public static final String kind = "NOMINAL"; public NominalProject(Algorithm algorithm1, INominalData data, IResults<String, DatumResult, WorkerResult> results){ super(algorithm1, data, results); nomAlgorithm = (NominalAlgorithm) algorithm1; // just to skip casting over and over algorithm.setData(data); algorithm.setResults(results); } @Override public NominalAlgorithm getAlgorithm(){ return nomAlgorithm; } @Override public String getKind(){ return kind; } @Override protected Map<String, Object> getAdditionalInfo() { Map<String, Object> ret = new HashMap<String, Object>(); ret.put("strategicSpammerCost", getMinSpammerCost(this)); return ret; } public void initializeCategories(Collection<String> categories, Collection<CategoryValue> categoryPriors, CostMatrix<String> costMatrix){ data.initialize(categories, categoryPriors, costMatrix); nomAlgorithm.initializeOnCategories(); } }