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,conf): super(RelationAttack, self).__init__(conf) self.spamLink = defaultdict(list) self.relation = FileIO.loadRelationship(self.config,self.config['social']) self.trustLink = defaultdict(list) self.trusteeLink = defaultdict(list) for u1,u2,t in self.relation: self.trustLink[u1].append(u2) self.trusteeLink[u2].append(u1) self.activeUser = {} # 关注了虚假用户的正常用户 self.linkedUser = {} # 被虚假用户种植过链接的用户
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, conf): super(RelationAttack, self).__init__(conf) self.spamLink = defaultdict(list) self.relation = FileIO.loadRelationship(self.config, self.config['social']) self.trustLink = defaultdict(list) self.trusteeLink = defaultdict(list) for u1, u2, t in self.relation: self.trustLink[u1].append(u2) self.trusteeLink[u2].append(u1) self.activeUser = {} # 关注了虚假用户的正常用户 self.linkedUser = {} # 被虚假用户种植过链接的用户
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,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...')