顯示具有 Data Analysis 標籤的文章。 顯示所有文章
顯示具有 Data Analysis 標籤的文章。 顯示所有文章

2016年6月21日 星期二

[Spark] 利用 Spark 將亂七八糟資料格式的 Fortigate Log 檔轉成關聯式資料

圖片來源:http://www.fastcompany.com/1842000/company-chaos-you-dont-know-youre-creating

不論資料多雜亂,在做資料分析之前,總是先要整理成關聯式資料,這一段一直是分析中最麻煩也最惱人的一段,特別是當資料量大的時候,其中可能問題又更多了.這次遇到的麻煩是要固定將機器每天的 Log 檔轉成關聯式資料,聽起來不難,是很常見的需求,但是看了資料格式之後整個傻眼.

這樣的格式麻煩點在:
  1. 非一般的資料格式: 既不是關聯式資料,也不是 Json 格式(真的很想打設計這種 log 出來的人),沒辦法輕易地整理.
  2. 分隔符號不固定: 雖然後面的資料是用 = 做為key和value分隔,但是前面四個欄位不是,表示資料要分開處理.
  3. 資料欄位內有空格: 如果預設用" "當做每個欄位的分隔符號,會在這些內部有空格的地方吃了大虧,所以要另外寫工具來區別這種情況.
  4. 每筆資料有的key不一致: 這是最麻煩的事.例如有些筆資料有 location 這個 key ,但是有些資料沒有...,連 null 都不給.所以就算你處理完上面三件事,每筆資料的欄位長度還是不一樣.

2015年12月18日 星期五

[Career] Why do you need a data science team instead of a single data scientist?

Why do you need a data science team instead of a single data scientist?

Photo credit: jsgraphicdesign via Visual hunt / CC BY-NC-SA
This article is also posted on ElasticMining

When we talk about data scientist, maybe there is a superhero-like person appearing in your mind, because you have read a lot of magazine articles or columns about what a magical model they designed and how much value they could bring for business. I must admit that data science is really charming for business. When data become a kind of resource, data scientist is considered as a gold miner and is expected to extract something valuable from the data. However, whoever thinks a data scientist could do this ALONE is wrong.

2015年12月11日 星期五

[Spark] Spark TW 2015年最後一場活動


2015年的最後一場,也是SparkTW成立一週年,特別有意義的場子.不用特別報名,但是晚來就只能坐地板了!
2015年底最強壓軸檔 -- 時間:12/16號(三)晚上 7:30 -- 地點:大安站燦坤旁資策會九樓

非常有榮幸邀請到在Kaggle以及業界都相當有經驗的Mark Peng大大來跟我們分享他在參與比賽時的寶貴經驗.

2015年8月12日 星期三

[閒聊] 資料科學家的日常(外傳)


前幾個禮拜過去同事想了解傳說中的資料科學家到底平常在做什麼事情.報章媒體總是喧嘩的好像有資料科學家就能把大便變成黃金,但是身材其中就覺得根本不是這麼回事,就跟一般工作一樣有一堆鳥事要處理,所有神奇的東西都是血汗換來的.

直接放上投影片內容:

相關閱讀:
[Python] 資料科學家的日常(一) Read Data
[Python] 資料科學家的日常(二) Clean Data-清理HTML標籤 l.html

2015年7月18日 星期六

[Python] 資料科學家的日常(二) Clean Data-清理HTML標籤

enter image description here
繼承上次提的Read Data,Read本身除了讀取之外也包含著閱讀的意思.當資料讀取進來前後,都要好好閱讀資料,決定之後的分析方向.通常把資料讀取進來後,就會進入清理資料的階段.Clean Data雖說是分析資料的基本功,但是當資料大到某種程度後,Clean Data也變成相當惱人而且很多坑的事情.

2015年7月12日 星期日

[Python] 資料科學家的日常(一) Read Data

enter image description here

        資料科學家這個名字在這兩年紅到發黑,好像透過大數據和資料科學家能夠變成預言家,還可以憑空幫公司賺進數倍利潤,本系列文章將以實例揭露所謂資料科學家平常在做的事情,打破各位對這個職業的幻想XD 這次示範的資料來源來自Pixnet辦的hackthon其中的spam(辨識垃圾文章)的資料.

2015年6月27日 星期六

[Python] Receiver operating characteristic (ROC) Curve 實作教學

enter image description here
        ROC Curve以及AUC(Area Under Curve)常被用來衡量預測模型的效果,但是因為之前不了解演算法只會套公式,所以趁空擋簡單實作了ROC演算法.

        ROC Curve主要是要將分類模型的效果視覺化,幫助研究人員選擇模型.ROC Curve適用於輸出為機率的分類(例如svm, logistic regression),計算在不同機率條件下,對於判斷結果的影響.

2015年6月23日 星期二

準確率(Precision)與召回率(Recall)


enter image description here

在評估預測模型好壞時,常用的到指標包括Precision, Recall, ROC Curve, AUC等等.但是先前唸書的時候,都只是傻傻背定義,對指標的實際意義沒有太多感觸,直到最近真正跑了幾個模型,開始認真的想要預測結果時,才更深入了解這幾個指標含義及精神.

2015年6月12日 星期五

[Python][教學] 網路爬蟲(crawler)進階實務 -- 頁中有頁(二)

enter image description here
上一回[Python][教學] 網路爬蟲(crawler)進階實務– 自動爬蟲(一)介紹了怎麼繼承已經寫好的CrawlSpider物件來達到根據規則自動爬網頁的效果,但是如果你要爬的分頁沒有特定的規則,或是只想抓取頁面中的特定連結又該如何處理呢?
例如我今天要抓這個網站的掛號資料可以透過網址比對找出類似的網址之後,再一層一層的解析這個表格:

2015年4月19日 星期日

[linux][教學] 用grep + awk+sed處理文字資料

enter image description here
資料來源:http://animals.oreilly.com/origin-of-species/
過去處理資料可能會使用像是R之類的工具,但是最近開始k些linux的指令後,認識了awk & sed,從此愛上他們.awk和sed是linux中處理使用串流方式處理字串的工具,特色是支援pipeline(亦即可以接其他資料來源,以及將處理完的資料丟給別人處理),正規表達式,而且速度極快!平常可以用awk & sed搭配像是grep等文字工具,來處理linux中的文件檔案(特別是log檔),做一些字串的篩選和判斷.這次將用網頁log資來作為範例.

2015年2月9日 星期一

[R] 推薦系統實作(Item Base)

圖片來源:http://betanews.com/2013/09/25/twitter-updates-magicrecs-recommendation-system-for-mobile-users/

承繼上一篇文章[R] 推薦系統實作(User Base) 這篇要介紹的是使用Item Base的角度來推薦使用者物品.

2015年2月7日 星期六

[R] 推薦系統實作(User Base)


推薦系統目的在於根據使用者個人化的特質,推薦使用者喜好的商品或廣告,其中最常使用的演算法為協同式過濾(collaborative filtering).協同式過濾是根據已知的消費行為或是客戶對於商品評價,來猜測客戶對於未購買或未評價的商品可能的評價.協同式過濾中,又以User-base以及Item-base為主要的評價方法.

2014年11月22日 星期六

[R] 當Text Mining專案完成度達到99%之後...


       先前接下了一個號稱完成度99%的專案,只剩下一個小bug解決好就可以上線...故事由真人真事改編.故事背景是有個利用R來做text mining(文本分析)的專案要上線,這個專案使用了tm package和segmentCN兩個標準的配備(可以參考:[R] TEXT MINING(文字探勘、文本分析練習)).原本剩下這1%的問題在於開發環境和上線環境不同,導致結果的不一致.這個問題在當初我就有寫篇專文[R] tm package version 0.6 大解析(text mining文字探勘套件)來處理這個問題(使用了非常瑣碎的爛方法...有更好的方法請跟我說Orz).今天的故事是從這邊接下去開始...

2014年11月13日 星期四

商業力 X 分析力 X 技術力 = 資料科學家三元素


        資料科學家是近幾年出現的名詞(但是實際上已經存在於好幾百年),像是這篇“搶佔2013全球最性感行業”,以及曾經寫過的“資料科學家 vs 資料工程師“,甚至很誇張的”美企業搶資料科學家,兩年資歷年薪上看30萬美元“,讓很多人對資料科學家抱持的不同的幻想,在一般介紹資料科學的投影片中,最常出現的是下面這張圖:

2014年11月9日 星期日

[Apache Spark][教學] 應用IDEA以及Scala於Spark程式開發(圖多)


        俗話說,工欲善其事,必先利其器,對於程式開發者來說,有個好的IDE介面絕對能大幅增加開發速度以及減少不必要的錯誤.先前在玩Spark的時候([Spark] 建立第一個RDD物件,體驗in Memory Computing的威力)是使用python,自然就是以Ipython notebook為首選,可以很方便的測試和操作RDD物件.但是因為Spark的原生語言其實是Scala,python在一些功能的支援上目前還趕不上Scala,所以目前選擇Scala作為開發Spark的主要工具.

2014年10月25日 星期六

[Python] K-means 分組 Script


        K-means是一種非監督式學習的分類方式,原理將向量空間中的點分成k群後,計算每個點到群組中心的距離,目的在於使點到群心的距離成為最小(參考資料:http://en.wikipedia.org/wiki/K-means_clusteringhttps://www.youtube.com/watch?v=aiJ8II94qck).K-means因為容易理解,所以業界中也很常使用,本篇主要不是講解演算法,而是利用python中的sikit-learn套件製作一個小程式,讓使用者可以輕鬆的使用k-means演算法.

2014年10月23日 星期四

[職涯] 舒緩學習焦慮--沒有沒有用的學習歷程


        我不知道有多少跟我一樣有學習焦慮,症狀就是覺得自己趕不上別人,有好多東西沒有學,但是學了之後又怕之後沒有用,常起處於焦慮狀態的人.這個禮拜一在Taiwan R User Group上聽到很多大大的學習歷程也是十分曲折,所以我也開始思考了自己過去的路徑.

2014年10月11日 星期六

[R] 相見太晚,回頭是岸,分析WOE和IV值的神器套件

        

        最近因為投入研究Spark,對於資料分析的東西比較沒時間琢磨,難得一個雙十假日又可以來體驗一下礦工的生活了.
        
        Data mining不管是用何種方式建立模型,從幾百個變項中選出幾個候選變項往往是整個資料採掘過程最耗人的一個過程,實務上常使用WOE和IV用於變項篩選和分析(特別是信用評分卡模型),並透過WOE將原始資料離散化並取代後放入logistic模型中進行二分變項(結果只有0或1)的分析.

2014年9月20日 星期六

[R] tm package version 0.6 大解析(text mining文字探勘套件)

        有在玩text mining的同好,最近不知道有沒有碰過類似的問題,就是很多以前用tm套件的程式跑不出來或有問題(先前文章[R] TEXT MINING(文字探勘、文本分析練習)就有使用這個套件)。這是因為tm套件在今年的6/1號升級到了0.6版(http://cran.r-project.org/web/packages/tm/index.html)改變了包裝corpus的方式(http://cran.r-project.org/web/packages/tm/news.html)很多東西都必須rebuild才能正常運作(其實這也是我個人的血淚經驗).


2014年9月13日 星期六

[R] 讀取大資料檔的效率比較:read.table vs freed


        最近在玩Kaggle(https://www.kaggle.com/)上的資料,還沒開始分析就碰到了問題:檔案太大讀不進來.原始檔案約11G的CSV檔,我的電腦只有8g(ram),而R的特性偏偏又是要將檔案讀到記憶體中做運算,根本無法進入下一步.