• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >运营技巧 > 采用机器学习方式对网站进行数据挖掘的经验指南

采用机器学习方式对网站进行数据挖掘的经验指南

作者:查字典编辑 字体:[增加 减小] 来源:互联网

查字典编辑向大家介绍了采用机器学习方式对网站进行数据挖掘的经验指南,自学教程,网站运营教程等相关知识,希望对您有所帮助

前言
随着大数据时代的到来,机器学习成为解决问题的一种重要且关键的工具。不管是工业界还是学术界,机器学习都是一个炙手可热的方向,但是学术界和工业界对机器学习的研究各有侧重,学术界侧重于对机器学习理论的研究,工业界侧重于如何用机器学习来解决实际问题。我们结合美团在机器学习上的实践,进行一个实战(InAction)系列的介绍(带“机器学习InAction系列”标签的文章),介绍机器学习在解决工业界问题的实战中所需的基本技术、经验和技巧。本文主要结合实际问题,概要地介绍机器学习解决实际问题的整个流程,包括对问题建模、准备训练数据、抽取特征、训练模型和优化模型等关键环节;另外几篇则会对这些关键环节进行更深入地介绍。

下文分为1)机器学习的概述,2)对问题建模,3)准备训练数据,4)抽取特征,5)训练模型,6)优化模型,7)总结 共7个章节进行介绍。

机器学习的概述:


###什么是机器学习?
随着机器学习在实际工业领域中不断获得应用,这个词已经被赋予了各种不同含义。在本文中的“机器学习”含义与wikipedia上的解释比较契合,如下:
Machine learning is a scientific discipline that deals with the construction and study of algorithms that can learn from data.

机器学习可以分为无监督学习(unsupervised learning)和有监督学习(supervised learning),在工业界中,有监督学习是更常见和更有价值的方式,下文中主要以这种方式展开介绍。如下图中所示,有监督的机器学习在解决实际问题时,有两个流程,一个是离线训练流程(蓝色箭头),包含数据筛选和清洗、特征抽取、模型训练和优化模型等环节;另一个流程则是应用流程(绿色箭头),对需要预估的数据,抽取特征,应用离线训练得到的模型进行预估,获得预估值作用在实际产品中。在这两个流程中,离线训练是最有技术挑战的工作(在线预估流程很多工作可以复用离线训练流程的工作),所以下文主要介绍离线训练流程。
采用机器学习方式对网站进行数据挖掘的经验指南1

###什么是模型(model)?
模型,是机器学习中的一个重要概念,简单的讲,指特征空间到输出空间的映射;一般由模型的假设函数和参数w组成(下面公式就是Logistic Regression模型的一种表达,在训练模型的章节做稍详细的解释);一个模型的假设空间(hypothesis space),指给定模型所有可能w对应的输出空间组成的集合。工业界常用的模型有Logistic Regression(简称LR)、Gradient Boosting Decision Tree(简称GBDT)、Support Vector Machine(简称SVM)、Deep Neural Network(简称DNN)等。
采用机器学习方式对网站进行数据挖掘的经验指南2

模型训练就是基于训练数据,获得一组参数w,使得特定目标最优,即获得了特征空间到输出空间的最优映射,具体怎么实现,见训练模型章节。

###为什么要用机器学习解决问题?

目前处于大数据时代,到处都有成T成P的数据,简单规则处理难以发挥这些数据的价值;
廉价的高性能计算,使得基于大规模数据的学习时间和代价降低;
廉价的大规模存储,使得能够更快地和代价更小地处理大规模数据;
存在大量高价值的问题,使得花大量精力用机器学习解决问题后,能获得丰厚收益。


###机器学习应该用于解决什么问题?

目标问题需要价值巨大,因为机器学习解决问题有一定的代价;
目标问题有大量数据可用,有大量数据才能使机器学习比较好地解决问题(相对于简单规则或人工);
目标问题由多种因素(特征)决定,机器学习解决问题的优势才能体现(相对于简单规则或人工);
目标问题需要持续优化,因为机器学习可以基于数据自我学习和迭代,持续地发挥价值。
对问题建模
本文以DEAL(团购单)交易额预估问题为例(就是预估一个给定DEAL一段时间内卖了多少钱),介绍使用机器学习如何解决问题。首先需要:

收集问题的资料,理解问题,成为这个问题的专家;
拆解问题,简化问题,将问题转化机器可预估的问题。
深入理解和分析DEAL交易额后,可以将它分解为如下图的几个问题:
采用机器学习方式对网站进行数据挖掘的经验指南3

###单个模型?多个模型?如何来选择?
按照上图进行拆解后,预估DEAL交易额就有2种可能模式,一种是直接预估交易额;另一种是预估各子问题,如建立一个用户数模型和建立一个访购率模型(访问这个DEAL的用户会购买的单子数),再基于这些子问题的预估值计算交易额。

不同方式有不同优缺点,具体如下:
采用机器学习方式对网站进行数据挖掘的经验指南4

选择哪种模式?
1)问题可预估的难度,难度大,则考虑用多模型;
2)问题本身的重要性,问题很重要,则考虑用多模型;
3)多个模型的关系是否明确,关系明确,则可以用多模型。


如果采用多模型,如何融合?
可以根据问题的特点和要求进行线性融合,或进行复杂的融合。以本文问题为例,至少可以有如下两种:
采用机器学习方式对网站进行数据挖掘的经验指南5

###模型选择
对于DEAL交易额这个问题,我们认为直接预估难度很大,希望拆成子问题进行预估,即多模型模式。那样就需要建立用户数模型和访购率模型,因为机器学习解决问题的方式类似,下文只以访购率模型为例。要解决访购率问题,首先要选择模型,我们有如下的一些考虑:

主要考虑
1)选择与业务目标一致的模型;
2)选择与训练数据和特征相符的模型。

训练数据少,High Level特征多,则使用“复杂”的非线性模型(流行的GBDT、Random Forest等);
训练数据很大量,Low Level特征多,则使用“简单”的线性模型(流行的LR、Linear-SVM等)。


补充考虑
1)当前模型是否被工业界广泛使用;
2)当前模型是否有比较成熟的开源工具包(公司内或公司外);
3)当前工具包能够的处理数据量能否满足要求;
4)自己对当前模型理论是否了解,是否之前用过该模型解决问题。
为实际问题选择模型,需要转化问题的业务目标为模型评价目标,转化模型评价目标为模型优化目标;根据业务的不同目标,选择合适的模型,具体关系如下:
采用机器学习方式对网站进行数据挖掘的经验指南6

通常来讲,预估真实数值(回归)、大小顺序(排序)、目标所在的正确区间(分类)的难度从大到小,根据应用所需,尽可能选择难度小的目标进行。对于访购率预估的应用目标来说,我们至少需要知道大小顺序或真实数值,所以我们可以选择Area Under Curve(AUC)或Mean Absolute Error(MAE)作为评估目标,以Maximum likelihood为模型损失函数(即优化目标)。综上所述,我们选择spark版本 GBDT或LR,主要基于如下考虑:
1)可以解决排序或回归问题;
2)我们自己实现了算法,经常使用,效果很好;
3)支持海量数据;
4)工业界广泛使用。

准备训练数据
深入理解问题,针对问题选择了相应的模型后,接下来则需要准备数据;数据是机器学习解决问题的根本,数据选择不对,则问题不可能被解决,所以准备训练数据需要格外的小心和注意:

###注意点:

待解决问题的数据本身的分布尽量一致;
训练集/测试集分布与线上预测环境的数据分布尽可能一致,这里的分布是指(x,y)的分布,不仅仅是y的分布;
y数据噪音尽可能小,尽量剔除y有噪音的数据;
非必要不做采样,采样常常可能使实际数据分布发生变化,但是如果数据太大无法训练或者正负比例严重失调(如超过100:1),则需要采样解决。


###常见问题及解决办法

待解决问题的数据分布不一致:
1)访购率问题中DEAL数据可能差异很大,如美食DEAL和酒店DEAL的影响因素或表现很不一致,需要做特别处理;要么对数据提前归一化,要么将分布不一致因素作为特征,要么对各类别DEAL单独训练模型。
数据分布变化了:
1)用半年前的数据训练模型,用来预测当前数据,因为数据分布随着时间可能变化了,效果可能很差。尽量用近期的数据训练,来预测当前数据,历史的数据可以做降权用到模型,或做transfer learning。
y数据有噪音:
1)在建立CTR模型时,将用户没有看到的Item作为负例,这些Item是因为用户没有看到才没有被点击,不一定是用户不喜欢而没有被点击,所以这些Item是有噪音的。可以采用一些简单规则,剔除这些噪音负例,如采用skip-above思想,即用户点过的Item之上,没有点过的Item作为负例(假设用户是从上往下浏览Item)。
采样方法有偏,没有覆盖整个集合:
1)访购率问题中,如果只取只有一个门店的DEAL进行预估,则对于多门店的DEAL无法很好预估。应该保证一个门店的和多个门店的DEAL数据都有;
2)无客观数据的二分类问题,用规则来获得正/负例,规则对正/负例的覆盖不全面。应该随机抽样数据,进行人工标注,以确保抽样数据和实际数据分布一致。


###访购率问题的训练数据

收集N个月的DEAL数据(x)及相应访购率(y);
收集最近N个月,剔除节假日等非常规时间 (保持分布一致);
只收集在线时长>T 且 访问用户数 > U的DEAL (减少y的噪音);
考虑DEAL

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 采用机器学习方式对网站进行数据挖掘的经验指南

相关文章

  • 网站定期更新内容的理由
  • 网络推广十种方法分享
  • 如何通常数据去了解网站的SEO运营效果
  • 网站换域名哪些方面会受影响
  • 为什么要优化移动端? 2016年的移动SEO优化的重要性分析
  • 如何和核心用户获取和运营?
  • 不懂代码能建站吗?教你如何一小时免费建立个人网站
  • 百度首页调整以后网站SEO优化还该怎么做?
  • PHP框架的选择及几款主流框架的性能基本评测
  • 详解利用七牛云存储简单托管静态网站的方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 刚刚起步的新站怎么做SEO?
    • 怎么找关键词? 网络热门关键词的查找方法
    • 在SAE上创建及使用SVN上传网站项目的实例教程
    • 十条小的技巧 让你的网站用户体验更精致
    • 如何屏蔽已收录的不必要二级目录? 屏蔽已被百度收录的不必要二级目录的方法
    • 13大网络营销最有效的免费推广方式
    • 2016年企业SEO优化玩法前瞻
    • 直通车烧钱?淘宝直通车操作技巧
    • 如何快速做网站排名
    • 美国Inmotion主机的购买及续费教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有