Example usage for org.apache.mahout.cf.taste.impl.common FastIDSet clear

List of usage examples for org.apache.mahout.cf.taste.impl.common FastIDSet clear

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.impl.common FastIDSet clear.

Prototype

public void clear() 

Source Link

Usage

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));
}