機械学習用のライブラリ、ApacheMahoutを使用していてちょっと困ったのでメモ
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import java.io.*; import java.util.*; import org.apache.mahout.cf.taste.impl.model.file.FileDataModel; import org.apache.mahout.cf.taste.model.DataModel; import org.apache.mahout.cf.taste.recommender.*; import org.apache.mahout.cf.taste.impl.recommender.GenericItemBasedRecommender; import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity; import org.apache.mahout.cf.taste.similarity.ItemSimilarity; class test{  public static void main(String[] argv){  try{  DataModel model=new FileDataModel(new File("test.csv"));  ItemSimilarity similarity=new PearsonCorrelationSimilarity(model);  Recommender recommender= new GenericItemBasedRecommender(model,similarity);  List<RecommendedItem> recommendations=recommender.recommend(1,5);  for(RecommendedItem recommendation:recommendations){  long recommendCode=recommendation.getItemID();  System.out.println(recommendCode);  }  }catch(Exception e){}  } } | 
こんなかんじでアイテムベースのレコメンドを作成していたのですが、CSVファイルを読み込んだ際に
| 1 2 3 4 5 6 7 8 | java.util.NoSuchElementException  at com.google.common.base.AbstractIterator.next(AbstractIterator.java:75)  at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processLine(FileDataModel.java:384)  at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processFile(FileDataModel.java:340)  at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.buildModel(FileDataModel.java:239)  at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.reload(FileDataModel.java:208)  at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:194)  at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:149) | 
こんなエラーが出て進まない時がある。実行したのはLinux64Bit環境のjdk1.6。
同じものをwindows7のjdk1.6で動かしてもエラーが出ない。。。
読み込んだCSVは600万行程度
よくわからないのですがCSVの最後に改行を入れるとエラーなく動作。
わけわからん