Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.mysql.jdbc.Connection;
- import entities.User;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.PrintWriter;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.List;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- import util.Query;
- public class EvaluatorFromUser {
- public static void main(String[] args) {
- try {
- Class.forName("com.mysql.jdbc.Driver");
- Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/georrecomendation","root","root");
- System.out.println("Conexion con la base de datos exitosa");
- Statement stmt = con.createStatement();
- Query queries = new Query(stmt);
- List<User> users = queries.getNHigherRatingsUsers(50);
- int i = 1;
- for(User user : users){
- System.out.println("Creando el evaluador del experimento "+i);
- printEvaluatorFile(user.getId(), i);
- i++;
- }
- } catch (ClassNotFoundException | SQLException ex) {
- Logger.getLogger(EvaluatorFromUser.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- public static void printEvaluatorFile(long user_id, int nro_exp){
- StringBuilder sb = new StringBuilder();
- sb.append("import org.grouplens.lenskit.iterative.*\n");
- sb.append("import org.grouplens.lenskit.knn.user.*\n");
- sb.append("import org.grouplens.lenskit.knn.item.*\n");
- sb.append("import org.grouplens.lenskit.mf.funksvd.*\n");
- sb.append("import org.grouplens.lenskit.transform.normalize.*\n");
- sb.append("import org.grouplens.lenskit.eval.metrics.topn.*\n");
- sb.append("trainTest {\n");
- sb.append(" dataset crossfold('user-"+user_id+"') {\n");
- sb.append(" source csvfile('datasets\\\\"+String.format("%05d", nro_exp)+"-rf-data-"+user_id+".csv'){\n");
- sb.append(" delimiter ','\n");
- sb.append(" domain {\n");
- sb.append(" minimum 1.0\n");
- sb.append(" maximum 5.0\n");
- sb.append(" precision 1.0\n");
- sb.append(" }\n");
- sb.append(" }\n");
- sb.append(" }\n");
- sb.append(" algorithm('UserUser') {\n");
- sb.append(" bind ItemScorer to UserUserItemScorer\n");
- sb.append(" bind UserVectorNormalizer to BaselineSubtractingUserVectorNormalizer\n");
- sb.append(" within (UserVectorNormalizer) {\n");
- sb.append(" bind (BaselineScorer, ItemScorer) to ItemMeanRatingItemScorer\n");
- sb.append(" }\n");
- sb.append(" }\n");
- sb.append(" metric RMSEPredictMetric\n");
- sb.append(" metric MAEPredictMetric\n");
- sb.append(" metric topNnDCG {\n");
- sb.append(" listSize 50\n");
- sb.append(" candidates ItemSelectors.allItems()\n");
- sb.append(" exclude ItemSelectors.trainingItems()\n");
- sb.append(" }\n");
- sb.append(" userOutput 'output\\\\"+String.format("%05d", nro_exp)+"results-user-"+user_id+"-nDCG@50.csv'\n");
- sb.append("}\n");
- try (PrintWriter pw = new PrintWriter(new File(String.format("%05d", nro_exp)+"-evaluator-"+user_id+".groovy"))) {
- pw.write(sb.toString());
- pw.close();
- } catch (FileNotFoundException ex) {
- System.out.println("Ha ocurrido un error: "+ex.getLocalizedMessage());
- Logger.getLogger(DataSetFromUser.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement