summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2015-04-11 17:46:19 +0800
committerJoe Zhao <ztuowen@gmail.com>2015-04-11 17:46:19 +0800
commit85a4962556b67d1cc0668ecb2fbb03b3b4dd6e7e (patch)
tree3059605ab0707b5530330dacdd9445b59bd73669 /tools
parent5d57accc3e1bc2b89c1e7753f7dbb40f3c8f575a (diff)
downloadranksvm-85a4962556b67d1cc0668ecb2fbb03b3b4dd6e7e.tar.gz
ranksvm-85a4962556b67d1cc0668ecb2fbb03b3b4dd6e7e.tar.bz2
ranksvm-85a4962556b67d1cc0668ecb2fbb03b3b4dd6e7e.zip
completed & tested, train & predict
Diffstat (limited to 'tools')
-rw-r--r--tools/dataProvider.h11
-rw-r--r--tools/fileDataProvider.h11
2 files changed, 14 insertions, 8 deletions
diff --git a/tools/dataProvider.h b/tools/dataProvider.h
index fbf554b..da3e1ee 100644
--- a/tools/dataProvider.h
+++ b/tools/dataProvider.h
@@ -4,7 +4,6 @@
#include<Eigen/Dense>
#include "../tools/easylogging++.h"
#include<vector>
-#include<list>
// TODO decide how to construct training data
// One possible way for training data:
@@ -25,18 +24,18 @@ typedef struct DataEntry{
class DataList{
private:
int n;
- std::list<DataEntry*> data;
+ std::vector<DataEntry*> data;
public:
int getSize(){return data.size();}
- void addEntry(DataEntry* d){data.push_front(d);}
+ void addEntry(DataEntry* d){data.push_back(d);}
void setfSize(int fsize){n=fsize;}
int getfSize(){return n;}
int clear(){
- for (std::list<DataEntry*>::iterator i=data.begin(),end=data.end();i!=end;++i)
- delete *i;
+ for (int i=0;i<data.size();++i)
+ delete data[i];
data.clear();
}
- std::list<DataEntry*> getData(){
+ std::vector<DataEntry*>& getData(){
return data;
}
~DataList(){
diff --git a/tools/fileDataProvider.h b/tools/fileDataProvider.h
index 6ccf28f..942ec9b 100644
--- a/tools/fileDataProvider.h
+++ b/tools/fileDataProvider.h
@@ -2,6 +2,7 @@
#define FDPROV_H
#include "dataProvider.h"
+#include "easylogging++.h"
#include <string>
#include <iostream>
#include <fstream>
@@ -18,11 +19,17 @@ public:
DataEntry* e;
out.clear();
int fsize;
- out.setfSize(fsize);
fin>>fsize;
+ LOG(INFO)<<"Feature size:"<<fsize;
+ out.setfSize(fsize);
while (!fin.eof()) {
- e= new DataEntry;
+ e = new DataEntry;
fin>>e->rank;
+ if (e->rank == 0)
+ {
+ delete e;
+ break;
+ }
fin>>e->qid;
e->feature.resize(fsize);
for (int i=0;i<fsize;++i) {