Apache Mahout学习笔记(一)

本文介绍了监管和无监管学习的基本概念及应用,同时涵盖了推荐引擎、集群算法等关键领域。使用Mahout实现推荐引擎和集群的具体步骤也被详细阐述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文是学习(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:借助基于多种概率模型的集群,它不需要提前执行特定的集群视图。

 

转载于:https://www.cnblogs.com/ddblog/p/3969887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值