顯示具有 R軟體 標籤的文章。 顯示所有文章
顯示具有 R軟體 標籤的文章。 顯示所有文章

2017年3月5日 星期日

2017年台灣巨量資料(大數據)、資料科學家相關課程


很快的新的一年又開始了,筆者已經持續整理資料科學相關課程長達三年,今年也一樣整理相關課程與上課時間給有需要的朋友查詢。


工研院

資策會

中國生產力中心

三星課程網

臺灣資料科學協會


筆者整理這幾年來有發現一些心得,關於大數據或資料科學家課程,有越來越多元化的趨勢,另外除了資策會與工研院有長期開課之外,有不少新的公司或團體也有類似的課程出現,像是臺灣資料科學協會、中國生產力中心、三星課程網。

以上 如有遺漏 歡迎留言告知。



歷年資料參考:

2016年5月22日 星期日

一天上手SparkR

Spark是近幾年在數據分析領域非常火紅的技術,繼上一次「透過Python與Spark做氣象大數據分析」的文章,筆者這次希望分享的是原生Spark 在 R上面的改變,從Spark 1.4版開始對R有較完整的支持,而今年推出的Spark 1.6版上面,可以看到Spark 已經特別為R做了一個專屬的核心,這個核心也只有R才有,其目標就是希望把過去R累積的運算套件無痛移植到Spark上。

圖1:SparkR架構(來源)

從「SparkR: Scaling R Programs with Spark」這篇期刊文章上可以觀察到,圖1中的R的Spark Context透過R-JVM跟Java Spark Context做溝通,將工作分散到每個有R的Worker上面,透過Spark Executor進行運算,其實有Hadoop MR的味道。

但重點是效率變得更好,程式碼變得更好寫,從效率來看,圖2中SparkR的DataFrame效率跟Scala、Python其實也差不多了,而且做Cache會更快。

圖2:DataFrame的效率比較(來源)

另外一個重點是寫R的程式碼邏輯不需變換,因此寫R的資料科學家可以更輕鬆的轉移過去的R程式碼,另外2015年從SparkR 1.4開始已提供66種函式,到Spark1.5提供197個函式,到今年的SparkR 1.6.x版本已提供225種函式,這種增長速度是非常驚人的,因為SparkR 1.4 是去年2015年6月發表,距離筆者寫這篇文章的時間才剛剛準備要滿一年,因此SparkR的發展非常的快速。

接下來我們就來用Windows平台先快快的體驗一下SparkR的威力吧,首先到Spark官網上去下載Spark,透過下圖的點選,下載spark-1.6.1-bin-hadoop2.6.tgz版本。


下載完成後直接解壓縮到您想要放的位置,像筆者是放在C槽區,並把名字變更為Spark。接下來打開RStudioRMicrosoft R Open都可以,這篇筆者以RStudio做示範。

首先我們進行環境的設定

Sys.setenv(SPARK_HOME = "C:\\spark") #其中C:\\Spark是您的Spark路徑與目錄名稱 library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"))) library(SparkR) 
接下來我們就可以開始使用SparkR,我們先使用下面兩行指令做起手式。

sc = sparkR.init();sqlContext = sparkRSQL.init(sc)
其中sc的第一行可以設定Spark的初始狀態,如:要給Spark的記憶體,詳細可參考SparkR的SparkR.init文件。第二行就是前面筆者提到的SparkContext,主要是從JavaSparkContext做初始化的動作。

接下來我們來玩玩經典的iris例子,首先先把iris的欄位名稱做修改,因為Spark裡面很多「.」的函式,避免出錯,我們先把欄位名稱以「_」取代。

newiris = iris;names(newiris) = c("Sepal_Length","Sepal_Width","Petal_Length","Petal_Width","Species")
接下來我們產生Spark超強的DataFrame,這對R使用者不陌生,只是這次是使用Spark去產生DataFrame。

df = createDataFrame(sqlContext, newiris)
接下來我們可以使用head或showDF函式觀察資料。

head(df, 5) showDF(df, 5)
接下來我們可以透過printSchema去觀察一下資料的架構。

printSchema(df)
接著我們可以透過head與select去挑選某個欄位的資料,如挑選Sepal_Length。

head(select(df, df$Sepal_Length)) head(select(df, df$Sepal_Length),10) #挑選10筆
假設筆者想挑選Sepal_Length大於5.4的資料,可以使用head與filter這兩個函式,這兩個函式用起來有沒有覺得很像R的dplyr呢? 相信R使用者很快就能夠上手SparkR。

head(filter(df, df$Sepal_Length > 5.4))
如果dplyr您夠了解,那接下來如果我們想計算Sepal_Length的做簡單的Aggregation,就可以使用下面的指令。

sepal_counts = summarize(groupBy(df, df$Sepal_Length), count = n(df$Sepal_Length))
當然如果要做廣義線性模型(GLM),SparkR的做法跟原生的R做法是完全一模一樣。

model = glm(Sepal_Length ~., data = df, family = "gaussian");summary(model)
如果還想知道其他的功能,請直接拜訪SparkR的文件

從本篇文章中我們可以快速掌握SparkR的使用,同時也了解到目前SparkR不僅支援資料選擇(Selection)、資料過濾(Filtering)、資料聚合(Aggregation),更已經開始支援Spark MLlib可以進行分散式的機器學習。因此我們可以期待未來R的資料科學家在分散式運算上可以透過SparkR更暢通無阻。

當然實務上真的全部資料都要使用SparkR嗎? 不一定,R在記憶體運算(In-memory computing)的部分也有很強的處理能力,因此有時候單機的記憶體夠多,像是MRO + Math Kernel Library,或是寫法稍微改一下(如矩陣寫法),基本上也無須要動用SparkR,雖然如此,在分散式的環境下SparkR還是有它能發展的舞台,所以讓我們繼續期待下去。

2016年1月26日 星期二

2016年台灣巨量資料(大數據)、資料科學家相關課程 (更新時間2016.07.17)


很快的新的一年又開始了,筆者已經持續整理資料科學相關課程長達兩年,今年也一樣整理相關課程與上課時間給有需要的朋友查詢。



工研院
資策會
MIC產業顧問學院
三星課程網
木刻思
東吳大學



歷年資料參考:


2015年11月13日 星期五

R語言從「初學」到「進階」到「跨界」的32本書籍推薦


R語言一直是數據分析界的熱門語言,也因此R語言相關的書籍也相當的多。筆者在學R的過程也看過許多R語言的書籍,筆者也收集相當多的R書籍,但大多參差不齊,有些寫得很好,有些則寫的較為艱澀,最近看到網路上大家在討論由淺入深的學習參考書籍,因此筆者也想做個小整理,包括初級、中級、高級,以及相關領域,內容如下:

[初級]

適合完全不懂R看的書,前三本都是值得參考。
[中級]

適合對R有初步認識的讀者,前三本都是值得參考。
[高級]

想挑戰R的技術的讀者,三本都非常推薦。
  • Advanced R
    • 這本書提了很多R進階的撰寫技巧,作者目前是RStudio首席資料科學家。
  • Statistical Computing in C++ and R
    • 畢竟R還是高階語言,許多效率的改善還是要去參考C++跟R整合的部分。
  • R Packages
    • 這本書是介紹如何撰寫R Packages的技巧,以及R套件與R核心整合的內容,適合非常熟悉R並且想開發R套件的讀者,與Advanced R是同一個作者。
[資料視覺化]
[網站應用]
[統計學]
[計量經濟學、金融]


[資料探勘]
[機器學習]

[資料科學]
[空間資料]
[市場研究]


其他領域結合R的書也歡迎推薦。

2015年8月23日 星期日

「2015 台灣資料科學愛好者年會」精彩資料整理

2015 台灣資料科學愛好者年會」為一年一度的台灣資料科學盛事,參加人數超過千人,這次的活動從2014年的兩天,加長為四天的活動,並且同軌進行,包含「R資料分析上手課程」、「g0v 零時政府黑客松」、「DSP 資料開竅 ▪ 企業論壇」、「資料新聞實戰營」、「Hadoop/Spark 資料科學快速體驗營」、「地圖資料視覺化課程」,以及最精采的「年會主議程」,內容相當豐富也很精采。



以下為筆者所收集的資料科學年會相關活動資料內容

新聞:
  1. 阿里巴巴副總裁車品覺:資料是一種信仰!
  2. 中華電信如何培訓資料科學人才,先讓IT學會商業心法做起
  3. 大資料分析苦手不用怕,資料科學愛好者年會帶你Hadoop做中學
  4. 臺灣資料科學愛好者年會擴大舉辦,阿里巴巴和IBM華生團隊首席帶頭開講
  5. 【活動快訊】資料科學家們 attention!「2015 台灣資料科學愛好者年會」來啦
  6. 2015 台湾资料科学爱好者年会 开始售票!
  7. [展望2015]25%企業今年將導大資料,資料科學人才更搶手
  8. 阿里巴巴、KKBOX資料科學年會同台尬大數據心法
  9. 【資料科學愛好者年會】數據說故事的年代,國際資料新聞人為台灣記者上一課
  10. 為什麼打造一支資料科學團隊如此重要?
  11. 混搭多樣的會議-2015 台灣資料科學愛好者年會
  12. 港大計算機教授:大資料時代也要有大教育思維
文章:

  1. 資料新聞實戰營 d|Bootcamp Taipei!

簡報:
  1. 2015 台灣資料科學愛好者年會-開場
  2. Key Failure Factors of Building a Data Science Team - 趙國仁
  3. 運用空間決策改進緊急醫療品質-詹大千
  4. 巨量與開放資料之創新機會與關鍵挑戰-曾新穆
  5. 以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
  6. 人口統計應用於選舉預測-蔡佳泓
  7. Learning for Big Data - 林軒田
  8. 海量視覺資料-孫民
  9. 由點、線至面:從影像分析角度探討漫畫的組成與風格-朱威達
  10. 心理學x資料科學-黃從仁
  11. Big Education in the Era of Big Data-金國慶
  12. 從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
  13. 資料科學在數位音樂的實踐與分析-KKBOX 林佑璟、羅經凱
  14. 雲端影音與物聯網平台的軟體工程挑戰:以 Skywatch 為例-陳維超
  15. 使用 Elasticsearch 及 Kibana 進行巨量資料搜尋及視覺化-曾書庭
  16. Visualization over Web: Tools and Tips-吳泰輝
  17. 軟工人的資料科學奇航-線上遊戲、網路學習與中華職棒 by 許懷中
  18. 計算社會學-江彥生
  19. 應用資料科學於交通網路解析-闕嘉宏
  20. 社會物理學-以意念流的數據化來打造智慧企業及城市 by 張毓倫
  21. 2015 台灣資料科學愛好者年會-閉幕

研討會共筆:


2015年7月29日 星期三

50個資料科學工具速查表(R、Python、Hadoop、Spark、Machine learning)

以下為國外整理的資料科學工具速查表,包含常見的工具R、Python、Hadoop、Spark,以及機器學習(Machine Learning)理論。


  1. R
  2. Python
  3. SQL
  4. Hadoop
  5. Spark
  6. Machine learning

2015年5月7日 星期四

2015年台灣巨量資料(大數據)、資料科學家相關課程

今年又開始看到許多巨量資料、資料科學家的相關課程持續出現,因此筆者整理一下,條列如下,方便大家去規劃自己的學習時間:


工研院
  1. 巨量資料分析應用與實作班(2015/05/13)
  2. 文字資料探勘與網路資料分析實作(2015/06/02)
  3. 資料探勘與R軟體應用實務II(2015/06/16)

資策會
  1. 文字資料探勘實作班(2015/5/16、5/17)
  2. R軟體與財金資料分析(2015/5/23、5/24)
  3. Spark巨量資料分析實務班(2015/5/30、5/31)
  4. 巨量資料分析-使用RHadoop (2015/6/6、6/7)
  5. Python資料探勘實作 (2015/6/13、6/14)
  6. R軟體與資料視覺化(2015/ 6/27~6/28)
  7. Big Data之處理與分析實務班(2015/7/4~7/5)
  8. R軟體實作班(2015/7/11~7/12)
  9. R軟體與資料探勘(2015/7/25~7/26)
  10. Elasticsearch分散式系統實務班 (2015/8/1、8/2)
  11. R軟體與網頁資料擷取應用(2015/8/22、8/23)
  12. Big Data之處理與分析(Hadoop)進階班(2015/10/17~10/18)
知意圖(Etu)
  1. 軟體開發者的 Hadoop 第一天 (2015/05/18)
  2. 資料分析者的 RHadoop 第一天 (2015/05/29)
  3. 軟體開發者前進 Pig (2015/06/05)
  4. 軟體開發者前進 Hive (2015/06/09)
  5. 軟體開發者前進 NoSQL-HBase (2015/06/25)
智庫驅動DSP
  1. A2: 資料分析進階班 (2015/5/23、24、30、31)
  2. E1: 資料工程基礎班(2015/7/4、5、11、12)
  3. 資料爬理析 Python 實戰班(2015/8/1、2、8、9)
  4. E1: 資料工程基礎班 (2015/11/14、15、21、22)
  5. 模型思考團訓班 Analytical thinking team training (2015/10/24, 25)
  6. 資料工程團訓班 Data Engineer training program (E1) (2015/11/14152122)
  7. 資料思考團訓班 Data thinking team training (2015/12/561213)
巨匠電腦
  1. Big Data實務分析與應用(持續開設中)
臺灣資料科學與商業應用協會

MIC產業顧問學院
  1. SAS教育訓練
Agilearning.IO

2015年2月18日 星期三

必學的10個R套件

最近非常的忙碌,終於逮到一個機會在除夕夜前,將幾個月前想要寫的文章整理一番。

圖:R de jeu


R軟體已在這兩年如黑馬般,串升到十大必學語言之一。從各種數據可以觀察到,由於R的開發者專注做資料分析這塊,因此資料分析的資源非常豐富,也奠定R這個工具在處理資料的獨特定位。

不過R的套件(Package)或稱R包,其實非常的豐富,目前已經有6,328 (2015/02/18)個套件,一定會有人想知道,到底哪些套件使用頻率最多,且被推薦使用。
所以筆者收集了不同的排名報告,包含Data CampyhatR-statistics blogRevolutions,整理了您不能不學的10個R套件。

整理如下:

這個套件是玩R繪圖必須知道的套件,
擁有非常強大的繪圖功能。早些年ggplot2與lattice同為高級繪圖套件,不過看來ggplot2略勝一籌。

這個套件可以將vector、list、data.frame的資料做快速的切割、應用、組合,是非常好用的套件,像是join功能,可以做inner、left、right、full等join功能。
plyr可以讓工程師以資料庫的概念,有效率的把玩資料。

這個套件跟plyr類似,但是針對data.frame、data.table、以及多種資料庫為基礎的資料。將資料做快速的切割、應用、組合,尤其處理大量資料,dplyr是非常好用的工具。 


這個套件可以幫助我們將資料進行縱向、橫向轉換,筆者發現對於該套件處理連續型或時間資料是非常好用的,如空氣品質資料、證券行情資料等。通常會再搭配dplyr,讓資料分析事半功倍。

這個套件更不用多說了,它可以讓R跟C++做完美的融合,演算法玩深一點的朋友就會發現,這個套件是調整效能的最佳工具。

該套件對於資工領域的人應該不陌生,digest可以用來處理雜湊函式(hash function),對岸譯為哈希表。雜湊函式通常是用來做資料壓縮,使資料量變小,常見像是網頁數位簽署、登入驗證、壓縮程式,甚至是現在的NoSQL Key-Value儲存概念,都有雜湊函式(Hash Function)的身影。值得一提的是這個套件的貢獻者Wush Wu是唯一台灣人,且也是Taiwan R User Group的共同創辦人。

這個可以透過正規表示式(Regular Expression)去處理大量的字串,像是檢查、配對、替換等等。

主要提供日期、時間、時區的標準化處理。

這個套件可以協助我們透過R做各種報告,像是HTML、Sweave等等,好處是我們可以透過該套件做可重製之研究(Reproducible Research),該套件目前已經內建在R studio中。此外這個套件的貢獻者也有Wush Wu。

這個套件是做原型(prototype)非常好用的工具,尤其在大型公司的資料團隊,我們經常會需要做原型在進行展示。透過shiny就可以達到這個目的。知名的例子像是ebay就是採用shiny產生原型測試後,在用Java語言佈署到應用層。有興趣可以參考筆者整理去年底2014 R Taiwan 研討會來自eBay資深資料採擷工程師的簡報

在此也祝大家新的一年新年快樂、事事順心、揚眉吐氣。


參考資料:






2014年12月30日 星期二

2014 R Taiwan 研討會精彩簡報整理

2014 Taiwan 研討會圓滿於12月19、20日圓滿落幕,這次較去年更為盛大,參與的人與單位也更多,本次活動主辦包含:

  1. 中華R軟體學會
  2. 臺北商業大學資訊與決策科學研究所
  3. 臺北商業大學資訊與決策科學研究所資料科學應用研究中心
  4. 東吳大學海量資料研究中心
協辦單位包含:
  1. 中華電信學院
  2. 統計之都(COS)
  3. 臺灣資料科學與商業應用協會
  4. 德明財經科技大學研發處
  5. 台北科技大學區域產學合作中心
  6. 中國電機工程學會
  7. 財團法人中華民國電腦技能基金會
  8.  東吳大學巨量資料管理學院
除了議題較去年更為多元,研討會時間更是從一天延長到兩天。研討會地點從學校,提升到業界單位,參加人數更是提升一倍以上。從這些數據可以觀察台灣在資料科學、大數據等相關數據領域的探索上,較2013年 R 研討會更為成熟。



以下為第一天的議程與簡報:
  1. 巨量資料對台灣產業的機會與挑戰
     (資策會 林蔚君 所長)
  2. 雲端巨量資料運算服務
    (
    中華電信 葉筱楓 副經理)
  3. R在新藥研發中的應用
    (中國統計之都 李艦 顧問)
  4. 運用R建置潛客預測模型
    (陳文欽 博士)
  5. R在行動廣告大數據分析與整合應用
    (VPON移動數據團隊 首席數據科學家趙國仁 博士)
  6. R與地圖信息的可視化
    (SupStat數據科學家  郎大為 先生)
  7. 台灣企業跨入大資料世界的兩難
     (美商Teradata台灣分公司  客戶經理 楊明禮 先生)
  8. R在金融數據分析之應用
    (東吳大學 吳牧恩 博士)
  9. 實現資料解析生態系統
     (Data Analytics Ecosystem)在高科技智慧工廠 (宇清數位智慧股份有限公司徐紹鐘副總)
以下為第二天的議程與簡報:
  1. 務實的大數據思維:Learning from political campaign trail–從Clinton, Obama選戰學習
    (愛訊國際顧問有限公司  陳彥廷 先生)
  2. Growh hacker 的 R 工具箱
    ("在路上"旅行APP Growth Hacker 張翔 先生)
  3. 網站實驗設計框架與實戰
    (eBay資深分析師 陳麗雲 女士)
  4. 粉絲團群集與推薦應用
    (國立臺北商業大學  資訊與決策科學研究所 林文政 先生)
  5. R的簡單網路應用-玩轉網站資料
    (中強光電新事業應用發展部  資料研發工程師 湯明軒 先生)
  6. 地理信息與LBS位置服務
    (中國統計之都 李艦 顧問)
  7. R和機器學習在ebay的企業級應用
    (eBay資深資料採擷工程師 趙揚 先生)
  8. R在新媒體中的應用
    (精品購物指南報社精品報系 首席編輯 別業青 女士)
  9. 基於R語言的投資監控平臺之構建
    (首鋼集團  財務部分析師 鄧一碩 先生) 
這兩天的研討會可以看到大數據在各個領域逐漸發展,像是顧客行為分析、新媒體應用、行動廣告、預測潛在顧客等行銷應用。像是半導體製程數據分析的製造業應用。像是乳癌篩檢的醫學應用等等。

在眾多R語言的應用中,筆者觀察R語言已經在大型企業與小型企業有異曲同工之妙,如在大型企業的eBay中資料分析師利用R具有多元演算法的特性,以R進行各項演算法模型的建立,並透過R語言打造基本雛形,再交給工程單位用Java進行軟體工程的調整,因此大型企業主要是透過R語言建立「分析流程」。

在一般小型企業,R語言則肩負了分析與工程的雙重角色,除了快速建立各項資料分析模型之外,並建立雛形,提供給PHP、ROR、Node.js進行軟體工程的整合,因此小型企業使用R語言進行「雛型建立」。

拜這些開放原始碼的進步,早期的艱澀難懂的演算法,透過R語言已能夠快速被應用,甚至在兩三天內做出雛形系統。因此資料科學家可以花較多的時間進行部門間的溝通,資料科學家除了熟悉演算法的特性之外,更要懂得透過演算法協助企業創造價值,譬如:哪些演算法可以提升業績、哪些演算法可以提升工作效率、哪些演算法可以降低營運成本等。透過R語言的應用彈性,為自己在公司中持續創造價值。


明年的資料科學相關研討會,將會更盛大更精彩,敬請期待!
祝各位2015新年快樂!



2014年資料相關領域研討會回顧: