How to implement the SlopeOne recommender in Mahout 0.9? - mahout

I'm new to Mahout and am trying to work through 'Mahout in Action,' which uses the 0.5 release. One of the early examples calls for using the slope-one recommender. Is this recommender still included in Mahout 0.9? I've looked through the documentation and I couldn't find it. Perhaps it has changed names?
Thanks for your help!

There is no SlopeOneRecommender present in Mahout 0.9. It was removed in an earlier version of Mahout.
SlopeOne Recommender was removed from Mahout 0.8 onwards MAHOUT-1250
If you want to still use it, use an earlier version such as Mahout 0.7.

Related

Should I implement Content-based Recommender from scratch or use Machine learning library like mahout?

I am new to apache mahout but i read one article which said Apache Mahout 1.0 gives content based recommendion (http://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html) but now it turns out that it does not give content-based recommendation rather it gives recommendation based on different user actions on website.
Amazon ,Netflix might have been using content-based recommender and probabily they might have implemented them from scratch but now my question is:
Is there any Machine Learning library which gives us content-based recommendation or do i have to implement it by myself ?
Here by content based recommendation i mean there is feature vector for item and we behaviour vector for each user and hence by multiplying them we get recommendation for particular user.
Please recommend something to me,
Thanks in advance.

Spiking Neural Network Classifier Implementation

Are there any machine learning packages that implement spiking neural networks? or any other stand-alone implementations of them that could get me started to work with?
A python library named Brian ought to be useful for you.
There's also what I believe is a programing language named NEURON, but Brian is fairly easy to learn, at least for the basics. It took me a while though to figure out how to do a couple small things, since its a really high level language or whatnot.
There are several other SNN platforms these days that allows you to run classification. I have worked with NeuCube (https://kedri.aut.ac.nz/R-and-D-Systems/neucube) which is a Matlab & Java-based SNN platform.
Also, check out Akida Development Environment (ADE) from Brainchip Inc (https://brainchipinc.com/). One of the best features of ADE is that it's APIs are based on tensorflow/keras structure and also supports CNN2SNN converter to use your deep learning models in SNN domain. SNN models developed using this platform can be deployed on their neuromorphic processor Akida.
I believe there are other platforms such as PyNN and Nengo (compatibility to run models on Loihi) within the SNN domain.
Here are links for brain simulator
https://github.com/brian-team/brian2
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2605403/
http://briansimulator.org/
You can install the Nengo Loihi library for deployment not only of spiking neural networks but also neuromorphic neural networks.
here's the link to their website: https://www.nengo.ai/nengo-loihi/v1.0.0/index.html
You can find on Kaggle an implementation of the ciphar10 dataset, locally loaded, using Nengo Loihi library. Here's the link:
https://www.kaggle.com/migueltoms/neuromorphic-ciphar-10-loihi-comparison-of-results

should I use mahout for this?

I want to recommend items that are tagged and are categorized into three price categories (cheap, regular and expensive). I know that with Mahout recommendation could be achieved but here's why I don't know how to use it.
Mahout is based on the other users opinion but all of the new items that I want to recommend are just the new ones that don't have any preferences set yet.
Is Mahout the right tool for this? Is this content-based? (which mahout don't support yet????) or should I use classification?
Thanks!
Since I've never built any recommender system - do not take this answer very seriously (no-one has answered it, so I try)
recommendation system has to be built on some already known (or partially known data). If you have only new (unseen) data there is only possibility to use some clustering algorithm in order to build some clusters.
And if those clusters would be ok, they can be used for training some recommendation system.
Mahout is just a tool which implement various ML methods. You can use other tools like Weka, R, ...
If you have no data at all about a new user, there's really nothing you can do to make recommendations, no matter what you do. There is zero input that would differentiate the person from anyone else.
Good systems should however be able to do something reasonable after the first input is available.
This is not a classifier problem by nature, no. It is also not a clustering tool, other answers notwithstanding.
The price categories are not core to any rec process you would use. You have other data presumably, what is it? That's important.
Finally whether or not to use Mahout depends on taste. You would use it if you want to use Java and Hadoop. And in turn you would only consider Hadoop if you had very large input, and few people have that much data (like >10M data points at least).
(Well, not quite -- my recommender pieces in Mahout pre-date Hadoop and are for on-line, smaller-scale applications. You might indeed be interested in this, if you are working in Java.)

does mahout0.7 still support both in-memory and MR KMeans clustering?

Does mahout-0.7 still support both in-memory and MR KMeans clustering? In its earlier release, it has a KmeansClusterer for in-memory clustering and KmeansDriver for MapReduce clustering. However, the KmeansClusterer seems to be removed from mahout0.7
Yes, in-memory KMeans was removed from Mahout 0.7. You can see examples on how to use MR KMeans in examples for Mahout in Action, that were adapted for Mahout 0.7.

How do I create a custom haar classifier?

I am struggling to create a custom haar classifier. I have found a couple tutorials on the web, but they do not specify which version of opencv they are using. What I need is a very concise and simplified example of the steps that are required, along with a simple dataset of images. I also need to know the opencv version and the OS platform so I can get it running. I have tried a matrix of opencv versions on both windows and linux and I have run into memory error after memory error. I would like to start with a known good set of data and simple commands before expanding it to fit my problem.
Thanks for your help,
Chris
OpenCV provides two utility commands createsamples.exe and haartraining.exe, which can generate xml files used by Haar Classifiers. That is, with the xml file outputted from haartraining.exe, you can directly use the face detection sample with your xml file to detect any customized objects.
About the detailed procedures to use the commands, you may consult Page 513-516 in the book "Learning OpenCV", or this tutorial.
About the internal mechanism of how the classifier works, you may consult the paper "Rapid Object Detection using a Boosted Cascade of Simple
Features", which has been cited 5500+ times.

Resources