Answered by:
Fuzzy decision systems (Migrated from community.research.microsoft.com)
Question

Darkphibre posted on 04012009 2:34 AM
I admit I'm extremely new to the field (though have been a professional programmer for 15 years), and have been reading up as much as possible. The thing is, it's a bit difficult to wrap my head around the abstractions provided by Infer.Net while also trying to pick up the math and nomenclature of the field itself. :)
I'm looking to employ fuzzy logic to determine player's patterns in an RTS based on public web statistics... an "Oponent Strategy Analyzer" if you will. I was rather excited to come across Infer.Net during my research, and thought it might work, but I'm not sure how I would describe the mebership functions. I'd like to do Triangular and Left/Right shoulders functions. I'm guessing a form of gaussian distribution, but am not sure how to describe it in your system, nor how to defuzzify the results.
Is this something that is up Infer.Net's alley? It'd be fairly straightforward to implement on my own, but I'd really like to learn more about Bayesian decision trees while I'm also picking up fuzzy logic.
Thanks for your time; your work looks totally awesome.
Friday, June 3, 2011 4:49 PM
Answers

Darkphibre replied on 04012009 12:31 PM
Yes, that did help to clarify, and summed up my concerns succinctly. I was starting to think I was taking an Operation Plowshare approach with Infer.Net. The fuzzy logic system seems to fit best for what I'm initially doing (trying to identify what name most people would give to a person's strategy).
I'll come back to Infer.Net after more research, though, for the next step... given a strategy style, how does that strategy frequently lose (creating a database of successful counterstrategies). The answers to that question has many unseen variables, and I feel could definitely be an area benefited by machine learning.
Thanks for the prompt reply!
 Marked as answer by Microsoft Research Friday, June 3, 2011 4:50 PM
Friday, June 3, 2011 4:50 PM
All replies

John Guiver replied on 04012009 10:01 AM
It is quite likely that you could use Infer.NET to infer player's patterns (difficult to know without details), but it would be a mistake to try to use Infer.NET to implement a fuzzy logic system. The Wikipedia article on Fuzzy Logic has a section entitled 'Degrees of truth' which outlines the differences between concepts of fuzzy membership and a probabilistic representation. To help you decide if you could model your system probabilistically (and not with a fuzzy logic system), think about what unseen variables you want to infer, and what domain they come from (real, real> 0, integer 1 of N, bool, etc). Then look at what observations you have, and see if you can write down how the observed data might be generated by sampling from from the distributions of the unseen variables. If you can do this, you are well on your way to determining if Infer.NET might solve your problem. However, the model is likely to be quite complex and will use some advanced features, so if you decide to use Infer.NET, I recommend that spend a lot of time getting to grips with it by going over the tutorials and user guide.
I hope this helps
John G.
Friday, June 3, 2011 4:50 PM 
Darkphibre replied on 04012009 12:31 PM
Yes, that did help to clarify, and summed up my concerns succinctly. I was starting to think I was taking an Operation Plowshare approach with Infer.Net. The fuzzy logic system seems to fit best for what I'm initially doing (trying to identify what name most people would give to a person's strategy).
I'll come back to Infer.Net after more research, though, for the next step... given a strategy style, how does that strategy frequently lose (creating a database of successful counterstrategies). The answers to that question has many unseen variables, and I feel could definitely be an area benefited by machine learning.
Thanks for the prompt reply!
 Marked as answer by Microsoft Research Friday, June 3, 2011 4:50 PM
Friday, June 3, 2011 4:50 PM