Answers.Body: <p>This looks like it maps very nicely onto <a href="https://en.wikipedia.org/wiki/Association_rule_learning" rel="nofollow noreferrer">Association Mining</a>. In association mining, you are trying to find items from a discrete set that often co-occur in transactions. For instance, you might want to find the items that most commonly appear in an online shopping cart together.</p>
  
  <p>In your case, the problem amounts to:</p>
  
  <ol>
  <li>Split up the data into sub-problems by who won.</li>
  <li>Perform association mining on the sets of players in each sub-problem, using, e.g. <a href="https://en.wikipedia.org/wiki/Apriori_algorithm" rel="nofollow noreferrer">the apriori algorithm</a>. </li>
  </ol>
  
  <p>The resulting rules will then have associated confidence factors. When you want to predict who will win, you can take the winner suggested by the rule with the greatest confidence.</p>
  
  <hr>
  
  <p>The other approach suggested by your problem is to model it as <a href="https://en.wikipedia.org/wiki/Statistical_classification" rel="nofollow noreferrer">classification</a>. Here you are trying to assign labels (who won) to input vectors (who played). The process would look like:</p>
  
  <ol>
  <li>Map the sets of who played into binary features. So the subset P1,P2, P4,P8 might be represented with {1,1,0,1,0,0,0,1} if there are only 8 players. Map the winning player onto a numeric class (e.g. the numbers 1-8). </li>
  <li>Run any classification algorithm to create a model that predicts the class from the binary features. A <a href="https://en.wikipedia.org/wiki/C4.5_algorithm" rel="nofollow noreferrer">decision tree learner</a> might be a interesting starting point if you want to understand which factors are important to the model. There are many other techniques however.</li>
  </ol>
  
  <p>You can use the model you train to make predictions about future games with the same set of players.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-20T20:05:44.543Z
Answers.Text: John, thank you for directions. Per my understanding apriori algorithm only uses X as an input, how do I factor in Y (target or winner )? Am I missing something?
Answers.UserDisplayName: Tejas Patel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-20T20:17:25.357Z
Answers.Text: As mentioned in step 1, you want to split the data into separate problem instances for every target (Y). Then find players that co-occur in the input sets (X) for that target. Filter out the obvious rule (that Y always appears in X), and you'll end up with player combinations that Y often defeats, and a confidence estimate for each.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-20T21:17:49.233Z
Answers.Text: Prof. Doucette, unfortunately there are more than 6000 payer profiles. Is there a deep learning alternative to manual formation of separate problem instances?
Answers.UserDisplayName: Tejas Patel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-21T01:21:08.173Z
Answers.Text: No need for deep learning here. If you wanted to go that route, then you could phrase it as a classification task, like in the second half of my answer, and then try a deep learning algorithm. You'll probably be happier with the decision tree though, unless you have a good idea of what you're doing.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-26T00:37:37.797Z
Answers.Text: @DukeZhou Yeah, it's definitely got overlap with Data Science, but I agree that the fields have enough overlap it could make sense to keep this open. Their answer uses an ELO system, whereas mine uses more general purpose techniques.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-28T09:03:56.690Z
Answers.Text: Split by winner implies a loss of information. By example: A,B->A; B,C->B; A,B,C->?
Answers.UserDisplayName: pasaba por aqui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-28T10:58:59.430Z
Answers.Text: @pasabaporaqui If you don't have any training data with an outcome for A,B,C, then no information was lost. If you do have an outcome, then the information is used by the sub-problem that predicts the winner on the basis of that information. Either way, I don't see how information is lost.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-28T11:02:15.640Z
Answers.Text: The answer to the example is A, assuming "win" is a transitive property. Using your proposal, no answer is reached
Answers.UserDisplayName: pasaba por aqui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-28T11:08:29.273Z
Answers.Text: @pasabaporaqui You've assumed that poker is transitive, but there's no way of processing this data that will reveal that fact if the players never play together (and in fact, we don't _know_ that A beats C, or even that the inference is reasonable, without knowing the players). The ELO approach suggested by the Data Science answer embeds this assumption by ranking the players in a 1-d space. This will probably work for expert play, but I suspect poker at a low level is intransitive, and might depend on factors like who knows the tells of other players.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-28T11:13:17.033Z
Answers.Text: Thus, your answer is "you can only decide a case already included in trainibg set"? Thus, you do not need split. I think interesting you clarify your answer with an example.
Answers.UserDisplayName: pasaba por aqui
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-28T11:17:34.597Z
Answers.Text: @pasabaporaqui I'm not sure I understand you. We can make a guess on out of sample data, as with any other method (even ELO). The bias in this technique's guess will be that a player who beats _both_ other players separately will get a strong vote of confidence, and a player who beats _either_ of the others will receive moderate win confidence. This is also potentially untrue (maybe, in context, C knows the tell of A, and pumps money out of them to win). We're dancing around No Free Lunch theorem here: the choice of correct bias will depend on your problem and players.
Answers.UserDisplayName: John Doucette
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-08-20T19:30:31.740Z
Answers.LastActivityDate: 2018-08-20T19:30:31.740Z
Answers.UserDisplayName: John Doucette
Body: <p>I’ve  done my research and could not find answer anywhere else. My apologies in advance if same problem is answered in different terms on stack-overflow.</p>
  
  <p>I am trying to solve poker tournament winner prediction problem. I’ve millions of historical records in this format:</p>
  
  <ul>
  <li><strong>Players ==> Winner</strong> </li>
  <li>P1,P2,P4,P8 ==> P2 </li>
  <li>P4,P7,P6 ==> P4 </li>
  <li>P6,P3,P2,P1 ==> P1</li>
  </ul>
  
  <p>What are some of the most suitable algorithms to predict winner from set of players.</p>
  
  <p>So far I have tried decision trees, XGboost without much of a success.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-08-20T18:26:37.880Z
Comments.Text: Welcome to SE:AI!  *I notice you are new to Stack Exchange and also asked this question on Data Science. Generally that is frowned upon, but, as there is some overlap between our two Stacks, I only ask that you make sure to "prune"  the question from one of the Stacks if it doesn't receive an answer.*
Comments.UserDisplayName: DukeZhou
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2018-08-24T02:25:28.300Z
Comments.Text: This question is answered on [Data Science](https://datascience.stackexchange.com/questions/37202/poker-tournament-winner-prediction/37217#37217)
Comments.UserDisplayName: Tejas Patel
Tags: <ai-design><poker>
Title: Approaches to poker tournament winner prediction?
UserDisplayName: Tejas Patel
ThreadText: # Approaches to poker tournament winner prediction?
  
  (Asked by: username_0 on 2018-08-20)
  
  I’ve done my research and could not find answer anywhere else. My apologies in advance if same problem is answered in different terms on stack-overflow.
  
  I am trying to solve poker tournament winner prediction problem. I’ve millions of historical records in this format:
  
  * **Players ==> Winner**
  * P1,P2,P4,P8 ==> P2
  * P4,P7,P6 ==> P4
  * P6,P3,P2,P1 ==> P1
  
  What are some of the most suitable algorithms to predict winner from set of players.
  
  So far I have tried decision trees, XGboost without much of a success.
  
  **Tags:** ai-design, poker
  > **Comments:**
  > **username_1**: Welcome to SE:AI!  *I notice you are new to Stack Exchange and also asked this question on Data Science. Generally that is frowned upon, but, as there is some overlap between our two Stacks, I only ask that you make sure to "prune"  the question from one of the Stacks if it doesn't receive an answer.*  
  > **username_0**: This question is answered on [Data Science](https://datascience.stackexchange.com/questions/37202/poker-tournament-winner-prediction/37217#37217)  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2018-08-20. Score: 1
  
  This looks like it maps very nicely onto [Association Mining](https://en.wikipedia.org/wiki/Association_rule_learning). In association mining, you are trying to find items from a discrete set that often co-occur in transactions. For instance, you might want to find the items that most commonly appear in an online shopping cart together.
  
  In your case, the problem amounts to:
  
  1. Split up the data into sub-problems by who won.
  2. Perform association mining on the sets of players in each sub-problem, using, e.g. [the apriori algorithm](https://en.wikipedia.org/wiki/Apriori_algorithm).
  
  The resulting rules will then have associated confidence factors. When you want to predict who will win, you can take the winner suggested by the rule with the greatest confidence.
  
  ---
  
  The other approach suggested by your problem is to model it as [classification](https://en.wikipedia.org/wiki/Statistical_classification). Here you are trying to assign labels (who won) to input vectors (who played). The process would look like:
  
  1. Map the sets of who played into binary features. So the subset P1,P2, P4,P8 might be represented with {1,1,0,1,0,0,0,1} if there are only 8 players. Map the winning player onto a numeric class (e.g. the numbers 1-8).
  2. Run any classification algorithm to create a model that predicts the class from the binary features. A [decision tree learner](https://en.wikipedia.org/wiki/C4.5_algorithm) might be a interesting starting point if you want to understand which factors are important to the model. There are many other techniques however.
  
  You can use the model you train to make predictions about future games with the same set of players.
  
  > **Comments:**
  > **username_0**: John, thank you for directions. Per my understanding apriori algorithm only uses X as an input, how do I factor in Y (target or winner )? Am I missing something?  
  > **username_2**: As mentioned in step 1, you want to split the data into separate problem instances for every target (Y). Then find players that co-occur in the input sets (X) for that target. Filter out the obvious rule (that Y always appears in X), and you'll end up with player combinations that Y often defeats, and a confidence estimate for each.  
  > **username_0**: Prof. Doucette, unfortunately there are more than 6000 payer profiles. Is there a deep learning alternative to manual formation of separate problem instances?  
  > **username_2**: No need for deep learning here. If you wanted to go that route, then you could phrase it as a classification task, like in the second half of my answer, and then try a deep learning algorithm. You'll probably be happier with the decision tree though, unless you have a good idea of what you're doing.  
  > **username_2**: @DukeZhou Yeah, it's definitely got overlap with Data Science, but I agree that the fields have enough overlap it could make sense to keep this open. Their answer uses an ELO system, whereas mine uses more general purpose techniques.  
  > **username_3**: Split by winner implies a loss of information. By example: A,B->A; B,C->B; A,B,C->?  
  > **username_2**: @pasabaporaqui If you don't have any training data with an outcome for A,B,C, then no information was lost. If you do have an outcome, then the information is used by the sub-problem that predicts the winner on the basis of that information. Either way, I don't see how information is lost.  
  > **username_3**: The answer to the example is A, assuming "win" is a transitive property. Using your proposal, no answer is reached  
  > **username_2**: @pasabaporaqui You've assumed that poker is transitive, but there's no way of processing this data that will reveal that fact if the players never play together (and in fact, we don't _know_ that A beats C, or even that the inference is reasonable, without knowing the players). The ELO approach suggested by the Data Science answer embeds this assumption by ranking the players in a 1-d space. This will probably work for expert play, but I suspect poker at a low level is intransitive, and might depend on factors like who knows the tells of other players.  
  > **username_3**: Thus, your answer is "you can only decide a case already included in trainibg set"? Thus, you do not need split. I think interesting you clarify your answer with an example.  
  > **username_2**: @pasabaporaqui I'm not sure I understand you. We can make a guess on out of sample data, as with any other method (even ELO). The bias in this technique's guess will be that a player who beats _both_ other players separately will get a strong vote of confidence, and a player who beats _either_ of the others will receive moderate win confidence. This is also potentially untrue (maybe, in context, C knows the tell of A, and pumps money out of them to win). We're dancing around No Free Lunch theorem here: the choice of correct bias will depend on your problem and players.  
  
  ---
  
  