天天看點

一文讀懂機器學習庫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目錄

如何安裝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
一文讀懂機器學習庫graphLab目錄

讀取資料集

一文讀懂機器學習庫graphLab目錄
一文讀懂機器學習庫graphLab目錄

Tips:假如我們想要檢視前幾行,或者末尾幾行資料

我們使用

sf.head ##檢視前幾行
sf.tail ##檢視尾幾行           
  • 1
  • 2

操縱列資料

一文讀懂機器學習庫graphLab目錄

上面是一些基本的操作,隻要選中某一列就可以進行和類似數組的操作,大家可以去嘗試一下

增加一條新的列

一文讀懂機器學習庫graphLab目錄

二.Graphlab Canvas的簡單使用

簡單來說,Canvas是一個圖形化的工具

上面我們在sf在存儲了個人資訊的資料集

直接使用sf.show()
一文讀懂機器學習庫graphLab目錄

會自動在另一個标簽頁面打開

一文讀懂機器學習庫graphLab目錄

在裡面可以各種點選嘗試

我們希望就在目前notebook頁面展示,不希望在另一個頁面去展示,怎麼操作呢?這裡,隻是需要重定向就好

一文讀懂機器學習庫graphLab目錄

下面,我們來解決一個場景問題

我們的人員資訊表中有一個問題,就是國家列中,USA和United States代表的都是同一個國家美國,但是資料的表現形式不一樣,如果,不進行資料的統一的話,那麼,我們在進行建構機器學習模型的時候,可能就不會那麼準确了,因為機器會把這兩種形式看做是兩個國家來處理

解決

為了讓上面的資料集能夠建構機器學習的模型,需要把資料集做一些改變

我們使用apply函數來進行資料的轉換操作

一文讀懂機器學習庫graphLab目錄
一文讀懂機器學習庫graphLab目錄
一文讀懂機器學習庫graphLab目錄

好的,到這裡Graphlab create常用操作就介紹完了,後面,我們會介紹一些實際的場景如何進行資料的處理

繼續閱讀