On Sat, Jun 9, 2012 at 9:03 PM, Elham Hormozi <[email protected]>wrote:
> *- Can you say more about this?* > AIRS is a classification algorithm based on artificial immune system. I > will use it for credit card fraud detection in which it is proved to have a > good performance. This is an academic project. > Great. That probably means that you should build your project as an independent project using some repository like github. Mahout is available as a Maven dependency so that is probably a good way to go for building your project. > *- Perhaps define what the airs algorithm does? (it looks like a variant > on k-nn algorithm)* > AIRS generates a set of memory cells in training phase. In classification > phase it uses the generated cells in knn algorithm as neighbors.Generating > memory cells is based on clonal selection that is introduced in AIS. (I can > explain more about the details if needed) > No need. This disambiguates what you were talking about. > *- How do you plan to add it?* > The code is ready. AIRS has been implemented in java and been tested > before. We have used MapReduce in training phase and ran it on virtual > nodes with no problem. I've already downloaded Mahout source and ran KMeans > and Bayes via source with no problem. Now I want to know if it is possible > to add any new algorithm to mahout, if yes how? Is there any defined > structure in which I should implement code, or special functions that must > be inserted? > The basic requirements at this point are: - you use the correct style (basically Lucene style) - you have comprehensive test cases - you provide good documentation - the system is based on Mahout libraries and doesn't bring in redundant dependencies. In addition, we have recently started to increase the required level of support and adoption that a package needs to have before being added to Mahout. An academic project typically doesn't meet either of these requirements. I suggest that you host your project on Github, but discuss it here on the Mahout mailing lists. If, over time, you get some adoption and we see ongoing maintenance happening then that might be an appropriate time * - Will you be maintaining it? Are there users who will be using this > algorithm in production?* > As mentioned before this is an academic project. Our purpose is mostly > about implementing AIRS using MapReduce, as Mahout is a powerful library > we'd like to add our code to this library. > That sounds like a no. If you aren't willing to support this code, then why do you think that others will be willing to? The key here is that Mahout is going through the process of deleting a bunch of code that people don't seem interested in adopting or maintaining. So why should we add more of this kind of code? > * - Why is it needed? (based on *BENCHMARKING THE AIRS ARTIFICIAL IMMUNE > SYSTEM FOR CLASSIFICATION* by van der Putten and Ling, it doesn't appear to > offer anything extraordinary)* > The goal of project is to measure the performance of AIRS using MapReduce > for credit card fraud detection. It has been shown in some papers that AIRS > can perform better than some other common algorithms for fraud detection. > Body Immune System is similar to fraud detection system that's why we have > chosen this algorithm. > That's great. Do the comparison. You don't need to add it to Mahout for this. > * - Does it scale? (in particular, will it perform any better than a simple > k-nn based on better known algorithms)* > Considering fraud detection particularly, yes it does perform better. > I thought that you haven't done the comparison yet. How do you know that it works better?
