/// <summary> /// /// </summary> /// <param name="inputVariable"></param> /// <param name="inputVariableValue"></param> /// <returns></returns> public ClassCategory GetDecision(PatternClassificationInput inputVariable, int inputVariableValue) { // MatlabInterface.Execute request MatlabInterface.Execute("inputClassifierDecision = " + ClassifierUniqueId + ".InputNodeClassifiers(" + inputVariable.ClassifierMatlabIndex + ").getDecision(" + inputVariableValue + ");"); // fetch value and return var intResult = MatlabInterface.MatlabVariableToInteger("inputClassifierDecision", true); var c = _classificationCategories[intResult - 1]; return(c); }
/// <summary> /// /// </summary> /// <param name="inputVariable"></param> /// <param name="inputVariableValue"></param> /// <param name="c"></param> /// <param name="plot"></param> public void AssociateWithCategory(PatternClassificationInput inputVariable, int inputVariableValue, ClassCategory c, bool plot) { // associate input value with cateogiry, for the specified variable MatlabInterface.Execute(ClassifierUniqueId + " = " + ClassifierUniqueId + ".InputNodeClassifiers(" + inputVariable.ClassifierMatlabIndex + ").createAssociation(" + inputVariableValue + ", " + c.MatlabIndex + ");"); // plot if (plot) { MatlabInterface.Execute(ClassifierUniqueId + " = " + ClassifierUniqueId + ".InputNodeClassifiers(" + inputVariable.ClassifierMatlabIndex + ").plotLikelihoods();"); } }
/// <summary> /// On user selecting/deselecting listviewitem in Input Nodes listview /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void listOfInputNodes_itemsSelectedOrDeselected(object sender, EventArgs e) { if (listInputNodes.SelectedItems.Count > 0) { _selectedInputNode = (PatternClassificationInput)listInputNodes.SelectedItems[0].Tag; OnNewInputNodeSelected(); } else { _selectedInputNode = null; OnSelectedInputNodeCleared(); } }
/// <summary> /// /// </summary> /// <param name="inputVariable"></param> /// <param name="priorProbabilities"></param> public void SetCategoryPriories(PatternClassificationInput inputVariable, double[] priorProbabilities) { var matlabArrayName = "newPrioriesForInputNo_" + inputVariable.ClassifierMatlabIndex; MatlabInterface.ArrayToMatlabVector(priorProbabilities, matlabArrayName, true); if (priorProbabilities.Length != _classificationCategories.Count) { throw new ApplicationException( "Number of priories in array does not match number of classification categories!"); } MatlabInterface.Execute(ClassifierUniqueId + " = " + ClassifierUniqueId + ".setCategoryPrioriesForInput(" + inputVariable.ClassifierMatlabIndex + ", " + matlabArrayName + ");"); // plot resultant priories of BC MatlabInterface.Execute("plot(" + ClassifierUniqueId + ".InputNodeClassifiers(" + inputVariable.ClassifierMatlabIndex + ").priories);"); }