You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by je...@apache.org on 2010/01/18 20:23:26 UTC
svn commit: r900519 - in /lucene/mahout/trunk:
core/src/main/java/org/apache/mahout/clustering/dirichlet/
core/src/main/java/org/apache/mahout/clustering/dirichlet/models/
core/src/main/java/org/apache/mahout/clustering/kmeans/
examples/src/main/java/o...
Author: jeastman
Date: Mon Jan 18 19:23:25 2010
New Revision: 900519
URL: http://svn.apache.org/viewvc?rev=900519&view=rev
Log:
MAHOUT-251
- DirichletDriver, DirichletJob - added command line arguments for modelPrototypeClass and prototypeSize
- Display2dASNDirichlet, DisplayASNDirichlet, DisplayASNOutputState, DisplayDirichlet, DisplayNDirichlet,
DisplayOutputState, DisplaySNDirichlet - added modelProtype initializations to model distributions
- math/SquareRootFunction - changed computation from abs() to sqrt() as the previous had crept in during recent
refactoring and was completely horking the Dirichlet std() calculations
- Cluster - changed std calculation to remove size=2 assumption
- NormalModel - changed computeParameters to use std.size() vs s1.size() for uniformity
- AsymmetricSampledNormalModel - changed comment in computeParameters
all tests run
Modified:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletDriver.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletJob.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/Display2dASNDirichlet.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNDirichlet.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNOutputState.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayDirichlet.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayNDirichlet.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayOutputState.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplaySNDirichlet.java
lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/SquareRootFunction.java
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletDriver.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletDriver.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletDriver.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletDriver.java Mon Jan 18 19:23:25 2010
@@ -88,11 +88,20 @@
abuilder.withName("modelClass").withMinimum(1).withMaximum(1).create())
.withDescription("The ModelDistribution class name.").create();
+ Option prototypeOpt = obuilder.withLongName("modelPrototypeClass").withRequired(true).withShortName("p").withArgument(
+ abuilder.withName("prototypeClass").withMinimum(1).withMaximum(1).create()).withDescription(
+ "The ModelDistribution prototype Vector class name.").create();
+
+ Option sizeOpt = obuilder.withLongName("prototypeSize").withRequired(true).withShortName("s").withArgument(
+ abuilder.withName("prototypeSize").withMinimum(1).withMaximum(1).create()).withDescription(
+ "The ModelDistribution prototype Vector size.").create();
+
Option numRedOpt = obuilder.withLongName("maxRed").withRequired(true).withShortName("r").withArgument(
abuilder.withName("maxRed").withMinimum(1).withMaximum(1).create()).withDescription("The number of reduce tasks.").create();
Group group = gbuilder.withName("Options").withOption(inputOpt).withOption(outputOpt).withOption(modelOpt).withOption(
- maxIterOpt).withOption(mOpt).withOption(topicsOpt).withOption(helpOpt).withOption(numRedOpt).create();
+ prototypeOpt).withOption(sizeOpt).withOption(maxIterOpt).withOption(mOpt).withOption(topicsOpt).withOption(helpOpt)
+ .withOption(numRedOpt).create();
try {
Parser parser = new Parser();
@@ -106,11 +115,13 @@
String input = cmdLine.getValue(inputOpt).toString();
String output = cmdLine.getValue(outputOpt).toString();
String modelFactory = cmdLine.getValue(modelOpt).toString();
+ String modelPrototype = cmdLine.getValue(prototypeOpt).toString();
+ int prototypeSize = Integer.parseInt(cmdLine.getValue(sizeOpt).toString());
int numReducers = Integer.parseInt(cmdLine.getValue(numRedOpt).toString());
int numModels = Integer.parseInt(cmdLine.getValue(topicsOpt).toString());
int maxIterations = Integer.parseInt(cmdLine.getValue(maxIterOpt).toString());
double alpha_0 = Double.parseDouble(cmdLine.getValue(mOpt).toString());
- runJob(input, output, modelFactory, numModels, maxIterations, alpha_0, numReducers);
+ runJob(input, output, modelFactory, modelPrototype, prototypeSize, numModels, maxIterations, alpha_0, numReducers);
} catch (OptionException e) {
log.error("Exception parsing command line: ", e);
CommandLineUtil.printHelp(group);
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletJob.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletJob.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletJob.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/DirichletJob.java Mon Jan 18 19:23:25 2010
@@ -44,8 +44,8 @@
private DirichletJob() {
}
- public static void main(String[] args) throws IOException,
- ClassNotFoundException, InstantiationException, IllegalAccessException, SecurityException, IllegalArgumentException, NoSuchMethodException, InvocationTargetException {
+ public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException,
+ IllegalAccessException, SecurityException, IllegalArgumentException, NoSuchMethodException, InvocationTargetException {
DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
ArgumentBuilder abuilder = new ArgumentBuilder();
GroupBuilder gbuilder = new GroupBuilder();
@@ -56,16 +56,25 @@
Option topicsOpt = DefaultOptionCreator.kOption().create();
Option helpOpt = DefaultOptionCreator.helpOption();
- Option mOpt = obuilder.withLongName("alpha").withRequired(true).withShortName("m").
- withArgument(abuilder.withName("alpha").withMinimum(1).withMaximum(1).create()).
- withDescription("The alpha0 value for the DirichletDistribution.").create();
-
- Option modelOpt = obuilder.withLongName("modelClass").withRequired(true).withShortName("d").
- withArgument(abuilder.withName("modelClass").withMinimum(1).withMaximum(1).create()).
- withDescription("The ModelDistribution class name.").create();
-
- Group group = gbuilder.withName("Options").withOption(inputOpt).withOption(outputOpt).withOption(modelOpt).
- withOption(maxIterOpt).withOption(mOpt).withOption(topicsOpt).withOption(helpOpt).create();
+ Option mOpt = obuilder.withLongName("alpha").withRequired(true).withShortName("m").withArgument(
+ abuilder.withName("alpha").withMinimum(1).withMaximum(1).create()).withDescription(
+ "The alpha0 value for the DirichletDistribution.").create();
+
+ Option modelOpt = obuilder.withLongName("modelClass").withRequired(true).withShortName("d").withArgument(
+ abuilder.withName("modelClass").withMinimum(1).withMaximum(1).create())
+ .withDescription("The ModelDistribution class name.").create();
+
+ Option prototypeOpt = obuilder.withLongName("modelPrototypeClass").withRequired(true).withShortName("p").withArgument(
+ abuilder.withName("prototypeClass").withMinimum(1).withMaximum(1).create()).withDescription(
+ "The ModelDistribution prototype Vector class name.").create();
+
+ Option sizeOpt = obuilder.withLongName("prototypeSize").withRequired(true).withShortName("s").withArgument(
+ abuilder.withName("prototypeSize").withMinimum(1).withMaximum(1).create()).withDescription(
+ "The ModelDistribution prototype Vector size.").create();
+
+ Group group = gbuilder.withName("Options").withOption(inputOpt).withOption(outputOpt).withOption(modelOpt).withOption(
+ prototypeOpt).withOption(sizeOpt).withOption(maxIterOpt).withOption(mOpt).withOption(topicsOpt).withOption(helpOpt)
+ .create();
try {
Parser parser = new Parser();
@@ -79,10 +88,12 @@
String input = cmdLine.getValue(inputOpt).toString();
String output = cmdLine.getValue(outputOpt).toString();
String modelFactory = cmdLine.getValue(modelOpt).toString();
+ String modelPrototype = cmdLine.getValue(prototypeOpt).toString();
+ int prototypeSize = Integer.parseInt(cmdLine.getValue(sizeOpt).toString());
int numModels = Integer.parseInt(cmdLine.getValue(topicsOpt).toString());
int maxIterations = Integer.parseInt(cmdLine.getValue(maxIterOpt).toString());
double alpha_0 = Double.parseDouble(cmdLine.getValue(mOpt).toString());
- runJob(input, output, modelFactory, numModels, maxIterations, alpha_0);
+ runJob(input, output, modelFactory, modelPrototype, prototypeSize, numModels, maxIterations, alpha_0);
} catch (OptionException e) {
log.error("Exception parsing command line: ", e);
CommandLineUtil.printHelp(group);
@@ -96,6 +107,8 @@
* @param input the directory pathname for input points
* @param output the directory pathname for output points
* @param modelFactory the ModelDistribution class name
+ * @param modelPrototype the Vector class name used by the modelFactory
+ * @param prototypeSize the size of the prototype vector
* @param numModels the number of Models
* @param maxIterations the maximum number of iterations
* @param alpha_0 the alpha0 value for the DirichletDistribution
@@ -104,9 +117,8 @@
* @throws IllegalArgumentException
* @throws SecurityException
*/
- public static void runJob(String input, String output, String modelFactory,
- int numModels, int maxIterations, double alpha_0)
- throws IOException, ClassNotFoundException, InstantiationException,
+ public static void runJob(String input, String output, String modelFactory, String modelPrototype, int prototypeSize,
+ int numModels, int maxIterations, double alpha_0) throws IOException, ClassNotFoundException, InstantiationException,
IllegalAccessException, SecurityException, IllegalArgumentException, NoSuchMethodException, InvocationTargetException {
// delete the output directory
Configuration conf = new JobConf(DirichletJob.class);
@@ -116,7 +128,6 @@
fs.delete(outPath, true);
}
fs.mkdirs(outPath);
- DirichletDriver.runJob(input, output, modelFactory, numModels, maxIterations,
- alpha_0, 1);
+ DirichletDriver.runJob(input, output, modelFactory, modelPrototype, prototypeSize, numModels, maxIterations, alpha_0, 1);
}
}
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/AsymmetricSampledNormalModel.java Mon Jan 18 19:23:25 2010
@@ -93,7 +93,7 @@
return;
}
mean = s1.divide(s0);
- // compute the two component stds
+ // compute the component stds
if (s0 > 1) {
stdDev = s2.times(s0).minus(s1.times(s1))
.assign(new SquareRootFunction()).divide(s0);
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/dirichlet/models/NormalModel.java Mon Jan 18 19:23:25 2010
@@ -100,7 +100,7 @@
if (s0 > 1) {
Vector std = s2.times(s0).minus(s1.times(s1)).assign(
new SquareRootFunction()).divide(s0);
- stdDev = std.zSum() / s1.size();
+ stdDev = std.zSum() / std.size();
} else {
stdDev = Double.MIN_VALUE;
}
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/clustering/kmeans/Cluster.java Mon Jan 18 19:23:25 2010
@@ -244,7 +244,7 @@
Vector stds = pointSquaredTotal.times(getNumPoints()).minus(
getPointTotal().times(getPointTotal()))
.assign(new SquareRootFunction()).divide(getNumPoints());
- return stds.zSum() / 2;
+ return stds.zSum() / stds.size();
}
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/Display2dASNDirichlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/Display2dASNDirichlet.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/Display2dASNDirichlet.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/Display2dASNDirichlet.java Mon Jan 18 19:23:25 2010
@@ -32,8 +32,8 @@
class Display2dASNDirichlet extends DisplayDirichlet {
Display2dASNDirichlet() {
initialize();
- this.setTitle("Dirichlet Process Clusters - 2-d Asymmetric Sampled Normal Distribution (>"
- + (int) (significance * 100) + "% of population)");
+ this.setTitle("Dirichlet Process Clusters - 2-d Asymmetric Sampled Normal Distribution (>" + (int) (significance * 100)
+ + "% of population)");
}
@Override
@@ -63,6 +63,6 @@
}
private static void generateResults() {
- DisplayDirichlet.generateResults(new AsymmetricSampledNormalDistribution());
+ DisplayDirichlet.generateResults(new AsymmetricSampledNormalDistribution(new VectorWritable(new DenseVector(2))));
}
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNDirichlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNDirichlet.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNDirichlet.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNDirichlet.java Mon Jan 18 19:23:25 2010
@@ -64,6 +64,6 @@
}
static void generateResults() {
- DisplayDirichlet.generateResults(new AsymmetricSampledNormalDistribution());
+ DisplayDirichlet.generateResults(new AsymmetricSampledNormalDistribution(new VectorWritable(new DenseVector(2))));
}
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNOutputState.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNOutputState.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNOutputState.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayASNOutputState.java Mon Jan 18 19:23:25 2010
@@ -97,8 +97,10 @@
conf
.set(DirichletDriver.MODEL_FACTORY_KEY,
"org.apache.mahout.clustering.dirichlet.models.AsymmetricSampledNormalDistribution");
- conf.set(DirichletDriver.NUM_CLUSTERS_KEY, Integer.toString(20));
- conf.set(DirichletDriver.ALPHA_0_KEY, Double.toString(1.0));
+ conf.set(DirichletDriver.MODEL_PROTOTYPE_KEY, "org.apache.mahout.math.DenseVector");
+ conf.set(DirichletDriver.PROTOTYPE_SIZE_KEY, "2");
+ conf.set(DirichletDriver.NUM_CLUSTERS_KEY, "20");
+ conf.set(DirichletDriver.ALPHA_0_KEY, "1.0");
File f = new File("output");
for (File g : f.listFiles()) {
conf.set(DirichletDriver.STATE_IN_KEY, g.getCanonicalPath());
@@ -115,7 +117,7 @@
}
static void generateResults() {
- DisplayDirichlet.generateResults(new NormalModelDistribution());
+ DisplayDirichlet.generateResults(new NormalModelDistribution(new VectorWritable(new DenseVector(2))));
}
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayDirichlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayDirichlet.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayDirichlet.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayDirichlet.java Mon Jan 18 19:23:25 2010
@@ -140,10 +140,10 @@
}
/**
- * Plot the points on the graphics context
+ * Draw a rectangle on the graphics context
* @param g2 a Graphics2D context
- * @param v a Vector of rectangle centers
- * @param dv a Vector of rectangle sizes
+ * @param v a Vector of rectangle center
+ * @param dv a Vector of rectangle dimensions
*/
public static void plotRectangle(Graphics2D g2, Vector v, Vector dv) {
double[] flip = { 1, -1 };
@@ -157,10 +157,10 @@
}
/**
- * Plot the points on the graphics context
+ * Draw an ellipse on the graphics context
* @param g2 a Graphics2D context
- * @param v a Vector of rectangle centers
- * @param dv a Vector of rectangle sizes
+ * @param v a Vector of ellipse center
+ * @param dv a Vector of ellipse dimensions
*/
public static void plotEllipse(Graphics2D g2, Vector v, Vector dv) {
double[] flip = { 1, -1 };
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayNDirichlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayNDirichlet.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayNDirichlet.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayNDirichlet.java Mon Jan 18 19:23:25 2010
@@ -63,6 +63,6 @@
}
static void generateResults() {
- DisplayDirichlet.generateResults(new NormalModelDistribution());
+ DisplayDirichlet.generateResults(new NormalModelDistribution(new VectorWritable(new DenseVector(2))));
}
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayOutputState.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayOutputState.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayOutputState.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplayOutputState.java Mon Jan 18 19:23:25 2010
@@ -92,8 +92,10 @@
JobConf conf = new JobConf(KMeansDriver.class);
conf.set(DirichletDriver.MODEL_FACTORY_KEY,
"org.apache.mahout.clustering.dirichlet.models.SampledNormalDistribution");
- conf.set(DirichletDriver.NUM_CLUSTERS_KEY, Integer.toString(20));
- conf.set(DirichletDriver.ALPHA_0_KEY, Double.toString(1.0));
+ conf.set(DirichletDriver.MODEL_PROTOTYPE_KEY, "org.apache.mahout.math.DenseVector");
+ conf.set(DirichletDriver.PROTOTYPE_SIZE_KEY, "2");
+ conf.set(DirichletDriver.NUM_CLUSTERS_KEY, "20");
+ conf.set(DirichletDriver.ALPHA_0_KEY, "1.0");
File f = new File("output");
for (File g : f.listFiles()) {
conf.set(DirichletDriver.STATE_IN_KEY, g.getCanonicalPath());
@@ -110,6 +112,6 @@
}
static void generateResults() {
- DisplayDirichlet.generateResults(new NormalModelDistribution());
+ DisplayDirichlet.generateResults(new NormalModelDistribution(new VectorWritable(new DenseVector(2))));
}
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplaySNDirichlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplaySNDirichlet.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplaySNDirichlet.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/clustering/dirichlet/DisplaySNDirichlet.java Mon Jan 18 19:23:25 2010
@@ -63,6 +63,6 @@
}
static void generateResults() {
- DisplayDirichlet.generateResults(new SampledNormalDistribution());
+ DisplayDirichlet.generateResults(new SampledNormalDistribution(new VectorWritable(new DenseVector(2))));
}
}
Modified: lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/SquareRootFunction.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/SquareRootFunction.java?rev=900519&r1=900518&r2=900519&view=diff
==============================================================================
--- lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/SquareRootFunction.java (original)
+++ lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/SquareRootFunction.java Mon Jan 18 19:23:25 2010
@@ -21,7 +21,7 @@
@Override
public double apply(double arg1) {
- return Math.abs(arg1);
+ return Math.sqrt(arg1);
}
}