-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.cpp
102 lines (88 loc) · 2.76 KB
/
main.cpp
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "stdafx.h"
#include "corpus.h"
#include "AR.h"
#include "BPR.h"
#include "MPR.h"
void go_AR(corpus* corp, int K, double lambda, double biasReg, int iterations, double learn_rate, const char* corp_name)
{
AR md(corp, K, lambda, biasReg);
md.init();
md.train(iterations, learn_rate);
md.saveModel((string(corp_name) + "__" + md.toString()).c_str());
md.cleanUp();
}
void go_BPR(corpus* corp, int K, double lambda, double biasReg, int iterations, double learn_rate, const char* corp_name)
{
BPR md(corp, K, lambda, biasReg);
md.init();
md.train(iterations, learn_rate);
md.saveModel((string(corp_name) + "__" + md.toString()).c_str());
md.cleanUp();
}
void go_MPR(corpus* corp, int K, double lambda, double biasReg, int iterations, double learn_rate, double alpha, const char* corp_name)
{
MPR md(corp, K, lambda, biasReg, alpha);
md.init();
md.train(iterations, learn_rate, alpha);
md.saveModel((string(corp_name) + "__" + md.toString()).c_str());
md.cleanUp();
}
int main()
{
const char* reviewPath = "C:/Users/Shinelon/Desktop/VBR2016/ratings_Video_Games.csv";
int K = 20;
double biasReg = 0.01;
double lambda = 10.0;
double alpha = 0.5;
int iter = 100;
const char* corpName = "MPR";
double learn_rate = 0.01;
fprintf(stderr, "{ \n");
fprintf(stderr, " \"corpus\": \"%s\",\n", reviewPath);
corpus corp;
corp.loadData(reviewPath, 10, 10);
//go_AR(&corp, K, lambda, biasReg, iter, learn_rate, corpName);
//go_BPR(&corp, K, lambda, biasReg, iter, learn_rate, corpName);
go_MPR(&corp, K, lambda, biasReg, iter, learn_rate, alpha, corpName);
corp.cleanUp();
fprintf(stderr, "}\n");
system("pause");
return 0;
}
/*
int main(int argc, char** argv)
{
srand(0);
if (argc != 8)
{
printf(" Parameters as following: \n");
printf(" 1. Review file path\n");
printf(" 2. Latent Feature Dim. (K)\n");
printf(" 3. biasReg (regularize bias terms)\n");
printf(" 4. lambda (regularize general terms)\n");
printf(" 5. alpha (weight between IR and AR : 0~1) \n");
printf(" 6. Max #iter \n");
printf(" 7. corpus name \n");
exit(1);
}
char* reviewPath = argv[1];
int K = atoi(argv[2]);
double biasReg = atof(argv[3]);
double lambda = atof(argv[4]);
double alpha = atof(argv[5]);
int iter = atoi(argv[6]);
char* corpName = argv[7];
double learn_rate = 0.01;
fprintf(stderr, "{ \n");
fprintf(stderr, " \"corpus\": \"%s\",\n", reviewPath);
corpus corp;
corp.loadData(reviewPath, 5, 0);
//go_AR(&corp, K, lambda, biasReg, iter, learn_rate, corpName)
//go_BPR(&corp, K, lambda, biasReg, iter, learn_rate, corpName)
go_MPR(&corp, K, lambda, biasReg, iter, learn_rate, alpha, corpName);
corp.cleanUp();
fprintf(stderr, "}\n");
system("pause");
return 0;
}
*/