Real time application of a RM model

reports01
reports01 New Altair Community Member
edited November 5 in Community Q&A
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?
Tagged:

Answers

  • reports01
    reports01 New Altair Community Member
    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?

    ???
  • steffen
    steffen New Altair Community Member
    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
  • Liliput
    Liliput New Altair Community Member
    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?

    Thanx
  • land
    land New Altair Community Member
    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,
      Sebastian
  • reports01
    reports01 New Altair Community Member
    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  ::)

  • land
    land New Altair Community Member
    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,
      Sebastian
  • reports01
    reports01 New Altair Community Member
    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.

  • TobiasMalbrecht
    TobiasMalbrecht New Altair Community Member
    Hi Jeroen,
    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.
    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?

    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,
    Tobias
  • land
    land New Altair Community Member
    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,
      Sebastian