分类目录

链接

2018年五月
« 4月   6月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

近期文章

热门标签

博主推荐

现在位置:    首页 > .NET, 人工智能 > 正文
numl.net 机器学习(一):预测是否迟到
.NET, 人工智能 暂无评论 阅读(291)

从nuget上搜索numl并安装.我们主要从两个参数(星期几和温度,对于一般的人来说周一容易迟到,天太冷容易迟到)来预测是否迟到,

demo代码如下:

  1.  class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             Console.WriteLine("Hello World!");
  6.  
  7.  
  8.             WorkTime[] data = WorkTime.GetData();
  9.             var d = Descriptor.Create<WorkTime>();
  10.             var g = new DecisionTreeGenerator(d);
  11.             g.SetHint(false);
  12.             var model = Learner.Learn(data, 0.80, 1000, g);
  13.  
  14.  
  15.  
  16.             WorkTime t = new WorkTime
  17.             {
  18.                 ComeTime = DateTime.Parse("2018-05-21"),
  19.                 Temp =40
  20.             };
  21.  
  22.             WorkTime result = model.Model.Predict(t);
  23.  
  24.             Console.Write(result.IsLate);
  25.             Console.Read();
  26.  
  27.         }
  28.     }
  29.      
  30.     //Feature 参考的参数,Label为结果
  31.     public class WorkTime
  32.     {
  33.         public DateTime ComeTime { get; set; }//上班日期
  34.  
  35.         [Feature]
  36.         public int WorkDay//星期几
  37.         {
  38.             get
  39.             {
  40.                 return (int)ComeTime.DayOfWeek;
  41.             }
  42.         }
  43.  
  44.         [Feature]
  45.         public int Temp { get; set; }//温度
  46.  
  47.  
  48.         [Label]
  49.         public bool IsLate { get; set; }
  50.  
  51.         public static WorkTime[] GetData()
  52.         {
  53.             return new WorkTime[]  {
  54.             new WorkTime { ComeTime=DateTime.Parse("2018-02-01") , Temp=12, IsLate=true },
  55.             new WorkTime { ComeTime=DateTime.Parse("2018-02-02") , Temp=9, IsLate=true },
  56.             new WorkTime { ComeTime=DateTime.Parse("2018-02-05") , Temp=22, IsLate=false },
  57.             new WorkTime { ComeTime=DateTime.Parse("2018-02-06") , Temp=22, IsLate=false },
  58.             new WorkTime { ComeTime=DateTime.Parse("2018-02-07") , Temp=28, IsLate=false },
  59.             new WorkTime { ComeTime=DateTime.Parse("2018-02-08") , Temp=7, IsLate=true },
  60.             new WorkTime { ComeTime=DateTime.Parse("2018-02-09") , Temp=28, IsLate=false },
  61.             new WorkTime { ComeTime=DateTime.Parse("2018-02-12") , Temp=22, IsLate=true },
  62.             new WorkTime { ComeTime=DateTime.Parse("2018-03-01") , Temp=22, IsLate=false },
  63.             new WorkTime { ComeTime=DateTime.Parse("2018-03-02") , Temp=26, IsLate=false },
  64.             new WorkTime { ComeTime=DateTime.Parse("2018-03-05") , Temp=26, IsLate=true },
  65.             new WorkTime { ComeTime=DateTime.Parse("2018-03-06") , Temp=26, IsLate=false },
  66.             new WorkTime { ComeTime=DateTime.Parse("2018-03-07") , Temp=26, IsLate=false },
  67.             new WorkTime { ComeTime=DateTime.Parse("2018-03-08") , Temp=26, IsLate=false },
  68.             new WorkTime { ComeTime=DateTime.Parse("2018-03-09") , Temp=26, IsLate=false },
  69.             new WorkTime { ComeTime=DateTime.Parse("2018-03-12") , Temp=26, IsLate=true },
  70.             new WorkTime { ComeTime=DateTime.Parse("2018-03-13") , Temp=26, IsLate=false },
  71.             new WorkTime { ComeTime=DateTime.Parse("2018-03-14") , Temp=26, IsLate=false },
  72.             new WorkTime { ComeTime=DateTime.Parse("2018-03-15") , Temp=26, IsLate=false },
  73.             new WorkTime { ComeTime=DateTime.Parse("2018-03-16") , Temp=26, IsLate=false },
  74.             new WorkTime { ComeTime=DateTime.Parse("2018-03-19") , Temp=26, IsLate=true },
  75.             new WorkTime { ComeTime=DateTime.Parse("2018-03-20") , Temp=26, IsLate=false },
  76.             new WorkTime { ComeTime=DateTime.Parse("2018-03-21") , Temp=26, IsLate=false },
  77.             new WorkTime { ComeTime=DateTime.Parse("2018-03-22") , Temp=26, IsLate=false },
  78.             new WorkTime { ComeTime=DateTime.Parse("2018-03-23") , Temp=26, IsLate=false },
  79.             new WorkTime { ComeTime=DateTime.Parse("2018-03-26") , Temp=33, IsLate=false },
  80.             new WorkTime { ComeTime=DateTime.Parse("2018-03-27") , Temp=12, IsLate=true },
  81.             new WorkTime { ComeTime=DateTime.Parse("2018-03-28") , Temp=31, IsLate=false },
  82.             new WorkTime { ComeTime=DateTime.Parse("2018-03-29") , Temp=32, IsLate=false },
  83.             new WorkTime { ComeTime=DateTime.Parse("2018-03-30") , Temp=28, IsLate=false },
  84.             //
  85.             //
  86.             //new WorkTime { ComeTime=DateTime.Parse("2018-04-02") , Temp=28, IsLate=true },
  87.             //new WorkTime { ComeTime=DateTime.Parse("2018-04-09") , Temp=8, IsLate=true },
  88.             //new WorkTime { ComeTime=DateTime.Parse("2018-04-16") , Temp=12, IsLate=true },
  89.             //new WorkTime { ComeTime=DateTime.Parse("2018-04-23") , Temp=6, IsLate=true },
  90.             //new WorkTime { ComeTime=DateTime.Parse("2018-04-30") , Temp=38, IsLate=true },
  91.             //new WorkTime { ComeTime=DateTime.Parse("2018-05-07") , Temp=24, IsLate=true },
  92.             //new WorkTime { ComeTime=DateTime.Parse("2018-05-14") , Temp=18, IsLate=true },
  93.         };
  94.  
  95.         }
  96.     }

本文版权归数据库之家所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:numl.net 机器学习(一):预测是否迟到 | 数据库之家

发表评论

留言无头像?