Ignite中的机器学习介绍

为什么80%的码农都做不了架构师?>>>   hot3.png

本系列共6篇文章,会通过一些代码示例,讲解如何在Ignite中使用机器学习库,本文是本系列的第一篇。

从Ignite的2.4版本开始,机器学习就可以用于生产环境了。在这个版本中,进行了大量的开发和改进,其中包括对分区化数据集和遗传算法的支持,Ignite提供的很多机器学习示例也可以独立运行,这样就使入门变得很简单。并且在本系列的后面,还会使用Ignite支持的一些算法,对一些免费的数据集进行分析,进一步方便开发者学习。

介绍

本文中,先大概看一下机器学习网格,如图1所示: Ignite提供的机器学习能力,从设计上来说要求实用化,并且要求能够直接在Ignite中建立预测模型,这就使得用户在不需要进行昂贵的ETL或者数据转换的前提下,获得扩展性和性能的提升,下面稍微讨论下细节。

首先,在这之前,机器学习模型需要在不同的系统间进行训练和部署,比如,数据需要移出Ignite,然后使用其他的工具进行训练,最后再将模型重新部署进生产系统,这个方式有如下几个缺点:

  • 昂贵的ETL处理过程,尤其对于大规模数据集,数据集的大小,可能是GB级甚至是TB级;
  • 如果要进行ETL,实际上使用的是数据的一个快照,在ETL之后,线上的生产系统数据,可能已经改变,从而使训练系统使用的是过时的训练数据;

其次,现在许多系统可能需要处理大量数据,这些数据通常超过单个服务器的容量。虽然分布式计算提供了一种解决方案,但是有些平台不是为存储和操作数据而设计的,可能只适合于训练目的。因此,开发人员可能需要考虑在生产环境中部署更复杂的解决方案。

Ignite的机器学习能力有助于解决所有的这些问题,甚至更多:

  • Ignite可以直接处理线上的生产数据,避免在不同系统间进行昂贵的ETL;
  • 在数据的存储和维护上,Ignite可以提供分布式的计算能力;
  • Ignite实现的机器学习算法,针对分布式计算进行了优化,因此可以利用Ignite并置处理的优势;
  • Ignite可以作为流式数据的接收器,因此可以实时地进行机器学习;
  • 机器学习通常是迭代式的处理,并且算法在执行过程中上下文可能发生变化,因此为了避免延迟以及丢失,Ignite支持容错的分区化的数据集。

分区化的数据集

Ignite目前支持分区化的数据集,这是一个介于机器学习算法和底层的存储和计算之间的抽象层,它为计算和缓存的备份使用了类似MapReduce的操作以支持容错。

在Ignite中,一个哈希算法会被应用于键值对(K-V)中的键部分,来确定值部分在集群中的存储位置。值部分实际是存储于分区中的,分区是原子化的。在图2中,可以看到两个节点的集群,有两个分区(P1和P2): 机器学习算法通常是迭代式的,并且需要上下文和数据,在图2中,如每个分区中对应的C和D所示。

如果一个节点故障,Ignite会恢复分区和上下文,如图3所示。比如,P1在节点2有一个备份(灰色所示),如果节点1故障,就可以从节点2恢复P1,数据可能从集群或者本地ETL(标记为D*)中恢复。 图3

算法和适用领域

下面会看下Ignite支持的机器学习算法,下表会做个总结:

分类回归聚类预处理
描述根据一组训练数据确定新的标的属于哪一类对因变量y和一个或多个自变量x之间的关系进行建模对对象集进行分组,使得同一组内的对象和其他组中的每个对象相比具有更高的相似度特征提取和规范化
适用领域垃圾邮件检测、图像识别、信用评分、疾病识别药物反应,股票价格,超市收入客户细分、实验结果分组、购物项目分组对比如文本这样的输入数据进行转换,以便用于机器学习算法,然后提取需要拟合的特征,对数据进行规范化
算法支持向量机(SVM)、最近邻、决策树分类和神经网络线性回归、决策树回归、最近邻和神经网络K均值基于分区的数据集自定义预处理

机器学习库还带来了一组遗传算法,其在这里有详细描述。

总结

Ignite的最新版本提供了许多重要的特性和能力。分区化的数据集通过保存上下文,在节点故障时可以继续处理机器学习算法。机器学习算法支持广泛的使用案例,遗传算法的加入也为复杂数据的处理提供了新的机会。

转载于:https://my.oschina.net/liyuj/blog/2252890

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/450367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新架构让数据中心犹如PC

摘要:随着VL2网络拓扑结构带来了对等带宽,大量数据可以存放在远方的数据中心,访问起来却犹如它们就在本地,这将对数据中心的架构产生重大影响。Todd Hoff参加了Hot Interconnects大会,对微软VL2架构做了详细解读。CSDN…

mongodb分片概念和原理-实战分片集群

一、分片分片是一种跨多台机器分发数据的方法。MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。问题:具有大型数据集或高吞吐量应用程序的数据库系统可能会挑战单个服务器的容量。例如,高查询率会耗尽服务器的CPU容量。工作集大小大于系…

加入初创企业需要想清楚的几个问题

摘要:加入一家初创企业是一段充满冒险的旅程。沿途不会都是美景,更别忘了最初的梦想。 去初创公司面试,你一般会纠结于被问到什么问题。但更重要的是问自己:你下定决心在接下来的5年中“从头再来”吗?你能接受这份薪资…

地图市场三足鼎立:诺基亚官方确认与亚马逊合作

摘要:诺基亚确认为亚马逊新推出的平板提供地图服务,至此地图市场“三家分晋”的格局已趋明朗。 路透社之前曾报道称亚马逊在新版Kindle中将使用诺基亚提供的地图服务。但直到今日,这则消息才得到双方的确认。诺基亚方面确认将为亚马逊提供地图…

关于明晚即将发布的新款 iPad Pro,最大的亮点也许不是 Face ID

北京时间 10 月 30 日晚间 10 点,苹果将会在美国纽约的布鲁克林音乐学院举行新品发布会。考虑到此前苹果已经在 9 月的发布会上宣布了 Apple Watch Series 4 和 iPhone XS/Max、iPhone XR 等新品,因此苹果此次的纽约发布会,大家的目光更多地投…

11. Container With Most Water

题意 给定n个非负整数\(a_1,a_2,...,a_n\),其中每个数表示坐标点\((i,a_i)\),i是数组下标,\(a_i\)是对应高度.寻找两条线,使得两条线构成的长方形面积最大,盛水最多. Example: Input: [1,8,6,2,5,4,8,3,7] Output: 49 解 暴力破解 对每种情况进行循环,计算对应的面积,同时保存最…

先思再行 闭着眼睛编程

摘要:解决问题最重要的习惯不是一直盯着屏幕和编写修改代码,某些时候,阻止你成功的东西恰恰会是过于努力。这时候你需要暂停一下,平缓你的思绪,换一种方法或许能带给你不一样的效果。你会花多少时间思考如何编写代码&a…

javaScript复习

ES6字符串方法: //console.log(String.prototype);var str "abcdefabc";//console.log(str.includes("a"));//结果true//console.log(str.includes("abf"));//结果false//console.log(str.startsWith("d"));//false//cons…

STS的安装教程-鹏鹏

STS全称Spring Tools Suite。 简介:Spring Tools Suite (STS)其实就是一个被包装过的Eclipse,主要用于快速的开发Spring项目,我们不用再去编辑繁琐的xml配置文件,而是由工具自动生成。STS有两种安装方式,一种是直接在E…

linux逻辑卷管理

2019独角兽企业重金招聘Python工程师标准>>> 摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符…

github 如何设置项目的语言显示

github 会根据一个项目文件最多的那个种类的文件显示为对应的语言项目 如果想让整个项目显示为 HTML 项目, 需要进行以下步骤的设置 1.在根目录下创建一个文件 .gitattributescreate .gitattributes2.在 .gitattributes 内编辑以下内容: *.js linguist-languageHTML…

postman界面变成了左右结构怎么办

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 在左上角 file -- settongs中设置一下:

1.springboot:入门程序

一、Spring Boot 简介 官网英文: Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-party libraries so you can get st…

javax.ws.rs.NotSupportedException: Cannot consume content type

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 报错如题:javax.ws.rs.NotSupportedException: Cannot consume content type 解决:使用postman发送 post 请求访…

kotlin使用spring data jpa(一)

2019独角兽企业重金招聘Python工程师标准>>> 简单查询 spring data jpa是spring全家桶成员之一,用于操作各种数据库,下面写一个查询订单的简单示例 引入sqlserver驱动包及jpa所需包implementation(org.springframework.boot:spring-boot-star…

csvn(apache+svn)管理工具搭建

系统环境:centos7.4一、服务端下载这个文件并解压(如果打不开,请下方留言)https://pan.baidu.com/s/1miwdBc81、安装jdk,上传到服务器上,解压[rootslave2 opt]# tar -zxvf jdk-8u91-linux-x64.gz[rootslave2 opt]# vim…

编程复杂性等级划分

摘要:相信开发人员一定对初级、中级、高级软件工程师这类词汇很熟悉吧!你们是否对编程进行过等级划分?这个又是如何划分的呢?本文作者把编程复杂性从简到难化成27个等级,你同意这样的划分吗?通常来说&#…

东方程序员怎么看西方程序员

摘要:东方程序员与西方程序员,彼此心中是什么样子呢?本文收集了东西方程序员对彼此的看法与各种印象,对于西方/东方程序员,你留有什么印象呢? 本文是作者根据StackExchange上的一个讨论贴:东方程…

Android开发 - 掌握ConstraintLayout(一)传统布局的问题

在传统的Android开发中,页面布局占用了我们很多的开发时间,而且面对复杂页面的时候,传统的一些布局会显得非常复杂,每种布局都有特定的应用场景,我们通常需要各种布局结合起来使用来实现复杂的页面。随着ConstraintLay…

IDEA项目找不到浏览器报错的情况

调tomcat的时候,它会调用浏览器,浏览器关联如果有问题,肯定是会报错的 要是测试的时候,就是浏览器的问题,重新把浏览器装一遍让他自己重新关联一下应该就行了转载于:https://www.cnblogs.com/Koma-vv/p/10156478.html