def __init__(self, config): self.trainingData = [] # training data self.testData = [] # testData self.relation = [] self.measure = [] self.config = config self.ratingConfig = LineConfig(config['ratings.setup']) if self.config.contains('evaluation.setup'): self.evaluation = LineConfig(config['evaluation.setup']) binarized = False bottom = 0 if self.evaluation.contains('-b'): binarized = True bottom = float(self.evaluation['-b']) if self.evaluation.contains('-testSet'): #specify testSet self.trainingData = FileIO.loadDataSet(config, config['ratings'], binarized=binarized, threshold=bottom) self.testData = FileIO.loadDataSet(config, self.evaluation['-testSet'], bTest=True, binarized=binarized, threshold=bottom) elif self.evaluation.contains('-ap'): #auto partition self.trainingData = FileIO.loadDataSet(config, config['ratings'], binarized=binarized, threshold=bottom) self.trainingData,self.testData = DataSplit.\ dataSplit(self.trainingData,test_ratio=float(self.evaluation['-ap']),binarized=binarized) elif self.evaluation.contains('-cv'): #cross validation self.trainingData = FileIO.loadDataSet(config, config['ratings'], binarized=binarized, threshold=bottom) #self.trainingData,self.testData = DataSplit.crossValidation(self.trainingData,int(self.evaluation['-cv'])) else: print('Evaluation is not well configured!') exit(-1) if config.contains('social'): self.socialConfig = LineConfig(self.config['social.setup']) self.relation = FileIO.loadRelationship(config, self.config['social']) print('preprocessing...')
def __init__(self,config): self.trainingData = [] # training data self.testData = [] # testData self.measure = [] self.config =config setup = LineConfig(config['record.setup']) columns = {} labels = setup['-columns'].split(',') delim = '' if setup.contains('-delim'): delim=setup['-delim'] for col in labels: label = col.split(':') columns[label[0]] = int(label[1]) if self.config.contains('evaluation.setup'): self.evaluation = LineConfig(config['evaluation.setup']) binarized = False bottom = 0 if self.evaluation.contains('-b'): binarized = True bottom = float(self.evaluation['-b']) if self.evaluation.contains('-testSet'): #specify testSet self.trainingData = FileIO.loadDataSet(config['record'],columns=columns,binarized=binarized,threshold=bottom,delim=delim) self.testData = FileIO.loadDataSet(self.evaluation['-testSet'],binarized=binarized,columns=columns,threshold=bottom,delim=delim) elif self.evaluation.contains('-ap'): #auto partition self.trainingData = FileIO.loadDataSet(config['record'],columns=columns,binarized=binarized,threshold=bottom,delim=delim) self.trainingData,self.testData = DataSplit.\ dataSplit(self.trainingData,test_ratio=float(self.evaluation['-ap'])) elif self.evaluation.contains('-byTime'): self.trainingData = FileIO.loadDataSet(config['record'], columns=columns, binarized=binarized,threshold=bottom, delim=delim) self.testData = [] elif self.evaluation.contains('-cv'): #cross validation self.trainingData = FileIO.loadDataSet(config['record'],columns=columns,binarized=binarized,threshold=bottom,delim=delim) #self.trainingData,self.testData = DataSplit.crossValidation(self.trainingData,int(self.evaluation['-cv'])) else: print 'Evaluation is not well configured!' exit(-1) # if config.contains('social'): # self.socialConfig = LineConfig(self.config['social.setup']) # self.relation = FileIO.loadRelationship(config,self.config['social']) print 'preprocessing...'
def __init__(self, conf): self.config = Config(conf) self.userProfile = FileIO.loadDataSet(self.config, self.config['ratings']) self.itemProfile = defaultdict(dict) self.attackSize = float(self.config['attackSize']) self.fillerSize = float(self.config['fillerSize']) self.selectedSize = float(self.config['selectedSize']) self.targetCount = int(self.config['targetCount']) self.targetScore = float(self.config['targetScore']) self.threshold = float(self.config['threshold']) self.minCount = int(self.config['minCount']) self.maxCount = int(self.config['maxCount']) self.outputDir = self.config['outputDir'] if not os.path.exists(self.outputDir): os.makedirs(self.outputDir) for user in self.userProfile: for item in self.userProfile[user]: self.itemProfile[item][user] = self.userProfile[user][item] self.spamProfile = defaultdict(dict) self.spamItem = defaultdict(list) #items rated by spammers self.targetItems = [] self.itemAverage = {} self.getAverageRating() self.selectTarget()
def __init__(self,conf): self.config = Config(conf) self.userProfile = FileIO.loadDataSet(self.config,self.config['ratings']) self.itemProfile = defaultdict(dict) self.attackSize = float(self.config['attackSize']) self.fillerSize = float(self.config['fillerSize']) self.selectedSize = float(self.config['selectedSize']) self.targetCount = int(self.config['targetCount']) self.targetScore = float(self.config['targetScore']) self.threshold = float(self.config['threshold']) self.minCount = int(self.config['minCount']) self.maxCount = int(self.config['maxCount']) self.minScore = float(self.config['minScore']) self.maxScore = float(self.config['maxScore']) self.outputDir = self.config['outputDir'] if not os.path.exists(self.outputDir): os.makedirs(self.outputDir) for user in self.userProfile: for item in self.userProfile[user]: self.itemProfile[item][user] = self.userProfile[user][item] self.spamProfile = defaultdict(dict) self.spamItem = defaultdict(list) #items rated by spammers self.targetItems = [] self.itemAverage = {} self.getAverageRating() self.selectTarget() self.startUserID = 0
def __init__(self, config): self.trainingData = [] # training data self.testData = [] # testData self.relation = [] self.measure = [] self.config = config self.ratingConfig = LineConfig(config['ratings.setup']) self.labels = FileIO.loadLabels(config['label']) if self.config.contains('evaluation.setup'): self.evaluation = LineConfig(config['evaluation.setup']) if self.evaluation.contains('-testSet'): #specify testSet self.trainingData = FileIO.loadDataSet(config, config['ratings']) self.testData = FileIO.loadDataSet(config, self.evaluation['-testSet'], bTest=True) elif self.evaluation.contains('-ap'): #auto partition self.trainingData = FileIO.loadDataSet(config, config['ratings']) self.trainingData,self.testData = DataSplit.\ dataSplit(self.trainingData,test_ratio=float(self.evaluation['-ap'])) elif self.evaluation.contains('-cv'): #cross validation self.trainingData = FileIO.loadDataSet(config, config['ratings']) #self.trainingData,self.testData = DataSplit.crossValidation(self.trainingData,int(self.evaluation['-cv'])) else: print 'Evaluation is not well configured!' exit(-1) if config.contains('social'): self.socialConfig = LineConfig(self.config['social.setup']) self.relation = FileIO.loadRelationship(config, self.config['social']) print 'preprocessing...'
def __init__(self, conf): self.conf = conf if not conf.contains('ratings') and not conf.contains('social'): print 'The config file is not in the correct format!' exit(-1) if conf.contains('ratings'): ratingData = FileIO.loadDataSet(conf, conf['ratings']) self.dao = RatingDAO(conf, ratingData) if conf.contains('social'): relationData = FileIO.loadRelationship(conf, conf['social']) self.sao = SocialDAO(conf, relationData)
def __init__(self,config): self.trainingData = [] # training data self.testData = [] # testData self.relation = [] self.measure = [] self.config =config self.ratingConfig = LineConfig(config['ratings.setup']) self.labels = FileIO.loadLabels(config['label']) if self.config.contains('evaluation.setup'): self.evaluation = LineConfig(config['evaluation.setup']) if self.evaluation.contains('-testSet'): #specify testSet self.trainingData = FileIO.loadDataSet(config, config['ratings']) self.testData = FileIO.loadDataSet(config, self.evaluation['-testSet'], bTest=True) elif self.evaluation.contains('-ap'): #auto partition self.trainingData = FileIO.loadDataSet(config,config['ratings']) self.trainingData,self.testData = DataSplit.\ dataSplit(self.trainingData,test_ratio=float(self.evaluation['-ap'])) elif self.evaluation.contains('-cv'): #cross validation self.trainingData = FileIO.loadDataSet(config, config['ratings']) #self.trainingData,self.testData = DataSplit.crossValidation(self.trainingData,int(self.evaluation['-cv'])) else: print 'Evaluation is not well configured!' exit(-1) if config.contains('social'): self.socialConfig = LineConfig(self.config['social.setup']) self.relation = FileIO.loadRelationship(config,self.config['social']) print 'preprocessing...'
import sys sys.path.append("..") from tool.config import Config from tool.file import FileIO from algorithm.SoReg import SoReg if __name__ == '__main__': print'='*80 print'this is the algorithm of the test' algor = -1 conf = -1 conf = Config('../conf/SoReg.conf') trainset = [] testset = [] relation = [] ui={} vj={} user_item_avg={} trainset = FileIO.loadDataSet(conf,conf['ratings'],bTest=False) testset = FileIO.loadDataSet(conf,conf['testset'],bTest=True) relation = FileIO.loadRelationship(conf,conf['social']) ui,vj,user_item_avg=SoReg.buildmodel(trainset,relation) SoReg.pred(testset,ui,vj,user_item_avg) #sotre the data
def __init__(self, config, account_DAO=None): self.trainingData = [] # training data self.testData = [] # testData self.relation = [] self.measure = [] self.config = config self.ratingConfig = LineConfig(config['ratings.setup']) # self.accountDAO = account_DAO # self.currentTime = strftime("%Y-%m-%d %H-%M-%S", localtime(time())) if self.config.contains('evaluation.setup'): self.evaluation = LineConfig(config['evaluation.setup']) binarized = False bottom = 0 if self.evaluation.contains('-b'): binarized = True bottom = float(self.evaluation['-b']) if self.evaluation.contains('-testSet'): # specify testSet self.trainingData = FileIO.loadDataSet(config, config['ratings'], binarized=binarized, threshold=bottom) self.testData = FileIO.loadDataSet(config, self.evaluation['-testSet'], bTest=True, binarized=binarized, threshold=bottom) elif self.evaluation.contains('-ap'): # auto partition self.trainingData = FileIO.loadDataSet(config, config['ratings'], binarized=binarized, threshold=bottom) self.trainingData, self.testData = DataSplit. \ dataSplit(self.trainingData, test_ratio=float(self.evaluation['-ap']), binarized=binarized) elif self.evaluation.contains('-cv'): # cross validation self.trainingData = FileIO.loadDataSet(config, config['ratings'], binarized=binarized, threshold=bottom) # self.trainingData,self.testData = DataSplit.crossValidation(self.trainingData,int(self.evaluation['-cv'])) elif self.evaluation.contains('--account'): self.training_user_item = account_DAO.training_user_item self.training_account_item = account_DAO.training_account_item self.relation = account_DAO.relation self.test_user_item = account_DAO.test_user_item else: print('Evaluation is not well configured!') exit(-1) if config.contains('social'): self.socialConfig = LineConfig(self.config['social.setup']) self.relation = FileIO.loadRelationship(config, self.config['social']) print('preprocessing...')