4
I’m trying to develop a recommendation system using the R language.
Basically, the system is music recommendation collecting information from a file where there is a certain amount of users and for each user, a count of times he has heard a certain artist.
library(recommenderlab) #Bibliotecas utilizadas para carregar dados e montar recomendações
library(tidyverse)
library(data.table)
setwd("C:/Users/DIRETORIO/Documents/R/dados") #Local de arquivo de treinamento
dados <- fread("dadosTreinamento.txt", header = TRUE, sep = "\t", fill = TRUE) #Dados carregados em variável
names(dados)[2:3] <- c("IdArtist", "IdUser") #Renomeando colunas 2 e 3
dadosGrupo <- group_by(dados, IdUser, IdArtist) #Agrupando os dados
dadosGrupo2 <- summarise(dadosGrupo, count = n()) #Gerando tabela com soma da quantidade de vezes que cada usuário ouviu determinado artista
dadosGrupo2 <- as.data.frame(dadosGrupo2) #Convertendo dadosGrupo2 para data.frame
matrizAfinidade <- as(dadosGrupo2, "realRatingMatrix") #Matriz real de dados
Rec.model<-Recommender(matrizAfinidade, method = "UBCF")
usuarios <- length(unique(dadosGrupo2$IdUser)) #Capturando a quandidade de usuários únicos
listaRecomendacoes <- vector("list", usuarios)
for (i in 1:usuarios) {
itemRecomendado <- predict(Rec.model, matrizAfinidade[i,], n=5)
listaRecomendacoes[[i]] <- as((itemRecomendado), "list")
}
After generating the recommendation in:
for (i in 1:usuarios) {
itemRecomendado <- predict(Rec.model, matrizAfinidade[i,], n=5)
listaRecomendacoes[[i]] <- as((itemRecomendado), "list")
}
Need, through the result with the album id, rescue the line with the corresponding data about the artist. For example: for the user 7687
was generated the recommendation "54" "85" "52" "245" "8035"
.
With the id of the first Album of the example (54), I need to recover the information of the whole corresponding line.
I’ve researched many ways to do this, but they all teach through addressing, not with the data itself.
The database is at this link
Thank you, you cleared my doubt.
– Mateus Dias