Más contenido relacionado La actualidad más candente (20) 從統計到資料科學2. 自我介紹
2
學經歷
緯創資通 高級工程師 (2015/3 ~)
長庚醫院 研究助理 (2013/9 ~2014/11)
中山大學 應數系統計碩士 (2011/9 ~ 2013/7)
高雄師大 數學系學士 (2005/9 ~ 2009/7)
獲獎
2017 台南智慧黑客松智慧醫療組第二名
2012 中山高大統計新秀
Terence Huang
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
7. R v.s. Python
7
時機 Statistical Analysis Computer Science
優點 畫圖超方便 膠水語言真不是蓋的
抱怨 結構很醜很 Geek 有些套件超難裝的
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. SQL, Structure Query Language
10
• 常見的 SQL Database
– Postgres SQL + pgadmin (GUI)
– MySQL + workbench (GUI)
• 真的不想裝 Database (見附錄)
– SAS EG
– Azure Machine Learning
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. 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. SQL, Structure Query Language
13
• Example: 從舊表格部分的欄位建立新表格
• A:
– Note.選擇所有或指定 table 中所有的欄位
CREATE TABLE new
SELECT t1.id, t1.area
FROM old_A as t1
SELECT t1.*
16. JSON & XML
16
• 除了用空白、逗號分開的 txt, csv, … 之外
• 還有 Key-Value 的存法
FirstName lastName
Anna Clayton
Alex Clayton
Excel
18. NoSQL, Not only SQL
18
• NoSQL:
– 通常不會強制執行結構描述
– 會使用分區索引鍵來擷取值、欄集,或半結構化的 JSON、
XML 或其他包含相關項目屬性的文件
– 更靈活的水平擴展資料模型
但犧牲一些關聯式資料庫管理系統 (RDBMS) 的 ACID 屬性
19. NoSQL, Not only SQL
19
• NoSQL 資料儲存模型介紹
– Key-Value database
Redis
– Wide column database
Cassandra、Hbase
– Document database
MongoDB
– Graph database
Neo4j
22. Spark
22
Spark 的前身 Hadoop
• HDFS 分散式檔案系統
– 叢集系統 (cluster system)
– 一個機器老大 (Master Node)
用「NameNode」監視小弟
– 許多機器小弟
(Slave/Worker Node)
用「DataNode」放資料
– 資料分割成數小塊 (block)
每小塊拷貝成多份
24. Spark
24
• 正式進入 Spark
– Hadoop 再進化
– In memory 運算 (RDD/dataframe):運算速度快上100倍
– 降規回硬碟計算 (HDFS):運算速度快上10倍
– 更多的 MapReduce function
– Spark SQL
– 機器學習分析工具(MLlib)
– 即時串流處理技術(Spark Streaming)
– 定時/定量 的擷取小批次的串流資料,以排程能力來執行分析
26. Deep Learning & GPU
26
• 大部分的工具都是單核心單線程運算
– ex. R, python
– 一個程式只用一個 CPU跑不到 0.1 秒,用不到多少資源
所有程式都在排隊
可以平行跑的也一樣
– 開大絕
把所有 CPU都拿下來用
– 了不起才 8 顆
– 所以類神經網路以前沒紅
因為跑太慢了…
27. Deep Learning & GPU
27
• 聽說顯示卡 (GPU) 是多核心運算,每顆都不強
但拿來算個簡單的線性方程式很夠了
• Nvida → CUDA
– C → Caffe
– Python → Theano → Keras
→ Tensorflow → Keras & Tflearn & Tensorlayer
31. Crawler & Text & Image & …
31
• 網路、論壇、BBS 站、Dcard、…,都是資料來源
• 數字、文字、圖片、聲音、影像,都是可用資料
(只是可能要先轉成“類別””連續”變數)
• 對著網頁按右鍵,“檢視網頁原始碼”給他點下去
(Ctrl + U, F12)
33. Crawler & Text & Image & …
33
• Python
– 自動爬蟲 Requests, selenium, scrapy
– 網頁剖析 beautifulsoup
• 文字分析
– Jieba
– NLP: POS, named entity recognition, …
– Text mining: BOWs, word2vec, LDA, …
• 影像分析
– Registration, segmentation, …
– ANTs, …
39. → 從股票下手
→ 網路爬蟲
→ Excel, SQL, NoSQL
→ Spark
→ y?
x?
統計 → R
CS, ML → python
1. 我想賺更多的錢,怎麼做?
2. 股票資料哪來?
3. 存在哪裡?
4. 資料更新的速度很快嗎?很大嗎?
5. 我要分析甚麼?
Example
39
41. Linux & VM, virtual machine
41
• 當聽到 Linux 這個單字時,你或許會想像一個滿臉鬍渣
的軟體工程師對著漆黑的螢幕輸入難解的程式碼
• 但很不幸的是,新技術一開始都只支援 Linux 和 Mac
等可以支援到 Windows,至少一年過去了
• 所以還是學一下 Linux 吧
42. Linux & VM, virtual machine
42
• Virtual machine
– 在作業系統裡面再搞出一個作業系統
ex. 在 Win10 裡面跑 ubuntu
– 不會影響到母系統
ex. 把 ubuntu 玩死了,砍掉重開一個就好
不過之前有備份的話,可以用之前備份
43. Linux & VM, virtual machine
43
• 如何開始
1. ubuntu16.04 + virtualbox
2. 叫終端機 (terminal) 出來
3. 裝裝 R, Postgres SQL 吧,遇到問題請拜 google 大神
Windows 下
搜尋 → CMD
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
47. SQL, Structure Query Language
47
• SAS Enterprice Guide
– 不要執行 SAS 9.x,執行 SAS Enterprice Guide
• 點選 File -> New -> Program 出現指令視窗
– 在頭尾給特定指令,中間區塊可輸 SQL 指令,不需轉換
• 頭: RROC SQL;
• 尾: ;QUIT;
– 執行後可直接看結果
49. SQL, Structure Query Language
49
• Azure Machine Learning
• 將 拖曳出來
– 點選左側 Data Transformation -> Manipulation
– 在右側 SQL Query Script 視窗內輸入 SQL 指令
– 僅能從 3 張表格選取資料 (別名分為 t1, t2, t3)