Author: tdunning
Date: Tue Jan 25 00:30:41 2011
New Revision: 1063081
URL: http://svn.apache.org/viewvc?rev=1063081&view=rev
Log:
MAHOUT-589 - Removed LUDecomposition and Algebra. Cleaned up some commented
code.
MAHOUT-589 - Removed LUDecomposition and Algebra. Cleaned up some commented
code.
Removed:
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/Algebra.java
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/LUDecomposition.java
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/LUDecompositionQuick.java
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/QRDecomposition.java
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/bayes/BayesThetaNormalizerReducer.java
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesFeatureMapper.java
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesWeightSummerReducer.java
mahout/trunk/core/src/main/java/org/apache/mahout/df/tools/FrequenciesJob.java
mahout/trunk/examples/src/test/java/org/apache/mahout/classifier/sgd/TrainLogisticTest.java
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/EigenvalueDecomposition.java
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/Property.java
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/bayes/BayesThetaNormalizerReducer.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/bayes/BayesThetaNormalizerReducer.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/bayes/BayesThetaNormalizerReducer.java
(original)
+++
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/bayes/BayesThetaNormalizerReducer.java
Tue Jan 25 00:30:41 2011
@@ -56,8 +56,7 @@ public class BayesThetaNormalizerReducer
// Key is label,word, value is the number of times we've seen this label
// word per local node. Output is the same
- // String token = key.toString();
-
+
double weightSumPerLabel = 0.0;
while (values.hasNext()) {
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesFeatureMapper.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesFeatureMapper.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesFeatureMapper.java
(original)
+++
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesFeatureMapper.java
Tue Jan 25 00:30:41 2011
@@ -73,7 +73,6 @@ public class BayesFeatureMapper extends
Text value,
final OutputCollector<StringTuple,DoubleWritable> output,
Reporter reporter) throws IOException {
- // String line = value.toString();
final String label = key.toString();
String[] tokens = SPACE_PATTERN.split(value.toString());
OpenObjectIntHashMap<String> wordList = new
OpenObjectIntHashMap<String>(tokens.length * gramSize);
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesWeightSummerReducer.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesWeightSummerReducer.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesWeightSummerReducer.java
(original)
+++
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/bayes/mapreduce/common/BayesWeightSummerReducer.java
Tue Jan 25 00:30:41 2011
@@ -59,7 +59,6 @@ public class BayesWeightSummerReducer ex
sum += values.next().get();
}
reporter.setStatus("Bayes Weight Summer Reducer: " + key + " => " + sum);
- // char firstChar = key.toString().charAt(0);
if (useHbase) {
if (key.stringAt(0).equals(BayesConstants.FEATURE_SUM)) { // sum of
weight
// for all
Modified:
mahout/trunk/core/src/main/java/org/apache/mahout/df/tools/FrequenciesJob.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/df/tools/FrequenciesJob.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/core/src/main/java/org/apache/mahout/df/tools/FrequenciesJob.java
(original)
+++
mahout/trunk/core/src/main/java/org/apache/mahout/df/tools/FrequenciesJob.java
Tue Jan 25 00:30:41 2011
@@ -190,7 +190,6 @@ public class FrequenciesJob {
*/
protected void setup(Dataset dataset) {
converter = new DataConverter(dataset);
- //log.info("labels: {}", Arrays.toString(dataset.labels()));
}
@Override
Modified:
mahout/trunk/examples/src/test/java/org/apache/mahout/classifier/sgd/TrainLogisticTest.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/examples/src/test/java/org/apache/mahout/classifier/sgd/TrainLogisticTest.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/examples/src/test/java/org/apache/mahout/classifier/sgd/TrainLogisticTest.java
(original)
+++
mahout/trunk/examples/src/test/java/org/apache/mahout/classifier/sgd/TrainLogisticTest.java
Tue Jan 25 00:30:41 2011
@@ -21,7 +21,6 @@ import com.google.common.base.CharMatche
import com.google.common.base.Charsets;
import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import com.google.common.io.Resources;
import org.apache.mahout.classifier.AbstractVectorClassifier;
Modified:
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/EigenvalueDecomposition.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/EigenvalueDecomposition.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/EigenvalueDecomposition.java
(original)
+++
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/EigenvalueDecomposition.java
Tue Jan 25 00:30:41 2011
@@ -15,6 +15,7 @@ import org.apache.mahout.math.matrix.imp
import java.io.Serializable;
+import static org.apache.mahout.math.Algebra.hypot;
import static org.apache.mahout.math.matrix.linalg.Property.*;
/** @deprecated until unit tests are in place. Until this time, this
class/interface is unsupported. */
@@ -774,7 +775,7 @@ public final class EigenvalueDecompositi
double g = d[l];
double p = (d[l + 1] - g) / (2.0 * e[l]);
- double r = Algebra.hypot(p, 1.0);
+ double r = hypot(p, 1.0);
if (p < 0) {
r = -r;
}
@@ -802,7 +803,7 @@ public final class EigenvalueDecompositi
s2 = s;
g = c * e[i];
h = c * p;
- r = Algebra.hypot(p, e[i]);
+ r = hypot(p, e[i]);
e[i + 1] = s * r;
s = e[i] / r;
c = p / r;
Modified:
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/Property.java
URL:
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/Property.java?rev=1063081&r1=1063080&r2=1063081&view=diff
==============================================================================
---
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/Property.java
(original)
+++
mahout/trunk/math/src/main/java/org/apache/mahout/math/matrix/linalg/Property.java
Tue Jan 25 00:30:41 2011
@@ -366,11 +366,6 @@ public final class Property {
return true;
}
- /** A matrix <tt>A</tt> is <i>singular</i> if it has no inverse, that is,
iff <tt>det(A)==0</tt>. */
- public boolean isSingular(DoubleMatrix2D a) {
- return Math.abs(Algebra.det(a)) < tolerance();
- }
-
/**
* A square matrix <tt>A</tt> is <i>skew-symmetric</i> if <tt>A =
-transpose(A)</tt>, that is <tt>A[i,j] ==
* -A[j,i]</tt>.
@@ -652,242 +647,6 @@ public final class Property {
}
/**
- * Returns summary information about the given matrix <tt>A</tt>. That is a
String with (propertyName, propertyValue)
- * pairs. Useful for debugging or to quickly get the rough picture of a
matrix. For example,
- * <pre>
- * density : 0.9
- * isDiagonal : false
- * isDiagonallyDominantByRow : false
- * isDiagonallyDominantByColumn : false
- * isIdentity : false
- * isLowerBidiagonal : false
- * isLowerTriangular : false
- * isNonNegative : true
- * isOrthogonal : Illegal operation or error: Matrix must be
square.
- * isPositive : true
- * isSingular : Illegal operation or error: Matrix must be
square.
- * isSkewSymmetric : Illegal operation or error: Matrix must be
square.
- * isSquare : false
- * isStrictlyLowerTriangular : false
- * isStrictlyTriangular : false
- * isStrictlyUpperTriangular : false
- * isSymmetric : Illegal operation or error: Matrix must be
square.
- * isTriangular : false
- * isTridiagonal : false
- * isUnitTriangular : false
- * isUpperBidiagonal : false
- * isUpperTriangular : false
- * isZero : false
- * lowerBandwidth : Illegal operation or error: Matrix must be
square.
- * semiBandwidth : Illegal operation or error: Matrix must be
square.
- * upperBandwidth : Illegal operation or error: Matrix must be
square.
- * </pre>
- */
- public String toString(DoubleMatrix2D a) {
- Map<String, String> messages = new TreeMap<String, String>();
-
- // determine properties
- String name = "density";
- String unknown = "Illegal operation or error: ";
- try {
- messages.put(name, String.valueOf(density(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- // determine properties
- name = "isDiagonal";
- try {
- messages.put(name, String.valueOf(isDiagonal(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- // determine properties
- name = "isDiagonallyDominantByRow";
- try {
- messages.put(name, String.valueOf(isDiagonallyDominantByRow(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- // determine properties
- name = "isDiagonallyDominantByColumn";
- try {
- messages.put(name, String.valueOf(isDiagonallyDominantByColumn(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isIdentity";
- try {
- messages.put(name, String.valueOf(isIdentity(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isLowerBidiagonal";
- try {
- messages.put(name, String.valueOf(isLowerBidiagonal(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isLowerTriangular";
- try {
- messages.put(name, String.valueOf(isLowerTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isNonNegative";
- try {
- messages.put(name, String.valueOf(isNonNegative(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isOrthogonal";
- try {
- messages.put(name, String.valueOf(isOrthogonal(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isPositive";
- try {
- messages.put(name, String.valueOf(isPositive(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isSingular";
- try {
- messages.put(name, String.valueOf(isSingular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isSkewSymmetric";
- try {
- messages.put(name, String.valueOf(isSkewSymmetric(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isSquare";
- try {
- messages.put(name, String.valueOf(isSquare(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isStrictlyLowerTriangular";
- try {
- messages.put(name, String.valueOf(isStrictlyLowerTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isStrictlyTriangular";
- try {
- messages.put(name, String.valueOf(isStrictlyTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isStrictlyUpperTriangular";
- try {
- messages.put(name, String.valueOf(isStrictlyUpperTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isSymmetric";
- try {
- messages.put(name, String.valueOf(isSymmetric(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isTriangular";
- try {
- messages.put(name, String.valueOf(isTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isTridiagonal";
- try {
- messages.put(name, String.valueOf(isTridiagonal(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isUnitTriangular";
- try {
- messages.put(name, String.valueOf(isUnitTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isUpperBidiagonal";
- try {
- messages.put(name, String.valueOf(isUpperBidiagonal(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isUpperTriangular";
- try {
- messages.put(name, String.valueOf(isUpperTriangular(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "isZero";
- try {
- messages.put(name, String.valueOf(isZero(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "lowerBandwidth";
- try {
- messages.put(name, String.valueOf(lowerBandwidth(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "semiBandwidth";
- try {
- messages.put(name, String.valueOf(semiBandwidth(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- name = "upperBandwidth";
- try {
- messages.put(name, String.valueOf(upperBandwidth(a)));
- } catch (IllegalArgumentException exc) {
- messages.put(name, unknown + exc.getMessage());
- }
-
- // determine padding for nice formatting
- int maxLength = 0;
- for (String key : messages.keySet()) {
- maxLength = Math.max(key.length(), maxLength);
- }
- String format = String.format(Locale.ENGLISH, "\\%%ds: \\%s\n", maxLength);
-
- Formatter r = new Formatter();
- for (Map.Entry<String, String> entry : messages.entrySet()) {
- r.format(format, maxLength, entry.getKey(), entry.getValue());
- }
- return r.toString();
- }
-
- /**
* The <i>upper bandwidth</i> of a square matrix <tt>A</tt> is the maximum
<tt>j-i</tt> for which <tt>A[i,j]</tt> is
* nonzero and <tt>j > i</tt>. A <i>banded</i> matrix has a "band" about
the diagonal. Diagonal, tridiagonal and
* triangular matrices are special cases.