Would it be possible to run this under a debugger? Then you could show
the values at the NN and Memory slope methods in the above stack
trace.

Lance


On 11/21/10, Marcin Sieniek <[email protected]> wrote:
> Hi there,
>
> I've got a MySQL table:
> pub_prefeences
> user_id INTEGER NOT NULL (primary)
> pub_id INTEGER NOT NULL (primary)
> rate FLOAT NOT NULL
> rtime DATETUME NOT NULL
> is_favorite BIT(1) NOT NULL
>
> and some simple data in it:
> user_id   pub_id   rate
> 3         11       2
> 3         12       2
> 3         15       3
> 2         15       5
> 2         13       5
> 10        13       5
> 10        23       5
>
> I call Mahout in the following way:
> Integer neighborhoodSize = 1;
>       
> MysqlConnectionPoolDataSource dataSource
>   = new MysqlConnectionPoolDataSource();
> dataSource.setUser("root");
> dataSource.setPassword("haslo");
> dataSource.setServerName("localhost");
> dataSource.setPort(3306);
> dataSource.setDatabaseName("qadro");
> MySQLJDBCDataModel dataModel = new MySQLJDBCDataModel(dataSource,
> "pub_preferences", "user_id", "pub_id", "rate", "rtime");
>
> UserSimilarity userSimilarity
>   = new PearsonCorrelationSimilarity(dataModel);
> userSimilarity.setPreferenceInferrer(new
> AveragingPreferenceInferrer(dataModel));
> UserNeighborhood neighborhood
>   = new NearestNUserNeighborhood(neighborhoodSize,
> userSimilarity, dataModel);
> Recommender recommender = new GenericUserBasedRecommender(dataModel,
> neighborhood, userSimilarity)
>       
> List<RecommendedItem> recommendations = recommender.recommend(forUserId, 1);
>
> dataModel.getNumUsers(), or dataModel.getNumItems() work as expected, so
> does
> dataModel.getPreferencesFromUser().
>
> Unfortunately when asking for recommendation I get:
>
> java.lang.NullPointerException
>       at com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2843)
>       at com.mysql.jdbc.ResultSetImpl.getLong(ResultSetImpl.java:2830)
>       at org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel.
> getLongColumn(AbstractJDBCDataModel.java:721)
>       at org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
> $ResultSetIDIterator.nextLong(AbstractJDBCDataModel.java:799)
>       at org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
> $ResultSetIDIterator.next(AbstractJDBCDataModel.java:788)
>       at org.apache.mahout.cf.taste.impl.model.jdbc.AbstractJDBCDataModel
> $ResultSetIDIterator.next(AbstractJDBCDataModel.java:742)
>       at org.apache.mahout.cf.taste.impl.recommender.TopItems
> .getTopUsers(TopItems.java:99)
>       at org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood
> .getUserNeighborhood(NearestNUserNeighborhood.java:94)
>         at org.apache.mahout.cf.taste.impl.recommender
> .GenericUserBasedRecommender.recommend(GenericUserBasedRecommender.java:80)
>       at org.apache.mahout.cf.taste.impl.recommender.AbstractRecommender
> .recommend(AbstractRecommender.java:64)
>       at pl.edu.agh.mobilne.RecommendationEngine
> .recommend(RecommendationEngine.java:55)
>
> Someone previously had this issue but it wasn't resolved:
>
> http://web.archiveorange.com/archive/v/wfftaSgxJSE3hnw46y40
>
> Can anyone help? What am I doing wrong? :/
> Is my data table sufficient?
> Is the neighborhood size sufficient?
>
> Thanks,
> Marcin
>
> ------------------------------------------------------
> Samochody na każdą miarę
> http://linkint.pl/f2855
>
>


-- 
Lance Norskog
[email protected]

Reply via email to