MCPcopy Create free account
hub / github.com/EdwardRaff/JSAT / getOnlineColumnStats

Method getOnlineColumnStats

JSAT/src/jsat/DataSet.java:275–309  ·  view source on GitHub ↗

Returns summary statistics computed in an online fashion for each numeric variable. This returns all summary statistics, but can be less numerically stable and uses more memory. NaNs / missing values will be ignored in the statistics for each column. @param useWeights true to return th

(boolean useWeights)

Source from the content-addressed store, hash-verified

273 * @return an array of summary statistics
274 */
275 public OnLineStatistics[] getOnlineColumnStats(boolean useWeights)
276 {
277 OnLineStatistics[] stats = new OnLineStatistics[numNumerVals];
278 for(int i = 0; i < stats.length; i++)
279 stats[i] = new OnLineStatistics();
280
281 double totalSoW = 0.0;
282
283 /**
284 * We got to skip nans, count their weight in each column so that we can still fast count zeros
285 */
286 double[] nanWeight = new double[numNumerVals];
287
288 for(Iterator<DataPoint> iter = getDataPointIterator(); iter.hasNext(); )
289 {
290 DataPoint dp = iter.next();
291
292 double weight = useWeights ? dp.getWeight() : 1;
293 totalSoW += weight;
294
295 Vec v = dp.getNumericalValues();
296 for (IndexValue iv : v)
297 if (Double.isNaN(iv.getValue()))//count it so we can fast count zeros right later
298 nanWeight[iv.getIndex()] += weight;
299 else
300 stats[iv.getIndex()].add(iv.getValue(), weight);
301 }
302
303 double expected = totalSoW;
304 //Add zero counts back in
305 for(int i = 0; i < stats.length; i++)
306 stats[i].add(0.0, expected-stats[i].getSumOfWeights()-nanWeight[i]);
307
308 return stats;
309 }
310
311 /**
312 * Returns an {@link OnLineStatistics } object that is built by observing

Callers 3

clusterMethod · 0.80
fitMethod · 0.80
fitMethod · 0.80

Calls 9

getDataPointIteratorMethod · 0.95
getWeightMethod · 0.95
getNumericalValuesMethod · 0.95
hasNextMethod · 0.45
nextMethod · 0.45
getValueMethod · 0.45
getIndexMethod · 0.45
addMethod · 0.45
getSumOfWeightsMethod · 0.45

Tested by

no test coverage detected