zoukankan      html  css  js  c++  java
  • Apache Mahout学习笔记(一)

    本文是学习(http://www.ibm.com/developerworks/cn/java/j-mahout/)的笔记。

    监管和 无监管学习

    监管学习的任务是学习带标签的训练数据的功能,以便预测任何有效输入的值。监管学习的常见例子包括将电子邮件消息分类为垃圾邮件,根据类别标记网 页,以及识别手写输入。创建监管学习程序需要使用许多算法,最常见的包括神经网络、Support Vector Machines (SVMs) 和 Naive Bayes 分类程序。

    无监管学习的任务是发挥数据的意义,而不管数据的正确与否。它最常应用于将类似的输入集成到逻辑分组中。它还可以用于减少数据集中的维度数据,以便只专注于最有用的属性,或者用于探明趋势。无监管学习的常见方法包括 k-Means、分层集群和自组织地图。

    常用的三个领域

    • 推荐
    • 集群
    • 分类

    软件安装   

       JDK 1.6 或更高版本
        Ant 1.7 或更高版本
        如果要编译 Mahout 源代码,还需要安装 Maven

    建立一个推荐引擎

    Mahout 目前提供了一些工具,可用于通过 Taste 库建立一个推荐引擎 —针对 CF 的快速且灵活的引擎。Taste 支持基于用户和基于项目的推荐,并且提供了许多推荐选项,以及用于自定义的界面。Taste 包含 5 个主要组件,用于操作 用户、项目和 首选项:

    1.     DataModel:用于存储 用户、项目和 首选项
    2.     UserSimilarity:用于定义两个用户之间的相似度的界面
    3.     ItemSimilarity:用于定义两个项目之间的相似度的界面
    4.     Recommender:用于提供推荐的界面
    5.     UserNeighborhood:用于计算相似用户邻近度的界面,其结果随时可由 Recommender使用

    借助这些组件以及它们的实现,开发人员可以构建复杂的推荐系统,提供基于实时或者离线的推荐。基于实时的推荐经常只能处理数千用户,而离线推荐具有更好的适用性。

    使用 Mahout 实现集群

    Mahout 支持一些集群算法实现(都是使用 Map-Reduce 编写的),它们都有一组各自的目标和标准:

    • Canopy:一种快速集群算法,通常用于为其他集群算法创建初始种子。
    • k-Means(以及 模糊 k-Means):根据项目与之前迭代的质心(或中心)之间的距离将项目添加到 k 集群中。
    • Mean-Shift:无需任何关于集群数量的 推理知识的算法,它可以生成任意形状的集群。
    • Dirichlet:借助基于多种概率模型的集群,它不需要提前执行特定的集群视图。
    http://www.cnblogs.com/ddblog/
  • 相关阅读:
    失败的项目,反思
    没人教的项目管理方法之(明白该干什么) 二、项目章程如何写(下)
    没人教的项目管理方法之(明白该干什么) 二、项目章程如何写(上)
    转载:WireShark 过滤语法
    转载:各个Linux版本的本地root密码破解方法
    w7升级旗舰版
    xmarks hosts
    Server、Workstation、Secondary Logon服务无法自启动
    windows2003,xp,RHEL 5 序列号/SN
    项目管理解决方案
  • 原文地址:https://www.cnblogs.com/ddblog/p/3969887.html
Copyright © 2011-2022 走看看