コード例 #1
0
        public void Learn(IEnumerable <Expense> expenses)
        {
            this.classifier = new MultiClassClassifier <ExpenseSample, string>();

            var multiClassOptions = new MultiClassOptions <ExpenseSample>()
                                    .WithLabel(i => i.Category)
                                    .WithFeatures(i => i.Amount, i => i.CreatedHour, i => i.ExpenseDayOfWeek);

            var ffOptions = new FastForestOvaOptions()
                            .WithNumberOfTrees(50)
                            .WithLeaves(50)
                            .WithExampleCountPerLeaf(1);

            this.classifier.TrainFastForestOva(expenses.Select(ExpenseSample.FromExpense), multiClassOptions, ffOptions);
        }
コード例 #2
0
        static void Main(string[] args)
        {
            var ml      = new MLContext();
            var tsvData = ml.Data.LoadFromTextFile <ExpenseInput>(@"C:\Users\Hans\Desktop\Thomas.tsv", hasHeader: true);
            var rawData = ml.Data.CreateEnumerable <ExpenseInput>(tsvData, true);
            var data    = rawData.Select(SampleInput.FromExpense);

            var multi = new MultiClassClassifier <SampleInput, string>();

            var multiClassOptions = new MultiClassOptions <SampleInput>()
                                    .WithLabel(i => i.Category)
                                    .WithFeatures(i => i.Amount, i => i.CreatedHour, i => i.ExpenseDayOfWeek);

            var ffOptions = new FastForestOvaOptions()
                            .WithNumberOfTrees(50)
                            .WithLeaves(50)
                            .WithExampleCountPerLeaf(1);

            multi.TrainFastForestOva(data, multiClassOptions, ffOptions);
            multi.DumpEvaluation(data);
            multi.DumpFeatureImportance(data);

            //multi.SaveModel(@"C:\\Users\\Hans\\Desktop\\Thomas.model.zip");

            while (true)
            {
                Console.Write("Hour: ");
                var hour = int.Parse(Console.ReadLine());
                Console.Write("Day: ");
                var day = int.Parse(Console.ReadLine());
                Console.Write("Amount: ");
                var amount = float.Parse(Console.ReadLine());
                var input  = new SampleInput {
                    Amount = amount, CreatedHour = hour, ExpenseDayOfWeek = day
                };
                var result = multi.Predict(input);
                Console.WriteLine(result);
                Console.WriteLine("----\n\n");
            }
        }