一文读懂机器学习库graphLab

目录

什么是graphlab

GraphLab 是由CMU(卡内基梅隆大学)的Select 实验室在2010 年提出的一个基于图像处理模型的开源图计算框架,框架使用C++语言开发实现。该框架是面向机器学习(ML)的流处理并行计算框架,可以运行在多处理机的单机系统、集群或是亚马逊的EC2 等多种环境下。框架的设计目标是,像MapReduce一样高度抽象,可以高效执行与机器学习相关的、具有稀疏的计算依赖特性的迭代性算法,并且保证计算过程中数据的高度一致性和高效的并行计算性能。该框架最初是为处理大规模机器学习任务而开发的,但是该框架也同样适用于许多数据挖掘方面的计算任务。在并行图计算领域,该框架在性能上高出很多其他并行计算框架(例如,MapReduce、Mahout)几个数量级。GraphLab 自成立以来就是一个发展很迅速的开源项目,其用户涉及的范围也相当广泛,全球有2 000 多个企业、机构使用GraphLab。

GraphLab 的设计目标是在集群或者多处理机的单机系统上实现大规模的机器学习算法。一般的机器学习类算法有以下两个特性。

  • 数据依赖性很强。运算过程中参与计算的各个机器之间经常需要交换大量的数据。
  • 流处理复杂。主要表现在整个处理过程需要反复地迭代计算,数据处理分支很多,很难实现真正的并行。

在GraphLab 出现之前,针对这些机器学习的算法,普遍的编程方法是采用MPI 和PThread 这些已有的底层开发库来完成这类计算问题。采用这种编程模型的开发应用,针对具体的应用,需要开发者实现相应的算法来完成计算过程中集群计算节点之间主机通信和数据同步等底层操作。这种开发方法的优势在于,可以针对具体的应用对代码进行深度的优化,以达到很高的性能。但是对于不同的应用,需要重写代码实现底层的数据分配、数据通信等细节,这就导致了代码重用率很低,可拓展性差,对编程人员要求高。这种编程模型显然不适合当前敏捷的互联网开发。而当前被广泛使用的MapReduce 计算框架,在并行执行多任务的时候,要求各个任务之间相互独立,任务执行期间不需要相互之间进行数据通信,所以MapReduce 不适合数据依赖性强的任务,而且MapReduce 并行计算模型也不能高效表达迭代型算法。这种计算模型在处理如日志分析、数据统计等数据独立性的任务时具有明显的优势,但是在机器学习领域,MapReduce 框架并不能很好地满足机器学习计算任务。
为了实现机器学习算法通用性的目标,CMU 的Select 实验室开发出了GraphLab。

为什么使用graphlab?

传统的机器学习库,如sklearn只能支持件数据直接读入到内存中,而且无法并行处理。而大数据框架mapreduce或者spakl学习起来比较复杂,于是就推出了graphlab机器学习框架

在这里插入图片描述

如何安装graphlab?

参考博客

运行命令:pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/[email protected]/8862-18BC-A187-AB2E-848C-05BC-6011-A1AD/GraphLab-Create-License.tar.gz
其中上面命令行中加粗的部分是子集去官网注册时的邮箱和一个许可证,需要进行替换

如果出现安装包以来问题,请将pip降至9.01即可。

graphlab的简单使用。

参考博客

GraphLab Create 是一款机器学习的函数库,其中的SFrame也是十分强大的数据管理工具。它允许直接从硬盘中读取数据,免于将数据全部加载到内存中。这就使得对于大数据的处理成为可能.这也是相对于scikit-learn的一个最大优点,我们知道,scikit-learn是只能读取内存中的数据.
2018-4-29:GraphLab Create一款机器学习中不错的函数库,集成了Jupyter Notebook这款好用的IDE,Notebook用于机器学习/数据统计/分析/建模等领域,Jupyter Notebook也是一款开源 的WEB application, 文件格式是:.ipynb结尾….
GraphLab Create下载地址https://turi.com/

一.在使用之前,我们必须得先引入这个包

import graphlab

这里写图片描述

读取数据集

这里写图片描述

这里写图片描述

Tips:假如我们想要查看前几行,或者末尾几行数据
我们使用

sf.head ##查看前几行
sf.tail ##查看尾几行
  
  
  • 1
  • 2

操纵列数据

这里写图片描述

上面是一些基本的操作,只要选中某一列就可以进行和类似数组的操作,大家可以去尝试一下

增加一条新的列
这里写图片描述

二.Graphlab Canvas的简单使用

简单来说,Canvas是一个图形化的工具

上面我们在sf在存储了个人信息的数据集

直接使用sf.show()

这里写图片描述

会自动在另一个标签页面打开

这里写图片描述

在里面可以各种点击尝试

我们希望就在当前notebook页面展示,不希望在另一个页面去展示,怎么操作呢?这里,只是需要重定向就好

这里写图片描述

下面,我们来解决一个场景问题

我们的人员信息表中有一个问题,就是国家列中,USA和United States代表的都是同一个国家美国,但是数据的表现形式不一样,如果,不进行数据的统一的话,那么,我们在进行构建机器学习模型的时候,可能就不会那么准确了,因为机器会把这两种形式看做是两个国家来处理

解决
为了让上面的数据集能够构建机器学习的模型,需要把数据集做一些改变
我们使用apply函数来进行数据的转换操作

这里写图片描述

这里写图片描述

这里写图片描述

好的,到这里Graphlab create常用操作就介绍完了,后面,我们会介绍一些实际的场景如何进行数据的处理

猜你喜欢

转载自blog.csdn.net/wangzi11111111/article/details/88633151