public static PredictionStat clusterPrecision()

in src/main/java/com/twitter/sbf/core/MHAlgorithm.java [694:726]


  public static PredictionStat clusterPrecision(
      Graph graph,
      SparseBinaryMatrix matrix,
      int clusterId,
      int numSamples,
      RandomAdaptor rng) {
    PredictionStat ret = new PredictionStat();

    int[] colAsArray = matrix.getColumnAsArray(clusterId);
    if (colAsArray.length > 0) {
      for (int i = 0; i < numSamples;) {
        int v1 = colAsArray[rng.nextInt(colAsArray.length)];
        int v2 = colAsArray[rng.nextInt(colAsArray.length)];
        if (v1 == v2) {
          continue;
        }
        i++;
        ret.incPredictedPositive();
        float actualWeight = graph.getWeightOfEdge(v1, v2);
        if (actualWeight > 0) {
          ret.incWeightPredictedPositive(actualWeight);
          ret.incTruePositive();
          ret.incWeightTruePositive(actualWeight);
        } else {
          double add = (graph.getWeightedOutDegree(v1) + graph.getWeightedOutDegree(v2))
              / (graph.getDegree(v1) + graph.getDegree(v2));
          ret.incWeightPredictedPositive(add);
        }
      }
    }

    return ret;
  }