Can you give me a good link/resource where i could find a good implementation of Bayesian network ,I'm specially interested in Conditional Probability Table generation and how to pass messages/update nodes .
Thanks!
Have a look at
Example of Bayesian network
and
A Brief Introduction to Graphical Models and Bayesian Networks
Also, have a look at Online Tutorials
Related
I am an apprentice and I just finished my first .NET web application that main premise is to parse group and visualize logs from ELmah.io(Error Logging Modules and Handlers). I had a look in to ML.NET Model Builder and multi-class classification that would allow me to add a single class to log (for example priority) and train model according to that straight from SQL server tables. What I'm more interest is multi-label classification which ML.NET not support at the moment and I was looking in to Accord.NET and I have to admit it's a bit confusing and very hard to find any tutorials - I was able to run a simple binary classification example from their website, but that's not what I'm looking for.
Any guidance where to start would be appreciated(maybe another alternative to ML.NET?).
From what I've read my table structure would look something like this:
An example of my front end:
Thanks,
Jakub
ML.net till today does not support Multi-Label Classification.
What you can do instead is to train your model on each label separetly then combine results.
I am almost new in recurrent neural network. Recurrent neural networks like rnn, lstm, bi-lstm etc. are almost all implemented in python. I want a C# tool of recurrent neural network and found RNNSharp. The inputs of this framework are complex. Is it possible to implement a bidirectional lstm with RNNSharp. If possible, then please help me to create the model with minimal Snippet Code or a link. Thank you.
The input of RNNSharp is compatible with CRFSharp, which supports templates. In addition, RNNSharp won't get updated for any new feature, you could try Seq2SeqSharp which supports both bi-LSTM and transformer models. It's tensor based and support CPU and multi-GPUs. Here is the link: https://github.com/zhongkaifu/Seq2SeqSharp
You can get input/config examples on that page.
I am in a bit of a crisis here. I would really appreciate your help on the matter.
My Final Year Project is a "Location Based Product Recommendation Service". Now, due to some communication gap, we got stuck with an extremely difficult algorithm. Here is how it went:
We had done some research about recommendation systems prior to the project defense. We knew there were two approaches, "Collaborative Filtering" and "Content Based Recommendation". We had planned on using whichever technique gave us the best results. So, in essence, we were more focused on the end product than the actual process. The HOD asked us what algorithms OUR product would use? But, my group members thought that he meant what are the algorithms that are used for "Content Based Recommendations". They answered with "Rule Mining, Classification and Clustering". He was astonished that we planned on using all these algorithms for our project. He told us that he would accept our project proposal if we use his algorithm in our project. He gave us his research paper, without any other resources such as data, simulations, samples, etc. The algorithm is named "Context Based Positive and Negative Spatio-Temporal Association Rule Mining" In the paper, this algorithm was used to recommend sites for hydrocarbon taps and mining with extremely accurate results. Now here are a few issues I face:
I am not sure how or IF this algorithm fits in our project scenario
I cannot find spatio-temporal data, MarketBaskets, documentation or indeed any helpful resource
I tried asking the HOD for the data he used for the paper, as a reference. He was unable to provide the data to me
I tried coding the algorithm myself, in an incremental fashion, but found I was completely out of my depth. I divided the algo in 3 phases. Positive Spatio-Temporal Association Rule Mining, Negative Spatio-Temporal Association Rule Mining and Context Based Adjustments. Alas! The code I write is not mature enough. I couldn't even generate frequent itemsets properly. I understand the theory quite well, but I am not able to translate it into efficient code.
When the algorithm has been coded, I need to develop a web service. We also need a client website to access the web service. But with the code not even 10% done, I really am panicking. The project submission is in a fortnight.
Our supervisor is an expert in Artificial Intelligence, but he cannot guide us in the algorithm development. He dictates the importance of reuse and utilizing open-source resources. But, I am unable to find anything of actual use.
My group members are waiting on me to deliver the algorithm, so they can deploy it as a web service. There are other adjustments than need to be done, but with the algorithm not available, there is nothing we can do.
I have found a data set of Market Baskets. It's a simple excel file, with about 9000 transactions. There is not spatial or temporal data in it and I fear adding artificial data would compromise the integrity of the data.
I would appreciate if somebody could guide me. I guess the best approach would be to use an open-source API to partially implement the algorithm and then build the service and client application. We need to demonstrate something on 17th of June. I am really looking forward to your help, guidance and constructive criticism. Some solutions that I have considered are:
Use "User Clustering" as a "Collaborate Filtering" technique. Then
recommend the products from similar users via an alternative "Rule
Mining" algorithm. I need all these algorithms to be openly available
either as source code or an API, if I have any chance of making this
project on time.
Drop the algorithm altogether and make a project that actually works
as we intended, using available resources. I am 60% certain that we
would fail or marked extremely low.
Pay a software house to develop the algorithm for us and then
over-fit it into our project. I am not inclined to do this because it
would be unethical to do this.
As you can clearly see, my situation is quite dire. I really do need extensive help and guidance if I am to complete this project properly, in time. The project needs to be completely deployed and operational. I really am in a loop here
"Collaborative Filtering", "Content Based Recommendation", "Rule Mining, Classification and Clustering"
None of these are algorithms. They are tasks or subtasks, for each of which several algorithms exist.
I think you had a bad start already by not really knowing well enough what you proposed... but granted, the advice from your advisor was also not at all helpful.
I am going to analyze the data using NEAT(Encog C# version). And then, I would like to confirm the network structure and the network weights when the learning was converged. Although I have been reading the Encog documention, I cannot find the articles and sample code. Would it be possible to tell me how to do this(sample code or the other way).
I would suggest you check out the Pluralsight courses by Abishek Kumar You can watch the courses by signing up for a free trial.
To "confirm the network weights", I would suggest you start with Kumar's "Introduction to Machine Learning with ENCOG 3". Start with his examples of "Resilient Propagation" or "Quick Propagation" training algorithms, as these are the easiest to setup (its tricky to set the parameters for many of the other training algorithms). These algorithms will setup the weights of your network.
To "confirm the network structure", I would recommend Kumar's "Advanced Machine Learning with ENCOG" course which has two sections on network tuning. I would suggest you only use only one hidden layer and use the "Pruning" techniques described in his tutorial (or downloadable code) to choose the number of neurons in the hidden layer.
To decide when the "learning has converged", I would recommend you follow his examples (or download his example code) and use the StopTrainingStrategy (so you automatically stop training when the global error starts increasing) and EarlyStoppingStrategy (so you automatically stop training when the Cross Validation error starts increasing).
I want to restart with data structure ( and Ai + I want to clear all my misconceptions too. ;P )
For now I want to know how would I put given pictorial info into algorithm using C# structure. Image processing is not required here. Just need to feed the data in.
Here I need this question to be modified too if not clear. :|
Say Arad is a city in Romania from where I have to go to another city Bucharest.
This map also has info of how far all connecting cities are from any city.
How would I use these info in program to start with any searching or sorting algo?
Any pointer will be helpful. Say if this can be done using anything else than struct. Something like node or something. I don't know.
Please consider I want to learn things. So using C# for ease in use not to use its inbuilt searching and sorting functions. Later to confirm I might use.
The way you typically solve this problem is to create a node class and an edge class. Each node has a set of edges that have "lengths", and each edge connects two nodes. You then write a shortest-path algorithm that determines the least-total-length set of edges that connects two nodes.
For a brief tutorial on how to do that, see my series of articles on the A* algorithm:
http://blogs.msdn.com/b/ericlippert/archive/tags/astar/
Although it's not exactly what you're looking for, Eric Lippert's series on graph colouring is an excellent step-by-step example of designing data structures and implementing algorithms (efficiently!) in C#. It has helped me a lot; I highly recommend reading it. Once you've worked your way through that, you will know much more about C# and you will understand some of the specific design tradeoffs that you may encounter based on your specific problem, including what data structure to use for a particular problem.
If you just want to look at raw algorithms, the shortest path problem has many algorithms defined for it over the years. I would recommend implementing the common Dijkstra's algorithm first. The Wikipedia article has pseudocode; with what you get out of Eric Lippert's series, you should be in good shape to develop an implementation of this. If you still want more step-by-step guidance, try a search for "Dijkstra's algorithm in C#".
Hope that helps!