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())

2014年1月31日 星期五

用巨量資料看春運:百度遷徙


每年春運一直是對岸逢年過節的熱門話題,而今年1月26日對岸百度首次以適地性服務 (Location Based Services簡稱LBS)技術,取得網民的移動資料,並整合百度地圖,以「百度遷徙」的主題,報導整個春運的狀況。

而本次也是對岸首次運用巨量資料(Big data)的概念來報導春運的運輸全貌,藉此我們也可以看到大數據在整個運輸政策、文化交流上,都有重要的發展意義。


首先我們可以從百度遷徙看到幾個功能「月份」、「時間」、「地點」、「遷入熱市」、「遷出熱市」、「最熱線路」,是整個查詢網站的主要功能。月份可以查詢1月16日起到整個春節時間,地點則可用文字搜尋城市,例如搜尋”上海”,即可了解上海的熱門遷入與遷出城市。

上面每個點代表一個城市,金黃色的線則表示動向,而右邊有1~10名的排序,方便我們觀察遷入與遷出的比例。以上海來說,1月29日除夕前一天早上10點,遷入的熱門省份為「江蘇」、「浙江」、「安徽」、「廣東」、「山東」、「江西」、「福建」、「河北」、「四川」、「湖北」。而遷出的熱門省份,也就是從上海移動到的省份為「江蘇」、「浙江」、「安徽」、「江西」、「湖北」、「廣東」、「山東」、「河南」、「臺灣」、「福建」。從上面的排名可以發現有趣的現象,遷入與遷出的省份前三名都不變,後面開始就有不一樣的事情發生,像是遷出有了臺灣,於是我們可以再點臺灣去看熱門的遷入遷出省份。


可從上圖發現,從各個省份要回家排名前六名的有「上海」、「香港」、「江蘇」、「北京」、「福建」、「江西」,這數據是否可以顯示「臺灣」與「上海」交流比「臺灣」與「北京」更活絡,從1月29日除夕前一天早上10點來講,這背後的意涵大家就可以自然衍生了。


另外一個角度是從台灣遷入過去的省份,如上圖排名前六包含「上海」、「香港」、「江蘇」、「北京」、「福建」、「江西」,從這裡是否也能觀察到旅遊業這塊的市場呢?

接著我們回到最首頁,可以看「遷入熱市」、「遷出熱市」、「最熱線路」,也可以觀察到許多某個時間點,對岸的人流動向。


像是遷入排名前三名為「北京」、「重慶」、「武漢」。


遷出排名前三名為「北京」、「上海」、「廣州」。


最熱門的線路為「成都到北京」、「北京到成都」、「上海到滁洲」,從上圖也可以觀察到對岸省份交流比較活絡的是「北京」與「成都」,遷入成都1,000人當中有249人來自北京,從成都遷出的1,000人,有329人來自北京。


還有幾個是對岸新聞報導上的一些資訊,供大家參考:
  • 1月9日鐵路訂票「12306網站」和手機端的總訪問量達84億次,相當於每個中國人都通過電腦或手機訪問了該網站6次多。
  • 1400萬人次使用支付寶搶票。
  • 北京流出的人口就集中在保定、邯鄲、石家莊、張家口、天津。
  • 截止目前為止中國手機網民達5億人口。

最後簡單做個結論,筆者從這個平台看到幾件事情:
  • 通常20%已經是大家都知道的事情,透過巨量資料我們反而可觀察到80%人流動向,也就是長尾理論的概念。
  • 兩岸旅遊業可透過這張圖了解市場,像是較具發展潛力的旅遊省份。
  • 兩岸運輸業透過這張圖了解運輸動脈,像是台灣過年間較愛飛的省份。
  • 可觀察到兩岸交流較為熱絡的城市,甚至是對岸在省份間較為熱絡的城市。
  • 商人也可以觀察哪個城市交流最為活絡。
  • 用大數據結合LBS的服務來看觀察運輸全貌。
  • 巨量資料帶來新聞傳播領域的一種新的概念,像是資料新聞學,透過資料來強化新聞報導內容。
當然整個平台還是有些資料視覺化設計上的小缺點,這邊筆者也把它記錄下來,以便日後碰到相關的案子可以查詢。

一些想法與建議:
  • 沒辦法查詢一天或某一個時段(如:下午六點到八點)的遷入與遷出比例。
  • 無法以時間序列的概念觀察到每個省份的流量。
  • 本平台PC採用Flash製作,瀏覽速度不夠流暢。
  • 本平台行動載具版本採靜態的方式呈現,無法做細部查詢





參考資料:
  1. 大數據裏看春運:實時地圖上的春運全景
  2. 百度遷徙顯示北京榆林張家口來包旅客多
  3. 百度遷徙地圖看大數據 網友大讚接地氣!
  4. 百度遷徙:透過大數據看春運

2014年1月9日 星期四

關於開房數據事件的啟示

最近資安事件頻傳,不只台灣遠通電收,在對岸最近也頻繁發生數據外洩的問題。
本篇筆者以對岸最近發生的「開房數據」為例,來分享從不同角度觀察得到的一些啟示。

開房數據事件的原由來自浙江慧達驛站,這一家專門協助飯店做IT系統的廠商,在102年10月份被發現該公司所開發的Wi-Fi認證伺服器中的數據庫遭外洩。而事實上中國的安全漏洞監測平台鳥雲網其實在102年8月已經發現此漏洞,並且通知慧達驛站,但已經來不及。

該事件的禍源在於,使用者進入酒店之後,使用酒店的Wi-Fi必須採用實名制進行提交認證,而該Wi-Fi認證伺服器需連到慧達驛站進行認證,因此有兩個漏洞造成數據外洩:

  1. 認證過程採用明文傳輸,使駭客有機可趁。
  2. 資料庫未做好安全措施,使駭客得以進行備份整個資料庫。

該事件發生後,駭客先將資料庫非法販售之後,102年10月駭客再將資料庫上網惡意散佈,造成數據庫在一個月內被下載22萬次,平均一天被下載1千7百次,損失慘重。

而除了前述兩大漏洞問題之外,筆者也認為還有下列問題:
  1. 資料庫的權限未做修改(還在使用資料庫預設權限)
  2. 資訊架構未做好妥善規劃(如:防火牆、網路)
  3. 資料庫傳輸未做好處理(如:重要資料需加密傳輸)
  4. 資料紀錄為做好規劃(如:資料依據加密等級分門別類置放)
所以最終造成兩千萬筆數據「裸奔」的悲劇。

受害的飯店名單如下:

包含多家酒店比如漢庭、如家、7天連鎖酒店、南苑e家、格林豪泰連鎖酒店、布丁酒店、杭州維景國際大酒店等。

以下為筆者所歸納與分享的一些觀察

首先我們可以看到近年來對岸數據裸奔事件也相當的頻繁,

【2010年】
「360」服務器事件,上千萬筆用戶資料於Google上被裸奔
【2011年】
開發者社區「CSDN」、同期包含天涯社區、京東商城、噹噹網、支付寶、新浪愛問遭攻擊、支付寶員工自行洩露,造成600萬~7000萬用戶資料被裸奔
【2012年】
「中國人壽」資料庫洩露,造成80萬筆投保數據被裸奔
【2013年】
酒店開房數據洩漏、腾讯QQ群資料庫洩漏、
高達2000萬(1.7G)筆~12億(90G)筆資料被裸奔

這幾年事件中可以看到數據洩漏的網站皆是電子商務網站居多,更甚者是支付寶的數據是由內部員工傳出,筆者不禁聯想,未來是否也會發生資料戰爭(Data of War)?!這值得警惕。

接著從「數據庫營銷」的角度來看,這次事件的發生,打開了許多數據庫的市場,從前也許只是玩玩Excel,但由於這次的數據較為龐大,Excel頂多開啟1百萬多筆,網路上開始有許多熱心人士發表開數據庫的打開方式,以及SQL的語法,更甚至有人教如何分析這些數據,從百度搜尋即可得知,如下圖所示:


                                    (圖)網路搜尋畫面

因此讓筆者聯想到整個數據庫營銷的流程,如下圖所示:


從行銷的角度來看就是「體驗行銷」,就像近年來的觀光工廠常常可以吃到、喝到特產,或是玩到特產的製作過程,這樣的體驗可以提升消費者的買氣。從數據庫來看也是,當消費者發現這資料很特殊但卻打不開,進而尋求解決方式時,他們就在體驗數據庫大小改變的流程,從一百萬筆到兩千萬筆,應用誘因進而創造數據庫市場。

接著從「資訊安全」的角度來看,我們可以發現未來的數據庫的管理,必須由網管人員與數據庫人員,甚至是數據科學家並肩作戰。幾點分享如下:

  1. 內網與外網的運用  (網管負責)
  2. 資訊服務架構 (網管負責)
  3. 數據流?(數據科學家負責)
  4. 數據庫權限?(數據庫人員負責)
  5. 數據庫安全設置?(數據庫人員負責)
但就筆者的了解,事實上除了資訊產業公司之外,一般傳統產業公司並不注意這些分工,也其實不重視資訊部門,在資源相對較少的情況下,進而導致許多資訊安全事件發生,因此從這些事件,大家必須重新省思資訊安全的重要性。

接著從「社會問題角度」來看這件事情,前面提到該數據庫被非法販售,筆者從網路訊息得知一筆為9角,換算後駭客利用該數據庫非法所得達2百萬人民幣。而駭客將數據庫賣到沒有價值之後轉而散佈,造成數據庫散播後,這些數據庫中的用戶飽受紛擾,如:
  1. 不明來歷的推銷廣告
  2. 不明來歷的短信、電話、傳真
  3. 微博、微信詐騙
尤其上海的數據在事件的數據庫牽涉最多,因此損失最為慘重。


最後從「法律角度」來看本問題,前面提到上海人損失最為慘重,所以事件發生後,有一名在上海從事10年資訊安全工作的白領王金龍像法院提出了訴訟,成為全國該事件的受害者中訴訟維權的第一人,王金龍向酒店、慧達驛站索賠20萬元。但由於對岸在洩漏個人資訊這塊的法律還是屬空白狀態,因此官司是否能打贏還是未知。

有對岸律師事務所指出,《刑法修正案(七)》刑法第253條雖然界定了具體的犯罪事實,但不含近年興起的網站發布者,且法條中規定需「情節嚴重」因此在洩漏定罪上難以界定,這也反映出對岸在個人資料的保護上有待改進。

好,前面從這麼多的角度看這件事情,大家應該很想知道該事件接下來的發展吧,因此筆者把事件條列如下:

2013年4月
  • A駭客入侵教育局取得學籍數據,大陸網警花了好幾個月仍查無頭緒
2013年10月
  • 多家酒店的開房記錄被從網絡上曝光,引起社會高度關注。
2013年11月
  • 網警大隊發現洩露開房數據的人與A駭客有密切聯繫。
2014年1月5日
  • 民警於四川涼山州將罪犯逮捕
  • 警方在駭客電腦中發現30億筆個人數據
    該事件在短短三個月內就破案,看來對岸對於該事件關注相當高。

最後筆者下個結論:

第一點

「數據就像兩面刃,用的好加分,用不好零分」雖然大數據能增加各家公司競爭力已經是事實,但面對大數據時代的潮流,大公司更要重視數據的「安全」,除了挹注資源給資訊部門,更要重視資訊人才的聘用與培養。

而新創公司更要注意數據安全,因為一旦類似事件發生,損失難以估計。

但千萬別因為擔心發生這些事情而因噎廢食,再也不碰大數據,這樣想法是錯誤的。因為我們知道企業內部進行數據開放,可增加跨部門間溝通與決策者管理的效率。而企業外部有效的數據開放也可以增加商業交流與企業競爭力(如:淘寶)。因此好好的保護資料才是上上道。

第二點

數據的開放可以打通任督二脈,促進血液循環,這幾次事件的發生讓對岸數據庫基礎知識有了提升,因為大家為了想了解數據庫內容,而開始學習使用SQL。接著對岸也開始對個資有了保護的意識,因為這次洩漏的資料實在過於詳細,且上海數據為最大宗,因此建立個資保護的相關法條對岸勢在必行。最後在資訊安全的部分,對岸各公司也相對開始提升相關資訊安全設備,以避免類似問題重蹈覆轍。

「人抓到了,數據回不來了」這是從該事件中筆者獲得的最大心得,由於數據可以被複製散佈分享,因此只要散佈出去,就可以被全世界的人任意使用,就會長期保留在網路上,難以收拾。希望從開房數據的案例中,我們能以此為借鏡,開始做好資料安全(Data security)的事情,避免造成無法收拾的悲劇。


參考資料:

  1. 網安出槌 陸20家酒店個資外洩
  2. 2000万开房数据泄露获法院受理 沪每17人中1人遭泄密
  3. 开房数据泄露案告破:人抓了,数据回不来了
  4. 法院受理开房数据泄露第一案
  5. 360泄密事件
  6. 2011年中國網站用戶信息泄露事件
  7. 中國人壽曝客戶信息泄露門
  8. 腾讯群关系数据泄漏 据QQ号可秒查用户姓名年龄
  9. 個資看透透 徐旭東變「全民公敵」?
  10. 遠通電收:非蓄意「牽拖」駭客
  11. 資料開放與個人隱私

2014年1月6日 星期一

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. 活動剪影