Real time application of a RM model
reports01
New Altair Community Member
Oke, so now I have made a model, even applied it on a ofline dataset.... but now comes the hard part ;-)
implementing a model real time.... in other words how do I compile/integrate a model into code?
implementing a model real time.... in other words how do I compile/integrate a model into code?
Tagged:
0
Answers
-
Can anyone help me with this?...
How do I get my model into a DLL, that I can call in my (VB) sourcecode, in which my application is written?
???0 -
Hello
I assume that you saved your model using one of the provided operators. This is how it works within in RapidMiner:
=> RapidMiner loads the modelfile and recognizes its type
=> the appropriate class is initialized , an object is created and filled with the modelinformation
=>the object provides a method to apply the model on a new dataset.
So as far as I see, these are your options:
Run an "applier-process" using RapidMiner in commandline mode
Advantage: Easy to implement
Disadvantage: data and model have be available on disc
use RapidMiner as library
advantage: data has not to be available on disc
disadvantage: mixed languages (using java from vb) and data must be converted from your application format to RapidMiner-format
do everything in vb
advantage: using only vb (no, data has not to be available on disc
disadvantage: a lot of work: you must do what RapidMiner does (see above), that means parsing the saved model on your own and copy the apply-mechanism of the corresponding class.
if you do not want to reload the model everytime you apply it, you have to load it once and cache it within your application. If you do so, the first option is no option anymore
I prefer option 1, but this decision depends heavily on the situation of the current application.
hope this was helpful,
Steffen
0 -
Hello steffen,
thank you for the support! I also want to understand model implementation outside Rapid so can you plase provide us with an example how to do option 1?
Thanx0 -
Hi,
Option 1 would be starting rapidMiner from command line? Then just start "rapidminer process.xml" with process.xml being a file with your process doing all the work. As Steffen already pointed out, this would include loading the data from file and writing the results to file, since this option does not provide any other interface for communication. Everything has to be in the process.
Greetings,
Sebastian0 -
Oke, that help a lot but still leaves me with a world of questions as I would prefer the second and/or third option, as I want the model to run behind a secure webpage, without the need of rapidminer.
Using a library (dll) would make maintanance of the webpage (ASP.NET) reduce to a minumum, so that is what I really want... So how do I start, any help (ofcourse, the more the better ) would be appriciated ::)
0 -
Hi Jeroen,
what's about connecting to a webservice? I think this could be easier than handling of dlls?
We are right now working on such a solution for performing typically rapid miner tasks.
Greeting,
Sebastian0 -
Let me explain:
We create dashboards for users, in which several things are displayed. these dashboards are webbased.
What I want, is if a user enteres details on a new customer on the website (asp.net application), the data us run through a model to score the customer. I don not want rapidminer running on my webserver, I want the model inbeded in the asp webpage. For maintanance it is handy to have the model in a dll (so I can update the model without having toi change the code of my webpage.
0 -
Hi Jeroen,
just to get thing right (and to improve my knowledge on asp web applications ): assuming you have a dll as part of your asp application. Does it mean, that this dll is transferred to the client and accessed or executed there, i.e. not on the server?reports01 wrote:
We create dashboards for users, in which several things are displayed. these dashboards are webbased.
What I want, is if a user enteres details on a new customer on the website (asp.net application), the data us run through a model to score the customer. I don not want rapidminer running on my webserver, I want the model inbeded in the asp webpage. For maintanance it is handy to have the model in a dll (so I can update the model without having toi change the code of my webpage.
But let me come back to the essentials: embedding RapidMiner into a web service of course does also not mean that you have to always update your webpage code just when you update the model for prediction. This would rather mean you simply exchange the model on your web server - nothing more.
Unfortunately, we can not really give you more information concerning your question at the moment. We simply have not made any attempt to connect RM to native applications (e.g. VB applications or similar) yet. Altough this is a very interesting issue, we probably will have no time to have a look into that in the short term.
As Sebastian already said, we are currently in the stage of developing a connection of RM and web services. From my point of view, using RM as a web service would be definitely a suitable (and easy) solution of using RM models in your scoring application. And although we will probably not provide a generic interface to use RM as a web service, we might offer customer-specific interfaces. Maybe this might be an option for you if you thoroughly weigh up the pros and cons of possible solutions again.
Regards,
Tobias0 -
Hi Jeroen,
are you aware, that RapidMiner is licensed under AGPL3? If you include parts of RapidMiner into your Webapplication, this needs to be licensed under the AGPL3, too.
Please contact us if you have questions about licensing. As I depicted earlier, beside from buying an OEM license, you could use one of our Webservices to solve your problem and saving the OEM license.
Greetings,
Sebastian0