Beispiel #1
0
        /// <summary>
        ///   Predicts the given Label from the object.
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public object Predict(object o)
        {
            var current = Generator.Descriptor.Convert(o, false).ToVector();

            var predictions = Classifiers.Select(s => new Tuple <object, double>(s.Key, s.Value.PredictRaw(current)))
                              .OrderByDescending(or => or.Item2).ToArray();

            return(predictions.FirstOrDefault().Item1);
        }
Beispiel #2
0
        /// <summary>
        ///   Predict all given Labels across all classifiers for the current object.
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        public IEnumerable <object> PredictClasses(object o)
        {
            var current = Generator.Descriptor.ToVector(o);

            var prediction = Classifiers.Select(s => new Tuple <object, double>(s.Key, s.Value.PredictRaw(current)))
                             .OrderByDescending(or => or.Item2);

            var sum = prediction.Sum(s => s.Item2);

            foreach (var predict in prediction)
            {
                if (predict.Item2 >= 0.5)
                {
                    yield return(predict.Item1);
                }
            }
        }