List of usage examples for org.apache.mahout.math Vector isDense
boolean isDense();
From source file:com.cloudera.science.ml.kmeans.parallel.CentersIndex.java
License:Open Source License
private BitSet index(Vector vec) { double[] prod = new double[projectionBits]; if (vec.isDense()) { for (int i = 0; i < vec.size(); i++) { double v = vec.getQuick(i); if (v != 0.0) { for (int j = 0; j < projectionBits; j++) { prod[j] += v * projection[i + j * dimensions]; }//from w w w.java 2 s . c o m } } } else { Iterator<Vector.Element> iter = vec.iterateNonZero(); while (iter.hasNext()) { Vector.Element e = iter.next(); for (int j = 0; j < projectionBits; j++) { prod[j] = e.get() * projection[e.index() + j * dimensions]; } } } BitSet bitset = new BitSet(projectionBits); for (int i = 0; i < projectionBits; i++) { if (prod[i] > 0.0) { bitset.set(i); } } return bitset; }
From source file:com.cloudera.science.ml.kmeans.parallel.CentersIndex.java
License:Open Source License
private static double dot(Vector vec, double[] p) { double dot = 0; if (vec.isDense()) { for (int i = 0; i < p.length; i++) { dot += vec.getQuick(i) * p[i]; }/*from w w w .jav a2 s . com*/ } else { Iterator<Vector.Element> iter = vec.iterateNonZero(); while (iter.hasNext()) { Vector.Element e = iter.next(); dot += e.get() * p[e.index()]; } } return dot; }
From source file:com.ikanow.infinit.e.processing.custom.utils.HadoopUtils.java
License:Open Source License
private static BasicDBList listFromMahoutVector(Vector vec, String prefix, BasicDBObject element) { if (vec instanceof NamedVector) { element.put(prefix + "Name", ((NamedVector) vec).getName()); }/*from www .j a v a2 s .c o m*/ BasicDBList dbl2 = new BasicDBList(); if (vec.isDense()) { int nSize = vec.size(); dbl2.ensureCapacity(nSize); for (int i = 0; i < nSize; ++i) { dbl2.add(vec.getQuick(i)); } } else { // sparse, write as a set in the format [{int:double}] Iterator<org.apache.mahout.math.Vector.Element> elIt = vec.iterateNonZero(); while (elIt.hasNext()) { BasicDBObject el2 = new BasicDBObject(); org.apache.mahout.math.Vector.Element el = elIt.next(); el2.put("k", el.index()); el2.put("v", el.get()); dbl2.add(el2); } } return dbl2; }
From source file:edu.rosehulman.mahout.math.VectorWritable.java
License:Apache License
public static void writeVector(DataOutput out, Vector vector, boolean laxPrecision) throws IOException { boolean dense = vector.isDense(); boolean sequential = vector.isSequentialAccess(); boolean named = vector instanceof NamedVector; out.writeByte((dense ? FLAG_DENSE : 0) | (sequential ? FLAG_SEQUENTIAL : 0) | (named ? FLAG_NAMED : 0) | (laxPrecision ? FLAG_LAX_PRECISION : 0)); Varint.writeUnsignedVarInt(vector.size(), out); if (dense) {//w w w .jav a 2 s .co m for (Vector.Element element : vector.all()) { if (laxPrecision) { out.writeFloat((float) element.get()); } else { out.writeDouble(element.get()); } } } else { Varint.writeUnsignedVarInt(vector.getNumNonZeroElements(), out); Iterator<Element> iter = vector.nonZeroes().iterator(); if (sequential) { int lastIndex = 0; while (iter.hasNext()) { Vector.Element element = iter.next(); if (element.get() == 0) { continue; } int thisIndex = element.index(); // Delta-code indices: Varint.writeUnsignedVarInt(thisIndex - lastIndex, out); lastIndex = thisIndex; if (laxPrecision) { out.writeFloat((float) element.get()); } else { out.writeDouble(element.get()); } } } else { while (iter.hasNext()) { Vector.Element element = iter.next(); if (element.get() == 0) { // TODO(robinanil): Fix the damn iterator for the zero element. continue; } Varint.writeUnsignedVarInt(element.index(), out); if (laxPrecision) { out.writeFloat((float) element.get()); } else { out.writeDouble(element.get()); } } } } if (named) { String name = ((NamedVector) vector).getName(); out.writeUTF(name == null ? "" : name); } }