Esempio n. 1
0
        static string ShowHand(PokerHandData data)
        {
            var sb = new StringBuilder();

            sb.AppendFormat("{0}{1} {2}{3} {4}{5} {6}{7} {8}{9}", GetSuitOfCard(data.S1), GetRankOfCard(data.C1),
                            GetSuitOfCard(data.S2), GetRankOfCard(data.C2),
                            GetSuitOfCard(data.S3), GetRankOfCard(data.C3),
                            GetSuitOfCard(data.S4), GetRankOfCard(data.C4),
                            GetSuitOfCard(data.S5), GetRankOfCard(data.C5));
            return(sb.ToString());
        }
Esempio n. 2
0
        public static void Predict(PredictionModel <PokerHandData, PokerHandPrediction> model)
        {
            var test1 = new PokerHandData
            {
                S1 = 1,
                C1 = 2,
                S2 = 1,
                C2 = 3,
                S3 = 3,
                C3 = 4,
                S4 = 4,
                C4 = 5,
                S5 = 2,
                C5 = 6
            };

            var test2 = new PokerHandData
            {
                S1 = 4,
                C1 = 5,
                S2 = 1,
                C2 = 5,
                S3 = 3,
                C3 = 5,
                S4 = 2,
                C4 = 12,
                S5 = 4,
                C5 = 7
            };

            test1.Init();
            test2.Init();
            IEnumerable <PokerHandData> pokerHands = new[]
            {
                test1,
                test2
            };
            IEnumerable <PokerHandPrediction> predictions = model.Predict(pokerHands);

            Console.WriteLine();
            Console.WriteLine("PokerHand Predictions");
            Console.WriteLine("---------------------");

            var pokerHandsAndPredictions = pokerHands.Zip(predictions, (pokerHand, prediction) => (pokerHand, prediction));

            foreach (var(pokerHand, prediction) in pokerHandsAndPredictions)
            {
                Console.WriteLine($"PokerHand: {ShowHand(pokerHand)} | Prediction: { GetPower(prediction.PredictedPower)}");
            }
            Console.WriteLine();
        }
Esempio n. 3
0
        static IEnumerable <PokerHandData> LoadData(string path)
        {
            using (var environment = new TlcEnvironment())
            {
                var pokerHandData = new List <PokerHandData>();
                var textLoader    = new Microsoft.ML.Data.TextLoader(path).CreateFrom <PokerHandData>(useHeader: false, separator: ',', trimWhitespace: false);
                var experiment    = environment.CreateExperiment();
                var output        = textLoader.ApplyStep(null, experiment) as ILearningPipelineDataStep;

                experiment.Compile();
                textLoader.SetInput(environment, experiment);
                experiment.Run();

                var data = experiment.GetOutput(output.Data);

                using (var cursor = data.GetRowCursor((a => true)))
                {
                    var getters = new ValueGetter <float>[] {
                        cursor.GetGetter <float>(0),
                        cursor.GetGetter <float>(1),
                        cursor.GetGetter <float>(2),
                        cursor.GetGetter <float>(3),
                        cursor.GetGetter <float>(4),
                        cursor.GetGetter <float>(5),
                        cursor.GetGetter <float>(6),
                        cursor.GetGetter <float>(7),
                        cursor.GetGetter <float>(8),
                        cursor.GetGetter <float>(9),
                        cursor.GetGetter <float>(10)
                    };

                    while (cursor.MoveNext())
                    {
                        float value0  = 0;
                        float value1  = 0;
                        float value2  = 0;
                        float value3  = 0;
                        float value4  = 0;
                        float value5  = 0;
                        float value6  = 0;
                        float value7  = 0;
                        float value8  = 0;
                        float value9  = 0;
                        float value10 = 0;
                        getters[0](ref value0);
                        getters[1](ref value1);
                        getters[2](ref value2);
                        getters[3](ref value3);
                        getters[4](ref value4);
                        getters[5](ref value5);
                        getters[6](ref value6);
                        getters[7](ref value7);
                        getters[8](ref value8);
                        getters[9](ref value9);
                        getters[10](ref value10);

                        var hands = new PokerHandData()
                        {
                            S1    = value0,
                            C1    = value1,
                            S2    = value2,
                            C2    = value3,
                            S3    = value4,
                            C3    = value5,
                            S4    = value6,
                            C4    = value7,
                            S5    = value8,
                            C5    = value9,
                            Power = value10
                        };
                        hands.Init();
                        pokerHandData.Add(hands);
                    }
                }

                return(pokerHandData);
            }
        }