Created
September 20, 2017 12:49
-
-
Save jacekwasilewski/1f63e7703c910f0ef984840cc51eb50b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FastUserIndex<Long> userIndex = SimpleFastUserIndex.load(userPath, lp); | |
FastItemIndex<Long> itemIndex = SimpleFastItemIndex.load(itemPath, lp); | |
FastPreferenceData<Long, Long> trainData = SimpleFastPreferenceData.load(trainDataPath, lp, lp, ddp, userIndex, itemIndex); | |
FastPreferenceData<Long, Long> testData = SimpleFastPreferenceData.load(testDataPath, lp, lp, ddp, userIndex, itemIndex); | |
FeatureData<Long, String, Double> featureData = SimpleFeatureData.load(featurePath, lp, sp, v -> 1.0); | |
int k = 20; | |
int numIter = 20; | |
double lambdaD = 0.5; | |
ItemDistanceModel<Long> dist = new CachedItemDistanceModel<>(new CosineFeatureItemDistanceModel<>(featureData), itemIndex); | |
Factorization<Long, Long> factorization = new DivRankALSFactorizer<Long, Long>(lambdaD, dist, numIter).factorize(k, trainData); | |
Recommender<Long, Long> recommender = new MFRecommender<>(userIndex, itemIndex, factorization); | |
Set<Long> targetUsers = testData.getUsersWithPreferences().collect(Collectors.toSet()); | |
RecommendationFormat<Long, Long> format = new SimpleRecommendationFormat<>(lp, lp); | |
Function<Long, IntPredicate> filter = FastFilters.notInTrain(trainData); | |
int maxLength = 20; | |
RecommenderRunner<Long, Long> runner = new FastFilterRecommenderRunner<>(userIndex, itemIndex, targetUsers, format, filter, maxLength); | |
System.out.println("Running"); | |
runner.run(recommender, "divrankals"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment