public void PredictWinner_NotTrained_ReturnUnknownClass() { // Given var testPattern = new SparsePattern(new Dictionary<int, float> { { 1, 1.0f }, { 2, 0.85f } }, 1); // When var winningClass = m_classifier.PredictWinner(testPattern); // Then Assert.That(winningClass, Is.EqualTo(UnknownClassID)); }
public void PredictWinner_ClassTwoWins() { // Given const int classOne = 1; const int classTwo = 2; var patterns = new[] { new SparsePattern(new Dictionary<int, float> {{1,1.0f}, {2,1.0f} }, classOne), new SparsePattern(new Dictionary<int, float> {{3,1.0f}, {4,1.0f}}, classTwo) }; var testPattern = new SparsePattern(new Dictionary<int, float> { {3, 2.0f }, {4, 4.0f } }, classTwo); // When m_classifier.Train(patterns); var winningClass = m_classifier.PredictWinner(testPattern); // Then Assert.That(winningClass, Is.EqualTo(classTwo)); }
public void Write(SparsePattern sparsePattern) { if(sparsePattern.Explain == null) return; if (!HeaderWritten) { foreach (var explanation in sparsePattern.Explain) { m_streamWriter.WriteLine("classes({0}).name = '{1}';", explanation.Key, explanation.Value); } HeaderWritten = true; } var features = new float[m_maxFeatureId + 1]; features[0] = sparsePattern.Label; for (var featId = 0; featId < m_maxFeatureId; featId++) { features[featId + 1] = sparsePattern.Features[featId + 1]; } var featuresAsString = (from f in features select f.ToString(m_formatProvider)).ToArray(); m_streamWriter.WriteLine("pattern({0},:) = [{1}];", ++m_patternId, string.Join(",", featuresAsString)); }