static void Main(string[] args) { var descriptor = Descriptor.For <Tennis>() .With(t => t.Outlook) .With(t => t.Temperature) .With(t => t.Windy) .With(t => t.Humidity) .Learn(t => t.Play); Console.WriteLine(descriptor); var generator = new DecisionTreeGenerator(descriptor); var model = generator.Generate(Tennis.GetData()); Console.WriteLine($"Model:\n{model}"); var tn = new Tennis { Outlook = Outlook.Sunny, Temperature = Temperature.Cool, Humidity = Humidity.High, Windy = true }; var tennis = model.PredictValue(tn); Console.WriteLine($"Play? {tennis}"); Console.ReadKey(); }
public static Tennis[] GetData() { return(new Tennis[] { Tennis.Make(Outlook.Sunny, Temperature.Hot, Humidity.High, false, false), Tennis.Make(Outlook.Sunny, Temperature.Hot, Humidity.High, true, false), Tennis.Make(Outlook.Overcast, Temperature.Hot, Humidity.High, false, true), Tennis.Make(Outlook.Rainy, Temperature.Mild, Humidity.High, false, true), Tennis.Make(Outlook.Rainy, Temperature.Cool, Humidity.Normal, false, true), Tennis.Make(Outlook.Rainy, Temperature.Cool, Humidity.Normal, true, false), Tennis.Make(Outlook.Overcast, Temperature.Cool, Humidity.Normal, true, true), Tennis.Make(Outlook.Sunny, Temperature.Mild, Humidity.High, false, false), Tennis.Make(Outlook.Sunny, Temperature.Cool, Humidity.Normal, false, true), Tennis.Make(Outlook.Rainy, Temperature.Mild, Humidity.Normal, false, true), Tennis.Make(Outlook.Sunny, Temperature.Mild, Humidity.Normal, true, true), Tennis.Make(Outlook.Overcast, Temperature.Mild, Humidity.High, true, true), Tennis.Make(Outlook.Overcast, Temperature.Hot, Humidity.Normal, false, true), Tennis.Make(Outlook.Rainy, Temperature.Mild, Humidity.High, true, false) }); }