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

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

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. 转帖:向开源项目贡献源码(以 Orchard 为例)

    原文地址:http://yangw80.blog.163.com/blog/static/247518002201552692516908/ 在开源项目满天飞的时代,仅仅把开源项目拿来用是不够的,要适 ...

  2. CTO、CIO

    对于不从事技术研发的企业,完全不必要设立CTO这一职位,但是CIO是要始终存在为企业提供更好的咨询服务.有时CT0和CIO是同一个人,毕竟是信息时代嘛!CIO的角色从过去IT时代的交付型,转变为DT时 ...

  3. PredicateBuilder类(linq多条件组合查询)

    PredicateBuilder类如下: public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AN ...

  4. 项目总结——MVC+MongoDB实现文件上传

    在做项目的时候我们遇到了视频上传的问题.正式开始项目之前做了一个简单的Demo实现在MVC中视频文件的上 传,考虑到将视频放到MongoDB中上传和读取速度慢的问题,这次我们实现的文件上传是存储的路径 ...

  5. PL/SQL Developer执行.sql文件的几种方法

    1.复制SQL 第一种方法非常常见,也非常简单,先用文本编辑器打开.sql文件,然后把sql复制到PL/SQL Developer的SQL窗口或者命令窗口中运行就行了,本来我也是这么做的,但是我将SQ ...

  6. Android教材 | 第三章 Android界面事件处理(一)—— 杰瑞教育原创教材试读

      前  言 JRedu Android应用开发中,除了界面编程外,另一个重要的内容就是组件的事件处理.在Android系统中,存在多种界面事件,比如触摸事件.按键事件.点击事件等.在用户交互过程中, ...

  7. 从数据库中取 datetime类型,界面展示 yyyy-MM-dd

    //处理提问时间,去掉时分秒 if(array!=null && array.size()>0){ for(int i=0;i<array.size();i++){ JSO ...

  8. Neo4j 查询某标签节点个数语句 删除某标签全部节点语句

    查询:MATCH (n:标签名) RETURN count(n) 删除:MATCH (n:标签名) DELETE n

  9. Java-JUC(四):同步容器介绍

    同步容器简介 针对容器我们知道有HashMap,HashTable,其中HashMap是一个非线程安全的,HashMap在并发执行put操作时会引起死循环,导致CPU利用率接近100%.因为多线程会导 ...

  10. 转: 一个程序员的Java和C++学习之路(整理)

    http://blog.csdn.net/ajian005/article/details/8003655 http://m.blog.csdn.net/xugangwen/article/detai ...