List of usage examples for org.apache.mahout.cf.taste.impl.common FastIDSet clear
public void clear()
From source file:com.predictionmarketing.itemrecommend.SUSSGDFactorizer.java
License:Apache License
@Override public Factorization factorize() throws TasteException { prepareTraining();/*from w w w. ja v a2s . c o m*/ double currentLearningRate = learningRate; HashSet<Long> DMusers = new HashSet<Long>(); LongPrimitiveIterator ud = dataModel.getUserIDs(); while (ud.hasNext()) { DMusers.add(ud.nextLong()); } for (int it = 0; it < numIterations; it++) { FastIDSet friends_idset = new FastIDSet(); double Suvpv_array[]; // System.out.println("imawa no."+it); for (long userID : DMusers) { //useriteration if (SocialIDset.contains(userID)) { friends_idset = SocialdataModel.getItemIDsFromUser(userID); } Suvpv_array = generateSuvpv(userID, friends_idset); double len = vectorlength(Suvpv_array); assert len < 1.01; assert len > 0.99; int friends_amount = (testuser == userID) ? friends_idset.size() - 1 : friends_idset.size(); //testuser friends?-1 () double mother = (double) friends_amount / 250 + 1; double alpha = (double) 1 - (1 / mother); // double alpha=0.1;//(double)1-(1/mother); // social degree // double alpha=0; assert alpha < 0.5; updateParameters(userID, currentLearningRate, Suvpv_array, alpha); friends_idset.clear(); } currentLearningRate *= learningRateDecay; } //end learning iteration //System.out.println("Total records"+Total_records/10); //aggregate writer feature produce a new user-write vectors replace itemVectors double[][] writerVectors = new double[WriterdataModel.getNumUsers()][numFeatures]; LongPrimitiveIterator it = WriterdataModel.getUserIDs(); while (it.hasNext()) { long userid = it.nextLong(); int userIndex = userIndex(userid); for (int i = 0; i < numFeatures; i++) { writerVectors[userIndex][i] = 0.0; } int post_count = 0; for (long item : WriterdataModel.getItemIDsFromUser(userid)) { int itemIndex = itemIndex(item); if (itemIndex < dataModel.getNumItems()) { post_count++; for (int i = 0; i < numFeatures; i++) { writerVectors[userIndex][i] += itemVectors[itemIndex][i]; } } } if (post_count > 0) { //unit vector writerVectors[userIndex] = unitvectorize(writerVectors[userIndex]); writerVectors[userIndex][USER_BIAS_INDEX] /= post_count; writerVectors[userIndex][ITEM_BIAS_INDEX] /= post_count; } } int n = (int) (Math.random() * dataModel.getNumUsers()); //System.out.println("writer"+n+" user bias:"+writerVectors[n][USER_BIAS_INDEX]); // System.out.println("writer"+n+"item bias:"+writerVectors[n][ITEM_BIAS_INDEX]); assert writerVectors[n][USER_BIAS_INDEX] > 0.99; assert writerVectors[n][USER_BIAS_INDEX] < 1.01; return createFactorization(userVectors, writerVectors);//(userVectors, itemVectors); }
From source file:net.myrrix.common.collection.FastIDSetTest.java
License:Apache License
@Test public void testClear() { FastIDSet set = new FastIDSet(); set.add(1);/*from w w w. j a va 2 s. c om*/ set.clear(); assertEquals(0, set.size()); assertTrue(set.isEmpty()); assertFalse(set.contains(1)); }