mahout-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lance Norskog <goks...@gmail.com>
Subject Re: [jira] Created: (MAHOUT-556) In the trainlogistic example the JSON model file which is created is missing commas and making it unusable with runLogistic.
Date Tue, 30 Nov 2010 02:43:19 GMT
I cannot help with the gson-1.3 problem. But about the gson-1.4
problem: which vector class is it trying use? All of the Vector
classes are required to have a no-arg constructor that makes a
zero-length vector.

Lance

On Mon, Nov 29, 2010 at 3:43 AM, Rohan Anil (JIRA) <jira@apache.org> wrote:
> In the trainlogistic example the JSON model file which is created is missing commas and
making it unusable with runLogistic.
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MAHOUT-556
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-556
>             Project: Mahout
>          Issue Type: Bug
>          Components: Classification
>    Affects Versions: 0.5
>         Environment: Ubuntu 10.10, Hadoop-0.20.2
>            Reporter: Rohan Anil
>            Priority: Minor
>
>
>
> Bug related to creation of the model when you run trainlogistic
>
>  Its creating the JSON model file  using the toJson function as illustrated below
> --------------------------------
> In,
>  LogisticModelParameters.java
> Function
> void saveTo(Writer out)
> {
> ...
> ..
> String savedForm = gson.toJson(this);
> ...
> }
> --------------------------------
>
> But this is not working as expected : -  String savedForm = gson.toJson(this);
>
>
> For my experiment using a different dataset -
>
> I get the following model file :
>
>
> {"targetVariable":"customer","typeMap":{"feature2":"n","feature3":"n",
>    "feature1":"n"},"numFeatures":334,"useBias":true,"maxTargetCategories":
>  2,"targetCategories":["0","1"],"lambda":1.0E-4,"learningRate":0.001,"lr":{
>    "mu0":0.001,"decayFactor":0.999,"stepOffset":10,"forgettingExponent":
>    -0.5,"perTermAnnealingOffset":20,"beta":{"rows":1,"cols":334,"data":[[
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,6.741887291022263E-4,0.0,0.0,-53.6076187622054,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.031178185395536E-5,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04383410529689268,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,
>          0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]]},
>    "numCategories":2,"step":260951,"updateSteps":{}"updateCounts":{}
>    "lambda":1.0E-4,"prior":{}"sealed":true,"gradient":{}}}
>
>
> If you notice the last part,
>
>  "numCategories":2,"step":260951,"updateSteps":{}"updateCounts":{}
>    "lambda":1.0E-4,"prior":{}"sealed":true,"gradient":{}}}
>
> are missing commas between updateSteps,updateCounts  and Sealed variables
>
> Investigating further,
> These come from the  AbstractOnlineLogisticRegression.java and the above variables are
not initialized hence the wrong output by the toJson function.
>
> This is a bug with  - > gson.toJson function,  I see that I am using gson-1.3 and
upgrading to 1.4  by modifying core/pom.xml fixes things, But runLogistic then complains
about
>
> 10/11/29 03:29:43 WARN conf.Configuration: DEPRECATED: hadoop-site.xml found in the classpath.
Usage of hadoop-site.xml is deprecated. Instead use core-site.xml, mapred-site.xml and hdfs-site.xml
to override properties of core-default.xml, mapred-default.xml and hdfs-default.xml respectively
> Exception in thread "main" java.lang.RuntimeException: No-args constructor for interface
org.apache.mahout.math.Vector does not exist. Register an InstanceCreator with Gson for this
type to fix this problem.
>        at com.google.gson.MappedObjectConstructor.constructWithNoArgConstructor(MappedObjectConstructor.java:64)
>        at com.google.gson.MappedObjectConstructor.construct(MappedObjectConstructor.java:53)
>        at com.google.gson.JsonObjectDeserializationVisitor.constructTarget(JsonObjectDeserializationVisitor.java:41)
>        at com.google.gson.JsonDeserializationVisitor.getTarget(JsonDeserializationVisitor.java:56)
>        at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
>        at com.google.gson.JsonDeserializationVisitor.visitChild(JsonDeserializationVisitor.java:107)
>        at com.google.gson.JsonDeserializationVisitor.visitChildAsObject(JsonDeserializationVisitor.java:95)
>        at com.google.gson.JsonObjectDeserializationVisitor.visitObjectField(JsonObjectDeserializationVisitor.java:62)
>        at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:156)
>        at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:123)
>        at com.google.gson.JsonDeserializationVisitor.visitChild(JsonDeserializationVisitor.java:107)
>        at com.google.gson.JsonDeserializationVisitor.visitChildAsObject(JsonDeserializationVisitor.java:95)
>        at com.google.gson.JsonObjectDeserializationVisitor.visitObjectField(JsonObjectDeserializationVisitor.java:62)
>        at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:156)
>        at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:123)
>        at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:73)
>        at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:51)
>        at com.google.gson.Gson.fromJson(Gson.java:495)
>        at com.google.gson.Gson.fromJson(Gson.java:444)
>        at com.google.gson.Gson.fromJson(Gson.java:419)
>        at org.apache.mahout.classifier.sgd.LogisticModelParameters.loadFrom(LogisticModelParameters.java:142)
>        at org.apache.mahout.classifier.sgd.LogisticModelParameters.loadFrom(LogisticModelParameters.java:155)
>        at org.apache.mahout.classifier.sgd.RunLogistic.main(RunLogistic.java:56)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:616)
>        at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
>        at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139)
>        at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:182)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:616)
>        at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
>
> Which I haven't had the time to investigate yet, Will post more results tomorrow.
>
>
>
>
>
>
>
>
>
>
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>



-- 
Lance Norskog
goksron@gmail.com

Mime
View raw message