文章目錄
- 目錄
- 什么是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常用操作就介紹完了,后面,我們會介紹一些實際的場景如何進行數據的處理