Beispiel #1
0
        static EvaluatedData Evaluate(Trained[,] trained, TrainingData refineData, int have)
        {
            if (refineData.level != have) return null;
            EvaluatedData e = new EvaluatedData() { level = refineData.level, Label = refineData.Label, DocCount = refineData.DocCount };
            for (int stop = 0; stop <= have; stop++)
            {
                if (trained[stop, have] == null) e.Score[stop] = float.MaxValue;
                else e.Score[stop] = trained[stop, have].predictor.Predict(new TrainingData(refineData, stop)).Score;
            }

            return e;
        }
Beispiel #2
0
 public TrainingData(TrainingData b, int level)
 {
     this.Label = b.Label;
     this.DocCount = b.DocCount;
     this.l1_0 = b.l1_0;
     this.l2_0 = b.l2_0;
     this.l1_1 = b.l1_1;
     if (level >= 1)
     {
         this.l2_1 = b.l2_1;
         this.dl2_1 = b.dl2_1;
     }
     this.l1_2 = b.l1_2;
     if (level >= 2)
     {
         this.l2_2 = b.l2_2;
         this.dl2_2 = b.dl2_2;
     }
     this.l1_3 = b.l1_3;
     if (level >= 3)
     {
         this.l2_3 = b.l2_3;
         this.dl2_3 = b.dl2_3;
     }
     this.l1_4 = b.l1_4;
     if (level >= 4)
     {
         this.l2_4 = b.l2_4;
         this.dl2_4 = b.dl2_4;
     }
     this.l1_5 = b.l1_5;
     if (level >= 5)
     {
         this.l2_5 = b.l2_5;
         this.dl2_5 = b.dl2_5;
     }
 }
Beispiel #3
0
        static void ReadRawData()
        {
            using (TextReader tr = new StreamReader(@"raas.csv"))
            {
                string line;
                int cnt = 0;
                while (null != (line = tr.ReadLine()))
                {
                    string[] parts = line.Split(',');
                    if (parts.Length >= 3)
                    {
                        cnt++;
                        TrainingData d = new TrainingData();
                        d.Label = float.Parse(parts[0]);
                        d.DocCount = float.Parse(parts[1]);
                        d.l1_0 = float.Parse(parts[2]);
                        d.l2_0 = float.Parse(parts[3]);
                        d.level = 0;

                        if (parts.Length >= 6)
                        {
                            d.l1_1 = float.Parse(parts[4]);
                            d.dl1_1 = d.l1_1 - d.l1_0;
                            d.l2_1 = float.Parse(parts[5]);
                            d.dl2_1 = d.l2_1 - d.l2_0;
                            d.level = 1;
                        }
                        else
                        {
                            d.l1_1 = -5;
                        }

                        if (parts.Length >= 8)
                        {
                            d.l1_2 = float.Parse(parts[TrainingData.Levels]);
                            d.dl1_2 = d.l1_2 - d.l1_1;
                            d.l2_2 = float.Parse(parts[7]);
                            d.dl2_2 = d.l2_2 - d.l2_1;
                            d.level = 2;
                        }
                        else
                        {
                            d.l1_2 = -5;
                        }

                        if (parts.Length >= 10)
                        {
                            d.l1_3 = float.Parse(parts[8]);
                            d.dl1_3 = d.l1_3 - d.l1_2;
                            d.l2_3 = float.Parse(parts[9]);
                            d.dl2_3 = d.l2_3 - d.l2_2;
                            d.level = 3;
                        }
                        else
                        {
                            d.l1_3 = -5;
                        }

                        if (parts.Length >= 12)
                        {
                            d.l1_4 = float.Parse(parts[10]);
                            d.dl1_4 = d.l1_4 - d.l1_3;
                            d.l2_4 = float.Parse(parts[11]);
                            d.dl2_4 = d.l2_4 - d.l2_3;
                            d.level = 4;
                        }
                        else
                        {
                            d.l1_4 = -5;
                        }

                        if (parts.Length >= 14)
                        {
                            d.l1_5 = float.Parse(parts[12]);
                            d.dl1_5 = d.l1_5 - d.l1_4;
                            d.l2_5 = float.Parse(parts[13]);
                            d.dl2_5 = d.l2_5 - d.l2_4;
                            d.level = 5;
                        }
                        else
                        {
                            d.l1_5 = -5;
                        }

                        if (cnt % 3 == 0)
                            TrainingData0.Add(d);
                        else if (cnt % 3 == 1)
                            TrainingData1.Add(d);
                        else if (cnt % 3 == 2)
                            TrainingData2.Add(d);
                    }
                }

            }
        }