Hybrid (Item k-NN and Decision Tree) Recommendation System in RapidMiner

shannoncates_teshannoncates_te MemberPosts:4Contributor I
edited November 2018 inHelp

Please help us:(We wanted to implement a Recommender System using hybrid approach (Item k-NN CF and Decision Tree;using gini index). The result should show the performane of its algorithm (RMSE, MAE, and NMAE).

我们已经建立了推荐系统the result only shows the ranking prediction not its performance result. Btw the dataset we use is from MovieLens. Hope this problem will be solve. Thanks!Decisiontree and Item k-NN rank result.pngDecisiontree and Item k-NN.png

Best Answers

  • lionelderkrikorlionelderkrikor Moderator, RapidMiner Certified Analyst, MemberPosts:1,195Unicorn
    Solution Accepted

    Hi@shannoncates_te,

    How said in a previous topic, I don't think that RMSE, MAE, and NMAE are adapted to measure performance of your recommender system. there are dedicated to the performance of a regression model.

    However I found thePerformance (Item Recommendation)operator . Maybe it will help you to evaluate your (meta)model.

    Applied to your model, it give the following results. I do not know what all the score metrics are :

    Recommender.png

    Here you can find the process :







    <运营商激活= " true " class = "过程”兼容ibility="8.0.001" expanded="true" name="Process">













































    Type your comment







































    <连接from_op =“性能”from_port = "性能nce" to_port="result 2"/>









    Regards,

    Lionel

    Thomas_Ott
  • lionelderkrikorlionelderkrikor Moderator, RapidMiner Certified Analyst, MemberPosts:1,195Unicorn
    Solution Accepted

    Hi@shannoncates_te,

    1. I have investigated your project and I think that you can improve the performances of your recommendation system

    using the models of theItem Recommendationextension (not only theItem kNNmodel) andModel Combineroperator (I was inspired by the vote operator advised by@Thomas_Ottin a previous topic).

    Here the process :







    <运营商激活= " true " class = "过程”兼容ibility="8.0.001" expanded="true" name="Process">













































    Type your comment



























    <运营商激活= " true " class = " irbrecommender: user_k-NN" compatibility="5.1.002" expanded="true" height="82" name="User k-NN" width="90" x="983" y="238"/>




























    <连接from_op =“性能”from_port = "性能nce" to_port="result 1"/>








    2. To go further, the next step is the optimization of the models. But there is a problem :

    the mod input port of theCross Validationoperator (inside theOptimizationoperator) expect amodelbut receive aItemRecommendationobject generated by the itemrecommandation models : Question to the experts :

    The Optimization of these recommendation models is impossible ?

    So in a first time, I recommend to optimize your models "manually" trying differents combinaisons of model's parameters.

    3. You can find a ressource about the score metrics of thePerformance (Item Recommendation)operator in attached file.

    4. I executed the process by downsampling the dataset (~100000 rows -> 10000 rows) because I have the free version of RM,

    but I think that my results are representative of the full dataset.

    I hope it will be helpful for your thesis.

    Regards,

    Lionel

    Thomas_Ott
  • Telcontar120Telcontar120 Moderator, RapidMiner Certified Analyst, RapidMiner Certified Expert, MemberPosts:1,635Unicorn
    Solution Accepted

    It should be possible to use the Optimization operator with these models, which simply require a Performance operator, which the optimization needs to measure whether something is better or worse. It might not be able to be done inside the Cross-Validation operator, as you noted. But putting the entire process inside an optimization should be just fine, and then simply select the operators and parameters that you want to optimize.

    Brian T.
    Lindon Ventures
    Data Science Consulting from Certified RapidMiner Experts
    lionelderkrikor
  • lionelderkrikorlionelderkrikor Moderator, RapidMiner Certified Analyst, MemberPosts:1,195Unicorn
    Solution Accepted

    Hi@shannoncates_teagain,

    How said previously, you can improve the performance of your models by using theOptimize Parametersoperator (thanks to@Telcontar120for the trick) :

    Here is an example of process :







    <运营商激活= " true " class = "过程”兼容ibility="8.0.001" expanded="true" name="Process">













































    Type your comment



































    <运营商激活= " true " class = " irbrecommender: user_k-NN" compatibility="5.1.002" expanded="true" height="82" name="User k-NN" width="90" x="447" y="238"/>






















    <连接from_op =“性能”from_port = "性能nce" to_port="performance"/>





























    Regards,

    Lionel

    sgenzer

Answers

Sign InorRegisterto comment.