2013-07-02 114 views
0

我需要建立由功能分类,我有这样的数据的15M行:如何用java培训mahout?

{ 
    "app_entertainment" : 1, 
    "app_widgets" : 2, 
    "arcade" : 8, 
    "books_and_reference" : 2, 
    "comics" : 0, 
    "brain" : 20, 
    "business" : 0, 
    "cards" : 5, 
    "casual" : 1, 
    "communication" : 4, 
    "education" : 0, 
    "finance" : 1, 
    "game_wallpaper" : 0, 
    "game_widgets" : 0, 
    "health_fitness" : 0, 
    "libraries_demo" : 0, 
    "racing" : 1, 
    "lifestyle" : 1, 
    "media_video" : 0, 
    "medical" : 0, 
    "music_and_audio" : 7, 
    "news_magazines" : 2, 
    "personalization" : 1, 
    "photography" : 0, 
    "productivity" : 4, 
    "shopping" : 1, 
    "social" : 1, 
    "sports_apps" : 1, 
    "sports_games" : 7, 
    "tools" : 15, 
    "transportation" : 2, 
    "travel_and_local" : 8, 
    "weather" : 3, 
    "app_wallpaper" : 0, 
    "entertainment" : 0, 
    "health_and_fitness" : 0, 
    "libraries_and_demo" : 0, 
    "media_and_video" : 0, 
    "news_and_magazines" : 0, 
    "sports" : 0 
} 

还为每个数据集这样的我知道,如果它真的还是假的, 布尔是,如果这个数据集的用户点击广告或不。

我如何使用mahout来训练分类器,以及在训练完分类器后如何进行分类?

,我在网上找到

一切都非常抽象,而不是如何通过Java

+0

**你有什么** **? –

+0

我试图弄清楚如何训练它 – Dima

+1

你试图弄清楚如何训练它? *你在哪里遇到问题,是什么错误?* –

回答

0

做很多的例子有用于亨利马乌很少的材料在互联网上。我参考了Mahout源代码和Mahout in Action中的源代码。

您可以参考20newsgroup的源代码进行分类。

一个简单的例子,使用NavieBayes分类器。矢量是数据集。

public List<String> classifyCase(Vector vector) { 
     TreeMap<Double, String> resultMap = new TreeMap<Double, String>(); 
     Vector result = classifier.classifyFull(vector); 
     for (Vector.Element element: result) { 
      int categoryId = element.index(); 
      double score = element.get(); 
      resultMap.put(-score, labels.get(categoryId)); 
     } 

     return new ArrayList<String>(resultMap.values()); 
    } 
+2

它是我见过的最差的例子,我需要一个简单的代码示例如何训练和如何分类,这不好 – Dima

+0

为什么你认为这是最糟糕的案件?我想大多数人会参考这些例子来编写Java代码,因为在线的例子很少。 –

+0

bacause而不是做一些简单的例子,用4-5行训练它显示如何从文件目录做到这一点,我不需要这样做,它非常混乱,我知道如何从文件中读取,但他们塞满了它的例子使它不可读... – Dima