Esempio n. 1
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'])
        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...')
Esempio n. 2
0
 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 = {}  # 被虚假用户种植过链接的用户
Esempio n. 3
0
 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)
Esempio n. 4
0
 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 = {}  # 被虚假用户种植过链接的用户
Esempio n. 5
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...'
Esempio n. 6
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...'
Esempio n. 7
0
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
Esempio n. 8
0
    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...')