Beispiel #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...')
Beispiel #2
0
    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...'
Beispiel #3
0
 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()
Beispiel #4
0
 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
Beispiel #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...'
Beispiel #6
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)
Beispiel #7
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...'
Beispiel #8
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
Beispiel #9
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...')