zoukankan      html  css  js  c++  java
  • Hadoop里的数据挖掘应用-Mahout——学习笔记<三>

    之前有幸在MOOC学院抽中小象学院hadoop体验课。 
    这是小象学院hadoop2.X的笔记 

    由于平时对数据挖掘做的比较多,所以优先看Mahout方向视频。

    Mahout有很好的扩展性与容错性(基于HDFS&MapReduce开发),实现了大部分常用的数据挖掘算法(聚类、分类、推荐算法)不过数据挖掘调参和业务理解是关键,个人觉得真正想学习的话,还是看正规机器学习的课程比较好。

    这里省略了大部分比较技术那一块的笔记。。。

    虽然mahout在速度上有天然优势。但R/Python其实也在接入hadoop,如RHadoop等 
    而且正如[别老扯什么Hadoop了,你的数据根本不够大](http://geek.csdn.net/news/detail/2780) 这里提到的,在轻量级数据上,还是没有太大必要折腾hadoop,在hadoop上用mahout的前提应该是数据量非常大

    不在博客园上阅读时才会看到的,这篇博文归http://www.cnblogs.com/weibaar 所有

    仅保证在博客园博客上的排版干净利索还有代码块与图片正确显示,他站请保留作者信息尊重版权啊

    一、课程概述

    1、综合介绍 
    2、聚类算法 
    3、分类算法 
    4、推荐算法

    二、聚类算法

    聚类应用场景如新闻聚类(多少条与之相关)。最常用的是k-means聚类 
    基本流程应该是指定聚类次数,定位中心点,计算平均距离,最后实现产品分类。 
    在Mahout里

    1、提取feature

    对新闻正文分词,对词编码,如doc1有哪些词出现,转化为0-1多维向量

    2、feature向量化,多维的向量

    之前的多维向量浪费空间,需要换一种表达方式,mahout里提供lucene或其他工具把这些feature转化为向量格式 
    总之要实现有序的、节省空间的feature,最后储存为SequenceFile格式。

    3、用kmeans实施聚类

    bin/mahout kmeans 并可调相应格式

    另外,mahout提供多种向量之间距离计算org.apache.mahout.distance

    因此kmeans参数调优,有一个方法是对向量距离计算方法调优

    cannopy算法:寻找最优的初始点

    一般配合其他聚类方法使用 
    如cannopy算法可以协助kmeans确定初始点

    就是先随机选一个点,计算不同距离的点的个数,然后迭代计算,最后可以找出一个包含度较高的初始点 
    (kmeans默认用随机点,指定canopy的话可以寻找最优的初始点,这个改进应该也是调参之一)

    三、分类算法

    属于有监督的机器学习算法,分类已经实现订好了,现在看什么因素是可以让我们快速定位其为该分类的数据 
    所以应用步骤应该是,用训练集获得分类模型,测试调优后用于线上产品里

    再调用其他的参数引用分类模型

    模型评估常用的两个指标:confusion混淆矩阵 & AUC

    不在博客园上阅读时才会看到的,这篇博文归http://www.cnblogs.com/weibaar 所有

    仅保证在博客园博客上的排版干净利索还有代码块与图片正确显示,他站请保留作者信息尊重版权啊

    四、推荐算法

    用户,对什么物品,打多少分 
    preference:倾向度,可以用user-item矩阵进行评分

    就是用用户对其他物品的打分(基于相似用户的打分,重点是查找用户相似度)以及其他用户对该item的打分(重点查找相似的物品,用商品相似度作为权重填充)

    User-based的推荐效果更好,用户效果好 
    Item-based的效果较差,但是计算效率高,适合实时推荐系统

    Mahout有自带一个Taste推荐系统实现。基于java,协同过滤,属于可靠高效的推荐引擎

  • 相关阅读:
    TEXT 6 Travelling with baggage
    TEXT 4 A question of standards
    TEXT 3 Food firms and fat-fighters
    linux——DNS服务器配置
    NISP视频知识点总结
    词根生词要打印加上汉译
    琐碎的总结 css jQuery js 等等。。。
    css 描述css reset的作用和用途。
    css--block formatting context
    《javascript高级程序设计》 第25章 新兴的API
  • 原文地址:https://www.cnblogs.com/weibaar/p/4768168.html
Copyright © 2011-2022 走看看