Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

從統計到資料科學

資料科學家被譽為是二十一世紀最性感的職業,那麼資料科學家都在做甚麼?怎樣的人最適合進入資料科學的領域?

  要當一位出色資料科學家應該具備那些技能,像 R, python, SQL, Spark, NoSQL, Maching Learning, Deep Learning, Linux, ...,這麼多林林總總的工具,該怎麼學又該先學哪些,而更大的問題是大資料到底從哪裡得來?這裡將分享一位統計小菜鳥,是如何誤打誤撞的撞進了資料科學,又一步一步成為資料科學家的心路歷程。

  • Login to see the comments

從統計到資料科學

  1. 1. ■ SWPC ■ Terence, Huang ■ 2017/05/25 從統計到資料科學
  2. 2. 自我介紹 2 學經歷 緯創資通 高級工程師 (2015/3 ~) 長庚醫院 研究助理 (2013/9 ~2014/11) 中山大學 應數系統計碩士 (2011/9 ~ 2013/7) 高雄師大 數學系學士 (2005/9 ~ 2009/7) 獲獎 2017 台南智慧黑客松智慧醫療組第二名 2012 中山高大統計新秀 Terence Huang
  3. 3. Data Scientist 3 • 《哈佛商業評論》宣布,「Data Scientist,資料科學 家」是二十一世紀最性感的職業。 • 所謂性感,既代表著難以名狀的誘惑,又說明了大家都 不知道它幹的是什麼 • 統計知識 + 科學經驗 + 工程經驗 = 資料科學家
  4. 4. 1. 資料科學家的分析工具是? 2. 資料大到 Excel 開不了? 3. 資料格式長的好奇怪!!? 資料大到一台電腦存不下? 4. 資料大到一台電腦算不下? 5. 式子太複雜算太久? 6. 資料在哪裡? 7. 如何和別人一起寫程式? 8. Example → R, python → SQL → JSON, XML NoSQL → Spark → Deep Learning & GPU → Crawler → Github Outline 4
  5. 5. 資料科學家的分析工具是? 5
  6. 6. R v.s. Python 6 網路上很多比較文了 自己爬文吧
  7. 7. R v.s. Python 7 時機 Statistical Analysis Computer Science 優點 畫圖超方便 膠水語言真不是蓋的 抱怨 結構很醜很 Geek 有些套件超難裝的
  8. 8. 資料大到 Excel 開不了? 8
  9. 9. SQL, Structure Query Language 9 • SQL:用於資料庫中的標準資料查詢語言 CREATE TABLE new SELECT t1.id, t1.age, t1.sex, t2.income FROM old_A as t1, old_B as t2 WHERE t1.id = t2.id
  10. 10. SQL, Structure Query Language 10 • 常見的 SQL Database – Postgres SQL + pgadmin (GUI) – MySQL + workbench (GUI) • 真的不想裝 Database (見附錄) – SAS EG – Azure Machine Learning
  11. 11. SQL, Structure Query Language 11 • SQL 基礎上為 7 個指令,固定的輸入位置和執行順序 順序 位置 意義 1 CREATE 放新表格的名字 6 SELECT 選需要的變數 2 FROM 從那些表格得到資料,會牽涉到 JOIN 3 WHERE 條件式篩選資料,ex. 年紀 > 60 4 GROUP BY 分群計算,ex. 總和 5 HAVING 篩選分群計算的結果,ex. 總和 > 60 7 ORDER BY 排序資料
  12. 12. SQL, Structure Query Language 12 • Example: 從舊表格部分的欄位建立新表格 old_A id area age sex 1 S 5 male 2 N 20 female 3 S 30 male 4 S 10 female 5 N 60 male 6 E 90 female new id area 1 S 2 N 3 S 4 S 5 N 6 E
  13. 13. SQL, Structure Query Language 13 • Example: 從舊表格部分的欄位建立新表格 • A: – Note.選擇所有或指定 table 中所有的欄位 CREATE TABLE new SELECT t1.id, t1.area FROM old_A as t1 SELECT t1.*
  14. 14. SQL, Structure Query Language 14 • 資料科學家三大基本工具 • 當你學會了基本的指令後 請追求更快更簡潔更自動化的寫法
  15. 15. 資料格式長的好奇怪!!? 資料大到一台電腦存不下? 15
  16. 16. JSON & XML 16 • 除了用空白、逗號分開的 txt, csv, … 之外 • 還有 Key-Value 的存法 FirstName lastName Anna Clayton Alex Clayton Excel
  17. 17. JSON & XML 17 • 為什麼 Key-Value 的存法會流行起來 – 以大賣場的資料為例,用 csv 存起來
  18. 18. NoSQL, Not only SQL 18 • NoSQL: – 通常不會強制執行結構描述 – 會使用分區索引鍵來擷取值、欄集,或半結構化的 JSON、 XML 或其他包含相關項目屬性的文件 – 更靈活的水平擴展資料模型 但犧牲一些關聯式資料庫管理系統 (RDBMS) 的 ACID 屬性
  19. 19. NoSQL, Not only SQL 19 • NoSQL 資料儲存模型介紹 – Key-Value database Redis – Wide column database Cassandra、Hbase – Document database MongoDB – Graph database Neo4j
  20. 20. 資料大到一台電腦算不下? 20
  21. 21. Spark 21 Spark 的前身 Hadoop • HDFS 分散式檔案系統 • MapReduce 平行運算架構 Ref: 認識大數據的黃色小象幫手 –– Hadoop
  22. 22. Spark 22 Spark 的前身 Hadoop • HDFS 分散式檔案系統 – 叢集系統 (cluster system) – 一個機器老大 (Master Node) 用「NameNode」監視小弟 – 許多機器小弟 (Slave/Worker Node) 用「DataNode」放資料 – 資料分割成數小塊 (block) 每小塊拷貝成多份
  23. 23. Spark 23 Spark 的前身 Hadoop • MapReduce 平行運算架構 – Map (映射) + Reduce (歸納) – 類似於演算法中個別擊破 ie. 將問題分解成很多個 小問題之後再做總和
  24. 24. Spark 24 • 正式進入 Spark – Hadoop 再進化 – In memory 運算 (RDD/dataframe):運算速度快上100倍 – 降規回硬碟計算 (HDFS):運算速度快上10倍 – 更多的 MapReduce function – Spark SQL – 機器學習分析工具(MLlib) – 即時串流處理技術(Spark Streaming) – 定時/定量 的擷取小批次的串流資料,以排程能力來執行分析
  25. 25. 式子太複雜算太久? 25
  26. 26. Deep Learning & GPU 26 • 大部分的工具都是單核心單線程運算 – ex. R, python – 一個程式只用一個 CPU跑不到 0.1 秒,用不到多少資源 所有程式都在排隊 可以平行跑的也一樣 – 開大絕 把所有 CPU都拿下來用 – 了不起才 8 顆 – 所以類神經網路以前沒紅 因為跑太慢了…
  27. 27. Deep Learning & GPU 27 • 聽說顯示卡 (GPU) 是多核心運算,每顆都不強 但拿來算個簡單的線性方程式很夠了 • Nvida → CUDA – C → Caffe – Python → Theano → Keras → Tensorflow → Keras & Tflearn & Tensorlayer
  28. 28. Deep Learning & GPU 28 • CNN (Convolution Neural Network)
  29. 29. Deep Learning & GPU 29 • RNN (Recurrent Neural Network)
  30. 30. 資料在哪裡? 30
  31. 31. Crawler & Text & Image & … 31 • 網路、論壇、BBS 站、Dcard、…,都是資料來源 • 數字、文字、圖片、聲音、影像,都是可用資料 (只是可能要先轉成“類別””連續”變數) • 對著網頁按右鍵,“檢視網頁原始碼”給他點下去 (Ctrl + U, F12)
  32. 32. Crawler & Text & Image & … 32
  33. 33. Crawler & Text & Image & … 33 • Python – 自動爬蟲 Requests, selenium, scrapy – 網頁剖析 beautifulsoup • 文字分析 – Jieba – NLP: POS, named entity recognition, … – Text mining: BOWs, word2vec, LDA, … • 影像分析 – Registration, segmentation, … – ANTs, …
  34. 34. 如何和別人一起寫程式? 如何在網路上炫耀我的程式 34
  35. 35. Github 35 • GitHub:透過 Git 進行版本控制的軟體原始碼代管服務
  36. 36. Github 36 • GitHub:透過 Git 進行版本控制的軟體原始碼代管服務
  37. 37. 這麼多!!好難喔!!該學哪些?? 37
  38. 38. 38 • 忘記在哪聽過,要把資料科學該會的技能都學通 要…… 91 年
  39. 39. → 從股票下手 → 網路爬蟲 → Excel, SQL, NoSQL → Spark → y? x? 統計 → R CS, ML → python 1. 我想賺更多的錢,怎麼做? 2. 股票資料哪來? 3. 存在哪裡? 4. 資料更新的速度很快嗎?很大嗎? 5. 我要分析甚麼? Example 39
  40. 40. 你以為在 Windows 上都可以用嗎 40
  41. 41. Linux & VM, virtual machine 41 • 當聽到 Linux 這個單字時,你或許會想像一個滿臉鬍渣 的軟體工程師對著漆黑的螢幕輸入難解的程式碼 • 但很不幸的是,新技術一開始都只支援 Linux 和 Mac 等可以支援到 Windows,至少一年過去了 • 所以還是學一下 Linux 吧
  42. 42. Linux & VM, virtual machine 42 • Virtual machine – 在作業系統裡面再搞出一個作業系統 ex. 在 Win10 裡面跑 ubuntu – 不會影響到母系統 ex. 把 ubuntu 玩死了,砍掉重開一個就好 不過之前有備份的話,可以用之前備份
  43. 43. Linux & VM, virtual machine 43 • 如何開始 1. ubuntu16.04 + virtualbox 2. 叫終端機 (terminal) 出來 3. 裝裝 R, Postgres SQL 吧,遇到問題請拜 google 大神 Windows 下 搜尋 → CMD
  44. 44. • FB 社群 – 台灣資料科學同好交流區 – Python Taiwan – Kaohsiung Python User Group – GPU Taiwan Facebook • Taiwan R – Meetup:Taiwan R User Group / MLDM Monday (Taipei) – Youtube:TW use-R • 書, O'Reilly – Python:深入淺出程式設計, 深入淺出 Python – SQL:SQL 學習手冊 • 老師們和博班學長姐 學習資源 44
  45. 45. Road to Data Scientist 45
  46. 46. Q&A 46 Thank You!
  47. 47. SQL, Structure Query Language 47 • SAS Enterprice Guide – 不要執行 SAS 9.x,執行 SAS Enterprice Guide • 點選 File -> New -> Program 出現指令視窗 – 在頭尾給特定指令,中間區塊可輸 SQL 指令,不需轉換 • 頭: RROC SQL; • 尾: ;QUIT; – 執行後可直接看結果
  48. 48. SQL, Structure Query Language 48 • Azure Machine Learning
  49. 49. SQL, Structure Query Language 49 • Azure Machine Learning • 將 拖曳出來 – 點選左側 Data Transformation -> Manipulation – 在右側 SQL Query Script 視窗內輸入 SQL 指令 – 僅能從 3 張表格選取資料 (別名分為 t1, t2, t3)

×