def run(self, batchID: str, jobID: str): divisionDatasetPercentualSize: int uBehaviour: str repetition: int divisionDatasetPercentualSize, uBehaviour, repetition = \ InputABatchDefinition().getBatchParameters(self.datasetID)[batchID] # eTool:AEvalTool selector, eTool = self.getParameters()[jobID] rIDs, rDescs = InputRecomMLDefinition.exportPairOfRecomIdsAndRecomDescrs( ) aDescDHont: AggregationDescription = InputAggrDefinition.exportADescDHondt( selector) pDescr: Portfolio1AggrDescription = Portfolio1AggrDescription( self.getBatchName() + jobID, rIDs, rDescs, aDescDHont) rIds: List[str] = pDescr.getRecommendersIDs() model: DataFrame = PModelHybrid( PModelDHondt(rIds), PModelDHondtPersonalisedStat(rIds), { PModelHybrid.ARG_MODE_SKIP: True, PModelHybrid.ARG_SKIP_CLICK_THRESHOLD: 3 }) simulator: Simulator = InputSimulatorDefinition().exportSimulatorML1M( batchID, divisionDatasetPercentualSize, uBehaviour, repetition) simulator.simulate([pDescr], [model], [eTool], [HistoryHierDF(pDescr.getPortfolioID())])
def test01(): print("Test 01") rIDs, rDescs = InputRecomRRDefinition.exportPairOfRecomIdsAndRecomDescrs() mGlobal: DataFrame = PModelDHondt(rIDs) mPerson: DataFrame = PModelDHondtPersonalisedStat(rIDs) mh: DataFrame = PModelHybrid(mGlobal, mPerson) mh.getModel(1)
def test01(): print("Test 01") userID:int = 1 clickedItemID:int = 101 # methods parametes portfolioModelData1:List[tuple] = [['metoda1',100], ['metoda2',80], ['metoda3',60]] portfolioModel1:DataFrame = pd.DataFrame(portfolioModelData1, columns=["methodID","votes"]) portfolioModel1.set_index("methodID", inplace=True) portfolioModel1.__class__ = PModelDHondt portfolioModel1.linearNormalizing() portfolioModelData2:List[tuple] = [['metoda1',0], ['metoda2',20], ['metoda3',40]] portfolioModel2:DataFrame = pd.DataFrame(portfolioModelData2, columns=["methodID","votes"]) portfolioModel2.set_index("methodID", inplace=True) portfolioModel2.__class__ = PModelDHondt portfolioModel2.linearNormalizing() pModel:DataFrame = PModelHybrid(portfolioModel1, portfolioModel2) #print(pModel.getModelGlobal()) #print(pModel.getModelPerson(userID)) print() print("////////////////////////////////////////") print(pModel.getModel(userID)) rItemIDsWithResponsibility:List[tuple] = [(clickedItemID, {'metoda1': 0.0, 'metoda2': 1.0, 'metoda3': 0.0})] eTool:AEvalTool = EToolHybrid({EvalToolDHondt.ARG_LEARNING_RATE_CLICKS:0.1, EvalToolDHondt.ARG_LEARNING_RATE_VIEWS:0.1/500, EvalToolDHondt.ARG_VERBOSE:False}) eTool.click(userID, rItemIDsWithResponsibility, clickedItemID, pModel, {}) print() print("////////////////////////////////////////") print(pModel.getModel(userID))