一文讀懂機器學習庫graphLab

文章目錄

  • 目錄
    • 什么是graphlab
    • 為什么使用graphlab?
    • 如何安裝graphlab?
    • 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/676285306@qq.com/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常用操作就介紹完了,后面,我們會介紹一些實際的場景如何進行數據的處理

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445421.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445421.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445421.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Head First設計模式》第七章-適配器模式、外觀模式

適配器模式 適配器模式是什么,你一定不難理解,因為現實中到處都是。比如說: 如果你需要在歐洲國家使用美國制造的筆記本電腦,你可能需要使用一個交流電的適配器…… 當你不想改變現有的代碼,解決接口不適配問題&#…

《Head First設計模式》第八章筆記-模板方法模式

模板方法模式 之前所學習的模式都是圍繞著封裝進行,如對象創建、方法調用、復雜接口的封裝等,這次的模板方法模式將深入封裝算法塊,好讓子類可以在任何時候都將自己掛接進運算里。 模板方法定義:模板方法模式在一個方法中定義一…

機器學習基礎-吳恩達-coursera-(第一周學習筆記)----Introduction and Linear Regression

課程網址:https://www.coursera.org/learn/machine-learning Week 1 —— Introduction and Linear Regression 目錄 Week 1 Introduction and Linear Regression目錄一 介紹1-1 機器學習概念及應用1-2 機器學習分類 二 單變量的線性回歸2-1 假設函數hypothesis2…

常見8種機器學習算法總結

簡介 機器學習算法太多了,分類、回歸、聚類、推薦、圖像識別領域等等,要想找到一個合適算法真的不容易,所以在實際應用中,我們一般都是采用啟發式學習方式來實驗。通常最開始我們都會選擇大家普遍認同的算法,諸如SVM&a…

redis——數據結構(字典、鏈表、字符串)

1 字符串 redis并未使用傳統的c語言字符串表示,它自己構建了一種簡單的動態字符串抽象類型。 在redis里,c語言字符串只會作為字符串字面量出現,用在無需修改的地方。 當需要一個可以被修改的字符串時,redis就會使用自己實現的S…

Hotspot虛擬機的對象

創建 Step1:類加載檢查 虛擬機遇到一條 new 指令時,首先將去檢查這個指令的參數是否能在常量池中定位到這個類的符號引用,并且檢查這個符號引用代表的類是否已被加載過、解析和初始化過。如果沒有,那必須先執行相應的類加載過程。 Step2:分…

劍指offer(刷題1-10)--c++,Python版本

文章目錄目錄第一題:解題思路:代碼實現:c順序查找二分查找Python第二題:解題思路:代碼實現:cpython第三題:解題思路:代碼實現:c使用棧輔助反轉鏈表python第四題&#xff…

redis——數據結構(整數集合,壓縮列表)

4、整數集合 整數集合(intset)是 Redis 用于保存整數值的集合抽象數據結構, 可以保存 int16_t 、 int32_t 、 int64_t 的整數值, 并且保證集合中不會出現重復元素。 實現較為簡單: typedef struct intset {// 編碼方…

原 劍指offer(刷題11-20)--c++,Python版本

文章目錄目錄第11題:解題思路:代碼實現:cpython第12題:解題思路:代碼實現:cpython第13 題:解題思路:代碼實現:cpython第 14題:解題思路:代碼實現&…

LRU介紹和實現

LRU全稱是Least Recently Used,即最近最久未使用的意思。 LRU算法的設計原則是:如果一個數據在最近一段時間沒有被訪問到,那么在將來它被訪問的可能性也很小。也就是說,當限定的空間已存滿數據時,應當把最久沒有被訪問…

機器學習知識總結系列- 知識圖譜(0-0)

文章目錄目錄機器學習知識圖譜目錄 本系列的文章只是根據個人的習慣進行總結,可能結構與一些書籍上不太一樣,開始的內容比較簡單,會隨著后續的深入,不斷豐富和更新圖譜,同時也期待有相同興趣的朋友一起給我留言一起豐富…

跳表介紹和實現

想慢慢的給大家自然的引入跳表。 想想,我們 1)在有序數列里搜索一個數 2)或者把一個數插入到正確的位置 都怎么做? 很簡單吧 對于第一個操作,我們可以一個一個比較,在數組中我們可以二分,這…

機器學習知識總結系列- 基本概念(1-0)

文章目錄目錄1. 機器學習的定義2. 機器學習的分類2.1根據是否在人類監督下進行訓練監督學習非監督學習半監督學習強化學習2.2根據是否可以動態漸進的學習在線學習批量學習2.3根據是否在訓練數據過程中進行模式識別實例學習基于模型的學習3. 機器學習中的一些常見名詞4. 機器學習…

劍指offer(刷題21-30)--c++,Python版本

文章目錄目錄第 21題:解題思路:代碼實現:cpython第22 題:解題思路:代碼實現:cpython第23 題:解題思路:代碼實現:cpython第24 題:解題思路:代碼實現…

redis——對象

剛寫了redis主要的數據結構: 動態字符串、雙端鏈表、字典、壓縮列表、整數集合、跳表等 redis肯定不能直接使用這些數據結構來實現數據庫,它用這些數據庫建立了一個對象系統,包含: 字符串對象、列表對象、哈希對象、集合對象、…

劍指offer(刷題31-40)--c++,Python版本

文章目錄目錄第31 題:解題思路:代碼實現:cpython第32題:解題思路:代碼實現:cpython第33題:解題思路:代碼實現:cpython第34題:解題思路:代碼實現&a…

redis——數據庫

redis服務器將所有數據庫都保存在redis/redisServer中,數組db存放所有數據庫,每一項是一個redisdb結構。dbnum代表數據庫數量。 客戶端有一個指針指向當前數據庫,可以切換,也就是移動指針。 鍵空間 現在稍微介紹一下redisdb結構…

劍指offer(刷題41-50)--c++,Python版本

文章目錄目錄第41題:解題思路:代碼實現:cpython第42題:解題思路:代碼實現:cpython第43題:解題思路:代碼實現:cpython第44題:解題思路:代碼實現&am…

redis——持久化

因為redis是內存數據庫,他把數據都存在內存里,所以要想辦法實現持久化功能。 RDB RDB持久化可以手動執行,也可以配置定期執行,可以把某個時間的數據狀態保存到RDB文件中,反之,我們可以用RDB文件還原數據庫…

redis原理總結

數據結構(字典、鏈表、字符串) 數據結構(整數集合,壓縮列表) 數據結構(跳表介紹和手撕) LRU介紹和實現 對象(字符串對象、列表對象、哈希對象、集合對象、有序集合總結&#xff…