GACFF-package: Genetic Similarity in User-Based Collaborative Filtering

Description Details Author(s) References Examples

Description

The genetic algorithm can be used directly to find the similarity of users and more effectively to increase the efficiency of the collaborative filtering method. By identifying the nearest neighbors to the active user, before the genetic algorithm, and by identifying suitable starting points, an effective method for user-based collaborative filtering method has been developed. This package uses an optimization algorithm (continuous genetic algorithm) to directly find the optimal similarities between active users (users for whom current recommendations are made) and others. First, by determining the nearest neighbor and their number, the number of genes in a chromosome is determined. Each gene represents the neighbor's similarity to the active user. By estimating the starting points of the genetic algorithm, it quickly converges to the optimal solutions. The positive point is the independence of the genetic algorithm on the number of data that for big data is an effective help in solving the problem.

Details

The DESCRIPTION file: This package was not yet installed at build time.

Index: This package was not yet installed at build time.
Genetic-based recommender systems.

Finding the Nearest Neighbors and Using Them in the Genetic-Based Collaborative Filtering Recommender System.

Author(s)

Farimah Houshmand Nanehkaran, Seyed Mohammad Reza Lajevardi <R.Lajevardi@iaukashan.ac.ir>, Mahmoud Mahlouji Bidgholi <m.mahlouji@iaukashan.ac.ir>

Maintainer: Farimah Houshmand Nanehkaran <hoshmandcomputer@gmail.com>

References

Bobadilla, J., Ortega, F., Hernando, A. and Alcalá, J. (2011). Improving collaborative filtering recommender system results and performance using genetic algorithms. Knowledge-based systems, vol. 24, no. 8, pp. 1310-1316.

Ben-Shimon, D., Rokach, L. and Shapira, B. (2016). An ensemble method for top-N recommendations from the SVD. Expert Systems with Applications, vol. 64, pp.84-92.

Kang, Z., Peng, C. and Cheng, Q. (2016). Top-n recommender system via matrix completion. In Thirtieth AAAI Conference on Artificial Intelligence.

Qian, Y., Zhang, Y., Ma, X., Yu, H. and Peng, L. (2019). EARS: Emotion-aware recommender system based on hybrid information fusion. Information Fusion, vol. 46, pp.141-146.

Xia, B., Li, T., Li, Q. and Zhang, H. (2018). Noise-tolerance matrix completion for location recommendation. Data Mining and Knowledge Discovery, vol. 32, no. 1, pp.1-24.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ratings <- matrix(c(  2,    5,  NaN,  NaN,  NaN,    4,
                    NaN,  NaN,  NaN,    1,  NaN,    5,
                    NaN,    4,    5,  NaN,    4,  NaN,
                      4,  NaN,  NaN,    5,  NaN,  NaN,
                      5,  NaN,    2,  NaN,  NaN,  NaN,
                    NaN,    1,  NaN,    4,    2,  NaN),nrow=6,byrow=TRUE)

active_users <- c(1:dim(ratings)[2])
##1
sim.Pearson  <- Similarity_Pearson (ratings, active_user=6, 
                                   near_user=c(1:dim(ratings)[2]))
##2
Pearson.out  <- Pearson (ratings, active_user=6, Threshold_KNN=4)
##3
predict      <-Prediction (ratings, active_user=6, 
                      near_user=Pearson.out$near_user_Pearson, 
                      sim_x=Pearson.out$sim_Pearson, 
                      KNN=length(Pearson.out$sim_Pearson))
##4
ItemSelect (ratings, active_user=6, pre_x=predict)
##5
NewKNN.out  <- NewKNN (ratings, active_user=6, Threshold_KNN=4,
                      max_scour=5, min_scour=1)
##6
Genetic.out <- Genetic (ratings, active_user=6, 
                        near_user=NewKNN.out$near_user, 
                        Threshold_KNN=4, max_scour=5, min_scour=1,
                        PopSize=100, MaxIteration=50, CrossPercent=70, 
                        MutatPercent=20)
##7
Results.out <- Results(ratings, active_users, Threshold_KNN=4, max_scour=5, 
                     min_scour=1, PopSize=100, MaxIteration=50, 
                     CrossPercent=70, MutatPercent=20)
##8
meanR.Results.out <- meanR.Results (obj_Results=Results.out)
##9
plotResults(active_users, Results.out, xlab = "Iteration", ylab = "MAE",
                main = "MAE (New KNN+GA) in CF Recommender Systems" )

GACFF documentation built on Dec. 20, 2019, 5:07 p.m.