def __init__(self): self.persistModels = { self.KNN_MODEL_KEY: KNNmodel(), self.MP_MODEL_KEY: MostPopularModel(), self.CL_MODEL_KEY: ClusteringModel(), self.CF_MODEL_KEY: CFmodel() } self.transientModels = {self.SI_MODEL_KEY: {}}
def __init__(self): # offline models saved in a dictionary, key: static variable defined above, value: instance of class as attribute self.myModels = { self.MP_MODEL_KEY: MostPopularModel(), self.RP_MODEL_KEY: RecentPopularModel(), self.KNN_MODEL_KEY: KNNmodel(), self.CL_MODEL_KEY: ClusteringModel(), self.CF_MODEL_KEY: CFmodel() }
def __init__(self): self.persistModels = { self.KNN_MODEL_KEY: KNNmodel(), self.MP_MODEL_KEY: MostPopularModel(), self.CL_MODEL_KEY: ClusteringModel(), self.CF_MODEL_KEY: CFmodel() } # similarity model is used for each user self.transientModels = {self.SI_MODEL_KEY: {}}
def __init__(self): self.persistModels = { self.KNN_MODEL_KEY: KNNmodel(), self.MP_MODEL_KEY: MostPopularModel(), self.CL_MODEL_KEY: ClusteringModel(), self.CF_MODEL_KEY: CFmodel() } # similarity model is used for each user # online recommendation, trained by online learner self.transientModels = {self.SI_MODEL_KEY: {}}
else: self.recs = [] def predict(self, itemFeature): # X should be item's category feature, only single record # return the similar items itemFeature = itemFeature.values.reshape(1, -1) center, indices = self.clusteringModel.predict(itemFeature) return indices[0] def provideRec(self): return self.recs if __name__ == "__main__": from DatabaseInterface import DatabaseInterface from Models.ClusteringModel import ClusteringModel db = DatabaseInterface("../DATA") db.startEngine() itemFeatureTable = db.extract( DatabaseInterface.ITEM_FEATURE_KEY).loc[:, "unknown":] model = ClusteringModel() model.train(itemFeatureTable) modelSI = SimilarItemModel(model) modelSI.train(itemFeatureTable.loc[1], 4) print(modelSI.provideRec()) modelSI.train(itemFeatureTable.loc[1], 2) print(modelSI.provideRec())
else: self.recs = [] def predict(self, itemFeature): # X should be item's category feature, only single record # return the similar items itemFeature = itemFeature.values.reshape(1, -1) center, indices = self.clusteringModel.predict(itemFeature) return indices[0] def provideRec(self): return self.recs if __name__ == "__main__": from DatabaseInterface import DatabaseInterface from Models.ClusteringModel import ClusteringModel db = DatabaseInterface("../DATA") db.startEngine() itemFeatureTable = db.extract(DatabaseInterface.ITEM_FEATURE_KEY).loc[:, "unknown":] model = ClusteringModel() model.train(itemFeatureTable) modelSI = SimilarItemModel(model) modelSI.train(itemFeatureTable.loc[1], 4) print modelSI.provideRec() modelSI.train(itemFeatureTable.loc[1], 2) print modelSI.provideRec()