Spark-ML-02-设计机器学习系统

机器学习在商业系统应该是用的最多了,和传统人工区分开,因为数据集量级太大和复杂度太高,机器可以发现人难以发现的模型,基于模型的方式处理可以避免人的情感偏见。人工也是不可以完全抛开的,比如监督式的学习,靠人工;来标记数据,训练模型。文本标记和文本的情感标识别,还有就是破解验证码时基于CNN大量的训练集要靠人来处理,也是醉了,那是很累啊。模型出来后,可以做成服务整合到其他系统中,

机器学习应用在:

  • 个性化

    根据各个因素改变用户的体验和呈现给用户的内容。包含了用户的行为数据和外部因素。推荐也是个性化一种,向用户呈现感兴趣的内容类表,推荐是显式的,个性化也有隐式的,比如是搜索这块,基于用户的数据改变用户的搜索结果,突然想起某度的的竞价排名。一般应该是基于地理位置、搜索历史、推荐数据等。

  • 目标营销和客户细分

    从用户群找出营销对象,推荐和个性化是一对一的,而客户细分是将用户分成不同的组,基于用户的特征,行为数据,比如聚类,了解用户的共性和同组用户之间的相似性,及其差异。是种广泛的营销,帮助制定营销策略。

  • 预测建模和分析

    也覆盖以上,预测建模是表示其他做预测的模型,借助数据创建一个模型。比如创建一个回归模型来预测电影的市场表现。分类模型来对只有部分数据的新电影来自动的分配标签和关键字和分类。第一次接触预测是参加电信的一个比赛,代码在这里可以看看https://github.com/jinhang/TianYiBeiBigDataMatch

一般两种模型,监督学习和无监督学习。具体区分是是否要标记数据。

构建一个数据驱动的机器学习系统

1、 数据获取

这里涉企技术也很多,数据可以从来自浏览器里的用户活动、APP里的日志、API上的日志等。这些数据可能是在文件系统HDFS等中,关系型数据库中Mysql等,非关系型数据库中,Hbase等,搜素引擎中,solr、elasticsearch,流数据系统,Kafka、Flume等,当然spark可以接受这些。

2 、数据清理转换

数据过滤:满足特定条件的数据

处理数据流失、不完整或有缺陷:过滤非正规的数据,填写缺失值(比如平均值填写缺失点)

- 处理可能异常、错误、异常值

异常的数据可能不利于模型的训练的。

- 合并数据源

将来自不同地方的数据合并

  • 数据汇总

    数据预处理后将其转换成适合学习的形式,一般是数组等。

  • 类别用编码对应数值
  • 文本中提取有用信息
  • 处理图像音频
  • 数值数据转换成类别数据减少某个量的可能值数目,比如将年龄分段表示
  • 数值特征正则化、标准化处理、保证一个模型输入不同的变量值域一样
  • 特征工程师对现有的变量组合转化新特征。比如得到平均数

    这些东西用强大的Spark API是可以完成的,不行还有Python嘛。

3、模型训练个测试回路

通过测试集测试得到的模型,含有最佳的参数和最好的表现。

4、部署和整合

可以整合进J2ee的项目,提高服务给APP等。

5、模型监控和反馈

监控在新数据环境也就是生产环境下的表现,一般是部署多个模型紧贴业务测试,不一定准确度高的就业务表现好,然后折中处理,对于模型反馈是用户的行为对模型的反馈过程,在推荐系统中,推荐实际限制了用户可选项,影响了用户的选择,这种反馈会影响模型的训练数据,最后降低准确率。为了降低这种影响,用无偏见的数据来训练,比如没有使用推荐的用户,为了达到平衡需求划分出来的客户数据,对于提高系统稳定性是很好解决办法。

时间: 2024-10-08 22:11:54

Spark-ML-02-设计机器学习系统的相关文章

斯坦福大学公开课机器学习:advice for applying machine learning - deciding what to try next(设计机器学习系统时,怎样确定最适合、最正确的方法)

假如我们在开发一个机器学习系统,想试着改进一个机器学习系统的性能,我们应该如何决定接下来应该选择哪条道路? 为了解释这一问题,以预测房价的学习例子.假如我们已经得到学习参数以后,要将我们的假设函数放到一组新的房屋样本上进行测试,这个时候我们会发现在预测房价时,产生了巨大的误差,现在我们的问题是要想改进这个算法接下来应该怎么办? 实际上我们可以想出很多种方法来改进算法的性能,其中一种办法是使用更多的训练样本.具体来讲,通过电话调查.上门调查,获取更多的不同的房屋出售数据.遗憾的是,好多人花费了大量

spark ml 的例子

一.关于spark ml pipeline与机器学习 一个典型的机器学习构建包含若干个过程 1.源数据ETL 2.数据预处理 3.特征选取 4.模型训练与验证 以上四个步骤可以抽象为一个包括多个步骤的流水线式工作,从数据收集开始至输出我们需要的最终结果.因此,对以上多个步骤.进行抽象建模,简化为流水线式工作流程则存在着可行性,对利用spark进行机器学习的用户来说,流水线式机器学习比单个步骤独立建模更加高效.易用. 受 scikit-learn 项目的启发,并且总结了MLlib在处理复杂机器学习

Spark ML Pipeline简介

Spark ML Pipeline基于DataFrame构建了一套High-level API,我们可以使用MLPipeline构建机器学习应用,它能够将一个机器学习应用的多个处理过程组织起来,通过在代码实现的级别管理好每一个处理步骤之间的先后运行关系,极大地简化了开发机器学习应用的难度.        Spark ML Pipeline使用DataFrame作为机器学习输入输出数据集的抽象.DataFrame来自Spark SQL,表示对数据集的一种特殊抽象,它也是Dataset(它是Spar

Spark MLBase分布式机器学习系统入门:以MLlib实现Kmeans聚类算法

1.什么是MLBaseMLBase是Spark生态圈的一部分,专注于机器学习,包含三个组件:MLlib.MLI.ML Optimizer. ML Optimizer: This layer aims to automating the task of ML pipeline construction. The optimizer solves a search problem over feature extractors and ML algorithms included inMLI and

斯坦福第十一课:机器学习系统的设计(Machine Learning System Design)

11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频中,我将谈到机器学习系统的设计.这些视频将谈及在设计复杂的机器 学习系统时,你将遇到的主要问题.同时我们会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议.下面的课程的的数学性可能不是那么强,但是我认为我们将要讲到的 这些东西是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间. 本周以一个垃圾邮件

Ng第十一课:机器学习系统的设计(Machine Learning System Design)

11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频将谈到机器学习系统的设计.这些视频将谈及在设计复杂的机器学习系统时,将遇到的主要问题.同时会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议.下面的课程讲的东西数学性不强,但是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间. 本周以一个垃圾邮件分类器算法为例进行讨论. 为了解决这样一个问题,首先

Spark ML机器学习库评估指标示例

本文主要对 Spark ML库下模型评估指标的讲解,以下代码均以Jupyter Notebook进行讲解,Spark版本为2.4.5.模型评估指标位于包org.apache.spark.ml.evaluation下. 模型评估指标是指测试集的评估指标,而不是训练集的评估指标 1.回归评估指标 RegressionEvaluator Evaluator for regression, which expects two input columns: prediction and label. 评估

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

Spark ML下实现的多分类adaboost+naivebayes算法在文本分类上的应用

1. Naive Bayes算法 朴素贝叶斯算法算是生成模型中一个最经典的分类算法之一了,常用的有Bernoulli和Multinomial两种.在文本分类上经常会用到这两种方法.在词袋模型中,对于一篇文档$d$中出现的词$w_0,w_1,...,w_n$, 这篇文章被分类为$c$的概率为$$p(c|w_0,w_1,...,w_n) = \frac{p(c,w_0,w_1,...,w_n)}{p(w_0,w_1,...,w_n)} = \frac{p(w_0,w_1,...,w_n|c)*p(c

地铁译:Spark for python developers ---Spark与数据的机器学习

机器学习可以从数据中得到有用的见解. 目标是纵观Spark MLlib,采用合适的算法从数据集中生成见解.对于 Twitter的数据集, 采用非监督集群算法来区分与Apache?Spark相关的tweets . 初始输入是混合在一起的tweets. 首先提取相关特性, 然后在数据集中使用机器学习算法 , 最后评估结果和性能. ?本章重点如下: ???了解 Spark MLlib 模块及其算法,还有典型的机器学习流程 . ???? 预处理 所采集的Twitter 数据集提取相关特性, 应用非监督集