public override void Classify(FeatureVectorList featureVectors) { base.Classify(featureVectors); if (Model.IncidentTypes.Count != 1) { throw new Exception("SvmRank cannot be used for multi-incident predictions. Select a single incident type."); } string incident = Model.IncidentTypes.First(); _svmRank.Classify(featureVectors); int maxRank = featureVectors.Max(vector => int.Parse(vector.DerivedFrom.PredictionConfidenceScores.Keys.First())) + 1; foreach (FeatureVector vector in featureVectors) { int rank = int.Parse(vector.DerivedFrom.PredictionConfidenceScores.Keys.First()) + 1; float score = (maxRank - rank) / (float)maxRank; vector.DerivedFrom.PredictionConfidenceScores.Clear(); vector.DerivedFrom.PredictionConfidenceScores.Add(incident, score); } }
public override void Classify(FeatureVectorList featureVectors) { base.Classify(featureVectors); if (Model.IncidentTypes.Count != 1) throw new Exception("SvmRank cannot be used for multi-incident predictions. Select a single incident type."); string incident = Model.IncidentTypes.First(); _svmRank.Classify(featureVectors); int maxRank = featureVectors.Max(vector => int.Parse(vector.DerivedFrom.PredictionConfidenceScores.Keys.First())) + 1; foreach (FeatureVector vector in featureVectors) { int rank = int.Parse(vector.DerivedFrom.PredictionConfidenceScores.Keys.First()) + 1; float score = (maxRank - rank) / (float)maxRank; vector.DerivedFrom.PredictionConfidenceScores.Clear(); vector.DerivedFrom.PredictionConfidenceScores.Add(incident, score); } }