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

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還是有它能發展的舞台,所以讓我們繼續期待下去。

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年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年資料相關領域研討會回顧:



2014年10月3日 星期五

什麼是大數據的新架構「資料湖泊」?

隨著資訊科技的發達,企業開始面臨大量數據的儲存問題。過去許多企業從導入資料庫,到導入 資料倉儲,甚至商業智慧。以面對不斷增長的資料以及資料的應用問題,但資料持續增加,傳統架構將可能不敷使用。

因此有個新名詞「資料湖泊(Data Lake)」(又稱數據湖泊、DL)因應而生。該名詞於2011年最早出現在富比士(Forbes)雜誌,「Big Data Requires a Big, New Architecture」一文中。

資料湖泊(Data Lake)有別於我們提到的資料倉儲(Data Warehouse),資料倉儲(DW)的資料通常是品質較高,且是被預先處理過的資料。而資料湖泊(DL)則是儲存大量且龐雜的資料,作為資料素材(Data Material)的儲存池(Pool),以便未來分析使用。

因此資料湖泊(DL)使資料科學家在資料分析上擁有更大的分析彈性。

資料湖泊(DL)被提起後,EMC也開始使用這個名詞進行大數據產品的推廣。

今年1月富比士(Forbes)雜誌的「The Data Lake Dream」一文中,提到了資料湖泊(DL)成熟度的分為四級,筆者將圖片重新翻譯繪製並整理如下:

圖一:資料湖泊成熟度第一級

首先是成熟度第一級「尚未導入DL」,紅色為應用服務(資料庫),綠色為資料倉儲,部分資料間互相串接,部分資料傳遞到資料倉儲進行分析。該架構也是目前企業普遍的資料架構,各個資料庫相互獨立,只有少部分資料庫整理資料後,傳到資料倉儲做分析應用。此成熟度有3個重點:
  1. 企業所有應用服務(資料庫)都各別獨立。
  2. 僅部分資料庫將資料傳遞到資料倉儲。
  3. 資料科學家透過資料倉儲進行資料分析。

圖二:資料湖泊成熟度第二級

當進入到成熟度第二級「導入Hadoop」,紅色為應用服務(資料庫),綠色為資料倉儲,藍色為Hadoop、深藍色為資料分析器。這時候資料庫開始把部分資料往Hadoop進行傳遞,資料科學家可透過Hadoop進行ETL(資料萃取、轉換、讀取),提升分析效率。本成熟度4個重點:
  1. 企業的應用服務(資料庫),開始將部份資料儲存到Hadoop。
  2. Hadoop開始透過MapReduce處理資料。
  3. 資料科學家使用Hadoop進行ETL接著放到資料倉儲或開發資料分析器。
  4. Hadoop處理好的資料傳回應用服務(資料庫)
圖三:資料湖泊成熟度第三級

進展到成熟度第三級「資料不斷增長的資料湖泊」,紅色為應用服務(資料庫),綠色為資料倉儲,藍色為Hadoop、深藍色為資料分析器。這階段Hadoop可以說是扮演資料中心的角色,負責儲存巨量、龐雜、高不確定的資料。本成熟度有4個重點:
  1. 所有應用服務(資料庫)都以Hadoop為中心進行串接。
  2. Hadoop開始整合外部的資料來源。
  3. 透過資料分析語言或工具(如:R、Python、Impala, Greenplum, Spark等) 與Hadoop進行互動。
  4. Hadoop成為所有資料儲存的目的地,以便利企業進行資料治理(Data Governance)。


圖四:資料湖泊成熟度第四級

最後到成熟度第四級「資料湖泊與應用雲端平台」,目前只有少部分公司的資料規模可以做到,像是Google、Amazon、Alibaba、Facebook,因為這類型企業的資料已經大到一個規模,需要高效率的資料處理架構。這時候企業應用服務(APPs)的資料存取大部分都由Hadoop這邊作互動。在這個階段主要強調資料安全(Data Security)與資料治理(Data Governance)的部分,進行加強。本成熟度有4個重點:

  1. 所有的新的應用服務全都建立在Hadoop的平台上。
  2. 新的應用服務的資料庫佈署時間將減少。
  3. Hadoop成為分散式的資料運算平台,運用於資料管理與分析。
  4. Hadoop強化資料安全與資料治理的功能。
最後筆者整理了資料庫、資料倉儲、資料湖泊三個不同特性比較給大家參考。

表:資料科學實驗室整理

上述表格,可以讓我們快速了解這些不同的名詞之間的差異。在企業中,面對大數據的浪潮,除了掌握上述的成長模式,也要依據資料庫、資料倉儲、資料湖泊的特性,分別將這些資料儲存模式定位,賦予不同的任務。

至於資料湖泊一定要用Hadoop嗎? 筆者的回答是不一定,就好像現在SQL Database有Oracle、MySQL、MS SQL等,NoSQL Database有MongoDB、CouchDB等,永遠都有很多選擇。只是目前Hadoop是國際間處理大數據較為穩定的技術,國外近年的新創公司也都採用Hadoop協助企業做資料管理。

筆者認為只要掌握前面四級的資料湖泊成長模式,相信企業就可以很快掌握大數據的處理方向,至於使用什麼技術,技術的特性是什麼,下回再談。先讓我們一起迎接充滿數據的未來吧!

參考資料:




2014年9月25日 星期四

21個醫學影像分析的R軟體套件


筆者由於工作需要,所以整理了一下在R裡面有關醫學影像分析(Medical Image Analysis)的技術,純粹供有需要的朋友們參考。小弟不是醫學影像專家,若有敘述錯誤,請不吝指正,謝謝。

第一個部分跟醫療數位影像傳輸協定(Digital Imaging and Communications in Medicine 簡稱DICOM)有關。DICOM是針對醫學領域所制訂的一種通訊規格,該規格把一般的影像包成一個物件IOD(Information Object Definition),有點像是XMLJSON格式,主要把影像分為兩大部分,像素資料與影像屬性。


2014年8月31日 星期日

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

8/30~8/31於中央研究院舉辦的「2014 台灣資料科學愛好者年會」告一段落。
順手整理這兩天的精彩文章、演講與課程的簡報給大家參考!
共8篇文章、16份簡報、6場R課程簡報。



2014年7月10日 星期四

大數據探索航空資料系列-達美航空

Logo/達美航空、攝影/Jerry

繼續本系列主題,本次介紹的應用是來自達美航空(Delta Air Lines),達美航空在這幾年扶搖直上,於2010年完成跟西北航空合併之後,成為全世界航線里程與客運機隊規模最大的航空公司。

這篇文章是2014年由SapientNitro廣告公司的數據分析師Myles Harrison所分享的文章,介紹它應用主成分分析(Principal Component Analysis)與K平均算法(k-means)去分析達美航空的飛機數據。


2014年2月28日 星期五

13個必學的R軟體指令

整理列出常用的指令

GitHub網址:
https://github.com/rippleblue/Blog_R_code/blob/master/Useful%20functions.R


計算物件的長度
length(object)

計算物件維度
dim(object)

檢視物件架構
str(object)

檢視物件格式,有向量、矩陣、字元等
class(object)

檢視物件的名稱
names(object)

建立向量
c(object,object...)

以行的方式合併物件
cbind(object,object...)

以列的方式合併物件
rbind(object,object...)

印出物件
object

檢視物件最前面的資料
head(object)
head(object,10) #可檢視前10筆

檢視物件最後面的資料
tail(object)

列出環境目前有的物件
ls()

刪除單一物件或全部物件
rm(object)
rm(list = ls())

2013年12月18日 星期三

【R軟體】基本數學函數指令

這邊將一些在R裡面的基本數學函數指令整理如下,供大家方便查閱,也放在GitHub:


功能:絕對值(Absolute value)
指令:abs(x)
範例:abs(-8) 得到 8

功能:平方根(Square root)
指令:sqrt(x)
範例:sqrt(25) 得到 5

功能:四捨五入
指令:ceiling(x)
範例:ceiling(3.475) 得到 4

功能:無條件捨去
指令:floor(x)
範例:floor(3.475) 德到 3

功能:無條件捨去
指令:trunc(x)
範例:trunc(8.5355)  得到 8

功能:去掉小數的部分且進位
指令:round(x, digits=n)
說明:其中n為設定留下的位數
範例:round(3.855, digits=2) 得到 3.86

功能:去掉小數的部分且進位
指令:signif(x, digits=n)
說明:其中n為設定捨掉的位數
範例:round(3.855, digits=2) 得到 3.9

功能:餘弦(Cosine)、正弦(Sine)、正切(Tangent)
指令:cos(x)、sin(x)、tan(x)

功能:餘切(Cotangent)、正割(Secant)、餘割(Cosecant)
指令:cot(x)、sec(x)、csc(x)
說明:需要先安裝套件(pracma),才能使用。

功能:反餘切(Arc-cotangent)、反正割(Arc-secant)、反餘割(Arc-cosecant)
指令:acot(x)、acec(x)、acsc(x)

功能:反餘弦(Arc-cosine)、反正弦(Arc-sine)、反正切(Arc-tangent)
指令:acos(x)、asin(x)、atan(x)

功能:雙曲餘弦(Hyperbolic cosine)、雙曲正弦(Hyperbolic sine)、雙曲正切(Hyperbolic tangent)
指令:cosh(x)、sinh(x)、tanh(x)

功能:反雙曲餘弦(Hyperbolic arc-cosine)、反雙曲正弦(Hyperbolic arc-sine)、反雙曲正切(Hyperbolic arc-tangent)
指令:acosh(x)、asinh(x)、atanh(x)

功能:對數
指令:log(x)、log10(x)

功能:指數
指令:exp(x)



2013年 兩岸資料科學家職缺

最近玩資料庫、資料探勘、分散式運算,有志成為資料科學家、巨量資料專家的朋友們有福了,以下為2013年12月份筆者收集關於這行的職缺,這些職缺的薪水隨著資料的成長水漲船高,部分職缺薪水已經可以媲美早期的科技新貴。

為了方便大家閱讀,已將薪水轉換為台幣,並依照薪水排序。

招募公司:金电联行(北京)
工作地點:北京
月薪:1,128,000元
網址:http://www.wealink.com/zhiwei/view/15389767/

招募公司:SuccessFactors(台灣分公司)
工作地點:台灣
月薪:235,000元
網址:http://www.wealink.com/zhiwei/view/4483392/

招募公司:NTT DATA(北京分公司)
工作地點:北京
月薪:235,000元
網址:http://www.wealink.com/zhiwei/view/16341665/

招募公司:Amazon(北京分公司)
工作地點:北京
月薪:211,600元
網址:http://www.wealink.com/zhiwei/view/13896177/

招募公司:Teradata(台灣分公司)
工作地點:台灣
月薪:197,400元
網址:http://www.wealink.com/zhiwei/view/16489605/

招募公司:新東方教育科技集團
工作地點:北京
月薪:188,000元
網址:http://www.wealink.com/zhiwei/view/17733552/

招募公司:Gogolook(WhosCall)
工作地點:台灣
月薪:100,000元
網址:http://www.ptt.cc/bbs/Soft_Job/M.1380274016.A.55D.html

招募公司:安居客(內地第一房地產租售平台)
工作地點:上海
月薪:94,000元
網址:http://www.wealink.com/zhiwei/view/18388892/


12月截止目前,資料科學家在內地的薪水平均月薪在20W上下,台灣本地約在10W上下。




2013年12月17日 星期二

2013 R Taiwan 研討會小記

小記一下心得,近期於12月6日(星期五)在德明財金科技大學舉辦的2013 R Taiwan 研討會,算是臺灣在R這塊領域比較盛大的活動之一,現場有來自內政部、中研院、工研院、資策會、環保署、中央大學、台達電、統一集團、台大醫院、榮總、仁寶......等產、官、學單位,一同齊聚了解關於R軟體在資料分析的最新趨勢。

































筆者估算這次活動超過百人參與,現場可以說是座無虛席,可以媲美中國的R語言會議
這次的演講主題所邀請的講師有淡江大學的吳漢銘博士主講VisFuzClust:Visualization of fuzzy clustering results in R、英國Mango Solutions資深顧問李艦主講中文文字資料探勘、中研院陳昇瑋博士主講資料科學家未曾公開之資安研究事件簿,但陳博士後來沒按表訂的題目演講,而是分享許多在資料分析研究上有趣的事情,像是魔獸世界WhosCall,可以說是非常的精彩。













講到WhosCall就不能不提到關於他們振奮人心事情,這些事情讓台灣新創團隊有如吃下定心丸一樣勇往前進,相關事件如下:

  1. LINE花逾3億買台灣whoscall
  2. 台灣《WhosCall》開發商加入LINE家族
  3. 為什麼 NAVER 砸 3 億買台灣團隊 Gogolook?
當然他們也很重視資料分析,於是也有在找會寫R的資料科學家(Data Scientist)


下午的講題也非常的豐富,講題有High Performance Predictive Analytics in R and Hadoop、Social Network Analysis With R、Sentiment, Market Order Choice, and Returns、iNEXT: An R package for interpolation and extrapolation species diversity、R for finding the non-dominated rules in multi-objective optimization、藉由歐盟F4K計畫來探討2011年墾丁核三廠入水口之熱帶魚行為分析、工作相依性與自我效能對工作滿意度的中介效果分析-以工作複雜度及社會支持為調節變數、智慧用電Big Data 分析平台、ggplot2 繪圖套件介紹結合群集之多目標微粒群演算法、以非凌越排序基因演算法探討永續存貨管理、以文字資料探勘研究新技術趨勢,有近年流行的文字探勘(Text mining)RHadoop,以及R應用的案例。


近年來RPythonHadoop應用在巨量資料已經是一門顯學,有許多企業紛紛在找尋屬於他們產業的資料科學家,因此巨量資料與資料科學家的相關課程也一個個開,請參閱2013台灣巨量資料、資料科學家等相關課程,而明年可以說是資料科學的元年,有許多的資料科學的議題會相繼出現,讓我們一起期待吧!

R研討會後記:

  1. 當天簡報下載
  2. 活動剪影


2013年11月6日 星期三

2013資料科學家書籍學習清單

最近一直有朋友詢問,如果想當資料科學家,有沒有相關的書籍可以提供修讀。於是這邊整理一些清單如下,包含一些個人推薦書籍,歡迎大家一起推薦書籍:

資料探勘書籍(Data Mining Books)
Data Mining Techniques: For Marketing, Sales, and Customer Relationship Management
Data Mining: Concepts and Techniques, Third Edition
Handbook of Statistical Analysis and Data Mining Applications
Introduction to Data Mining
Contrast Data Mining: Concepts, Algorithms, and Applications
Principles of Data Mining
Data Mining: Introductory and Advanced Topics
A First Course in Machine Learning

工具書籍(Tool Books)
R in a Nutshell
Data Mining with R: Learning with Case Studies
R Cookbook
R Graphics Cookbook
R in Action: Data Analysis and Graphics with R
Introductory Statistics with R
R by Example
Software for Data Analysis: Programming with R
Interactive and Dynamic Graphics for Data Analysis: With R and Ggobi
Data Mining: Practical Machine Learning Tools and Techniques, Third Edition

資料庫書籍(Database Books)
Database Systems
Database Systems: A Practical Approach to Design, Implementation and Management (5th Edition)
Database Management Systems
User Interface Design for Mere Mortals™
Beginning Database Design

資料倉儲書籍(Data Warehousing Books)
Building the Data Warehouse
The Data Warehouse Lifecycle Toolkit
The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling
Mastering Data Warehouse Design: Relational and Dimensional Techniques
Data Warehouse and Business Information Quality

資料視覺化(Data visualization)
Visualizing Data




  • 持續更新中.......

2013年5月20日 星期一

【R軟體】R與MySQL的結合

最近的小案子需要R從MySQL取資料做運算,然後丟回去MySQL。
這邊記錄一下語法,測試環境為Windows。

GitHub:https://github.com/rippleblue/Blog_R_code/blob/master/Mysql%20and%20R.R

第一步先安裝與設定好

  1. mysql-connector-odbc  
  2. appserv
  3. R (2.15.1)
  4. RODBC


第二步在R中執行下面指令


library(RODBC)
odbcConnect("number",uid="root",pwd="12345")
建立連線

sqlSave(channel, USArrests, rownames = "state", addPK=TRUE)
丟USArrests資料集到MySQL,這時候就會看有資料表在MySQL中了

sqlFetch(channel, "USArrests", rownames = "state")
確認資料庫的資料

foo <- cbind(state=row.names(USArrests), USArrests)[1:3, c(1,3)]
foo[1,2] <- 222
資料做運算

sqlUpdate(channel, foo, "USArrests") 更新資料表,foo:剛運算的內容,USArrests:為更新的表
sqlDrop(channel, "USArrests") 刪除資料表
close(channel)關閉連線


2012年9月16日 星期日