public void Train(ILabeledExampleCollection <LblT, ExT> dataset)
 {
     foreach (ModelLabel modelLabel in ModelLabels.Take(ModelLabels.Count() - 1))
     {
         modelLabel.Model.Train(dataset);
         ModelLabel modelLabel_ = modelLabel;
         dataset = new LabeledDataset <LblT, ExT>(dataset.Where(le => !le.Label.Equals(modelLabel_.Label)));
     }
     ModelLabels.Last().Model.Train(dataset);
     IsTrained = true;
 }
 public Prediction <LblT> Predict(ExT example)
 {
     foreach (ModelLabel modelLabel in ModelLabels.Take(ModelLabels.Count() - 1))
     {
         Prediction <LblT> prediction = modelLabel.Model.Predict(example);
         if (prediction.BestClassLabel.Equals(modelLabel.Label))
         {
             return(prediction);
         }
     }
     return(ModelLabels.Last().Model.Predict(example));
 }
        public RedListViewModel()
        {
            Labels = new ModelLabels();

            Categories = new Dictionary <RedListCategory, ListItem>
            {
                { RedListCategory.EX, new ListItem {
                      Text = string.Format("{0} (EX)", Resource.RedListCategoryEX), Value = RedListCategory.EX.ToString()
                  } },
                { RedListCategory.RE, new ListItem {
                      Text = string.Format("{0} (RE)", Resource.RedListCategoryRE), Value = RedListCategory.RE.ToString()
                  } },
                { RedListCategory.CR, new ListItem {
                      Text = string.Format("{0} (CR)", Resource.RedListCategoryCR), Value = RedListCategory.CR.ToString()
                  } },
                { RedListCategory.EN, new ListItem {
                      Text = string.Format("{0} (EN)", Resource.RedListCategoryEN), Value = RedListCategory.EN.ToString()
                  } },
                { RedListCategory.VU, new ListItem {
                      Text = string.Format("{0} (VU)", Resource.RedListCategoryVU), Value = RedListCategory.VU.ToString()
                  } },
                { RedListCategory.NT, new ListItem {
                      Text = string.Format("{0} (NT)", Resource.RedListCategoryNT), Value = RedListCategory.NT.ToString()
                  } },
                { RedListCategory.DD, new ListItem {
                      Text = string.Format("{0} (DD)", Resource.RedListCategoryDD), Value = RedListCategory.DD.ToString()
                  } },
                { RedListCategory.LC, new ListItem {
                      Text = string.Format("{0} (LC)", Resource.RedListCategoryLC), Value = RedListCategory.LC.ToString()
                  } },
                { RedListCategory.NE, new ListItem {
                      Text = string.Format("{0} (NE)", Resource.RedListCategoryNE), Value = RedListCategory.NE.ToString()
                  } },
                { RedListCategory.NA, new ListItem {
                      Text = string.Format("{0} (NA)", Resource.RedListCategoryNA), Value = RedListCategory.NA.ToString()
                  } }
            };
        }