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()); }
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(); }
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); } }