传统数据挖掘/机器学习库存在的问题

        缺少一个活跃的技术社区
        扩展性差
        文档化差,缺少实例
        不开源。商业化库
        通常由研究机构开发
        实施性差

Apache Mahout长处


        技术社区活跃
        扩展性好
        文档化好。实例丰富
        100%源码开源
        易于使用

Apache Mahout是什么


        基于MapReduce开发的数据挖掘/机器学习库
        良好的扩展性和容错性
        充分利用了MapReduceHDFS的扩展性和容错性
        属于Hadoop生态系统重要组成部分
        Apache Software License 2
        实现了大部分经常使用的数据挖掘算法
        聚类算法
        分类算法
        推荐算法

Mahout提供的算法

http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms


聚类算法介绍


        将类似的对象划分成多个类的过程
        “物以类聚,人以群分”
        以k-means聚类算法为例介绍
                给定聚类个数k
                依照数据特征,将其分为k个类别

分类的基本流程


        有监督机器学习算法
        需提供样本,依据样本得到分类模型
        分类三步骤
                步骤1:训练样本。得到分类模型;
                步骤2:对分类模型进行測试,并尝试调优
                步骤3:将分类模型用于线上产品中


推荐算法介绍


        诞生于电子商务系统中;
        依据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品;
        以协同过滤推荐算法为例进行介绍
                推荐系统中应用最早和最为成功的技术之中的一个
                如果:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其它用户,然后将他们感兴趣的内容推荐给此用 户

协同过滤推荐算法—基本元素


    Item
        可以被推荐给使用者的项目
    User
        可以推Item做评分,能为系统推荐Item的使用者
    Preference
        User对Item的评分
        { userId, itemId, rating }

User-Item矩阵


User-based

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" width="800">

Item-based



User-based 与 Item-based

    User-based
        基于使用者间的相似性推荐项目
    Item-based
        基于项目间的相似性推荐给使用者
    各有优劣
        User-based的推荐效果好
        Item-based的计算效率高

Taste: Mahout自带的一个推荐系统实现


        Taste 是 Apache Mahout提供的一个协同过滤算法的高效实现。
        基于 Java 实现的可扩展的,高效的推荐引擎。
        实现了最主要的基于用户的和基于内容的推荐算法,也提供了扩展接口。使用户能够方便的定义和实现自己的推荐算法。
        Taste 的设计使它能满足企业对推荐引擎在性能、灵活性和可扩展性等方面的要求。

总结
        1.数据挖掘/机器学习算法对技术人员有较高要求。
        2.Mahout提供了一个通用数据挖掘/机器学习库。但对技术人员要求仍很高。


大数据(十一) - Mahout的更多相关文章

  1. ApacheCN 大数据译文集(二) 20211206 更新

    Hadoop3 大数据分析 零.前言 一.Hadoop 简介 二.大数据分析概述 三.MapReduce 大数据处理 四.基于 Python 和 Hadoop 的科学计算和大数据分析 五.基于 R 和 ...

  2. CRL快速开发框架系列教程十一(大数据分库分表解决方案)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  3. 大数据入门第十九天——推荐系统与mahout(一)入门与概述

    一.推荐系统概述 为了解决信息过载和用户无明确需求的问题,找到用户感兴趣的物品,才有了个性化推荐系统.其实,解决信息过载的问题,代表性的解决方案是分类目录和搜索引擎,如hao123,电商首页的分类目录 ...

  4. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析

    这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...

  5. 成都大数据Hadoop与Spark技术培训班

    成都大数据Hadoop与Spark技术培训班   中国信息化培训中心特推出了大数据技术架构及应用实战课程培训班,通过专业的大数据Hadoop与Spark技术架构体系与业界真实案例来全面提升大数据工程师 ...

  6. 大数据实时处理-基于Spark的大数据实时处理及应用技术培训

    随着互联网.移动互联网和物联网的发展,我们已经切实地迎来了一个大数据 的时代.大数据是指无法在一定时间内用常规软件工具对其内容进行抓取.管理和处理的数据集合,对大数据的分析已经成为一个非常重要且紧迫的 ...

  7. PayPal高级工程总监:读完这100篇论文 就能成大数据高手(附论文下载)

    100 open source Big Data architecture papers for data professionals. 读完这100篇论文 就能成大数据高手 作者 白宁超 2016年 ...

  8. Azure HDInsight 和 Spark 大数据实战(一)

    What is HDInsight? Microsoft Azure HDInsight 是基于 Hortonoworks Data Platform (HDP) 的 Hadoop 集群,包括Stor ...

  9. Hadoop 大数据第一天

    大数据第一天 1.Hadoop生态系统 1.1 Hadoop v1.0 架构 MapReduce(用于数据计算) HDFS(用于存储数据) 1.2 Hadoop v2.0 架构 MapReduce(用 ...

随机推荐

  1. vim粘贴代码的时候,恶心的缩进.

    vim粘贴代码 如果有注释,那么粘贴后就惨不忍睹,类似于: 我粘贴代码到a.cpp,内容为: //打印函数 ) { ;i<length;i++){ ){ printf("0x &quo ...

  2. Go语言之进阶篇爬捧腹网

    1.爬捧腹网 网页规律: https://www.pengfu.com/xiaohua_1.html   下一页 +1 https://www.pengfu.com/xiaohua_2.html 主页 ...

  3. Go语言之进阶篇响应报文测试方法

    1.响应报文测试方法 示例: package main import ( "fmt" "net/http" ) //服务端编写的业务逻辑处理程序 func my ...

  4. Matplotlib绘图双纵坐标轴设置及控制设置时间格式

    双y轴坐标轴图 今天利用matplotlib绘图,想要完成一个双坐标格式的图. fig=plt.figure(figsize=(20,15)) ax1=fig.add_subplot(111) ax1 ...

  5. Qt5.3.1 静态编译的configure

    今天最终自己静态编译过了QT5.3.1, 成功用在项目上了, 记录下configure指令.  configure -confirm-license -opensource -platform win ...

  6. hadoop2.2.0 centos 编译安装详解

    http://blog.csdn.net/w13770269691/article/details/16883663 废话不讲,直切正题. 搭建环境:Centos x 6.4 64bit 1.安装JD ...

  7. Concurrent HTTP connections in Node.js

    原文: https://fullstack-developer.academy/concurrent-http-connections-in-node-js/ -------------------- ...

  8. Java中动态代理方式:

    JDK中生成代理对象的API 代理类所在包:java.lang.reflect.ProxyJDK实现代理只需要使用newProxyInstance方法,但是该方法需要接收三个参数,完整的写法是: st ...

  9. Struts2之server端验证

    声明:在我的教程中有些东西,没有提及到.不是我不知道,而是在我个人来看对你们不是太重要的知识点.你们在看课本时有了解到即可.我不会面面俱到的都给你们提及.我写博文的目的是把我这一年的开发经验通过学习s ...

  10. Java集合遍历时删除

    public static void main(String[] args){ List<Integer> list = new ArrayList<Integer>(); l ...