SlideShare a Scribd company logo
Python 實戰資料科學工作坊
丘祐瑋 – David Chiu
EMAIL: david@largitdata.com
網站: www.largitdata.com
電話: +886929094381
關於我
• 大數軟體有限公司創辦人
• 前趨勢科技工程師
• ywchiu.com
• 大數學堂
http://www.largitdata.com/
• 粉絲頁
https://www.facebook.com/largitdata
• R for Data Science Cookbook
https://www.packtpub.com/big-data-and-business-
intelligence/r-data-science-cookbook
• Machine Learning With R Cookbook
https://www.packtpub.com/big-data-and-business-
intelligence/machine-learning-r-cookbook
Machine Learning With R Cookbook (機器學習與R語言
實戰) & R for Data Science Cookbook
Author: Yu-Wei (David) Chiu
課程資料
本日課程資料放置在:
https://github.com/ywchiu/largitdata/blob/ma
ster/20170721Speech/house_591.ipynb
什麼是資料科學?
python 實戰資料科學工作坊
python 實戰資料科學工作坊
從資料鑒往
從資料知來
使用資料擬定策略
大資料系統應用案例
https://www.youtube.com/watch?v=FQr2nVvkLzc
打卡地點分析
資料科學家主要工作內容
“80% 都在做加總與平均”
工作內容
資料處理 (Data Munging)
資料分析 (Data Analysis)
詮釋結果 (Interpret Result)
真正能用在資料分析
的時間很少,必須要
能善用工具
資料分析語言
資料分析語言
Python 語言
Python 語言
動態語言 (Dynamic Language)
• 於執行時期(Runtime)執行程式碼 (不用編譯)
• Dynamic Type: 函式與變數都不需要宣告類型
直譯式語言 (Interpreted Language)
每次執行後可以直接看到結果
物件導向語言 (OOP)
可執行於多平臺 (Python VM)
Guido van Rossum – Python 之父
Python 無所不在
Python 簡單易用
R v.s. Python
下載Python
https://www.continuum.io/downloads
Jupyter Notebook
點選Jupyter Notebook
(或 Jupyter Notebook)
或在Anaconda Prompt 下打入
Jupyter notebook
Jupyter Notebook
•
•
•
•
•
常用熱鍵
Shift + Enter
執行該Cell 後新增Cell
解構! 探討資料科學流程
大資料系統應用案例
https://www.youtube.com/watch?v=FQr2nVvkLzc
打卡地點分析
任務: 我要當包租公
https://rent.591.com.tw/new/?kind=1&region=1&section=5
資料科學步驟
資料搜集
資料清理
資料儲存
資料分析
數據視覺化
資料搜集
結構化資料
• 每筆資料都有固定的欄位、固定的格式,方便程式進行後續取用與分析
• 例如:資料庫
半結構化資料
• 資料介於結構化資料與非結構化資料之間
• 資料具有欄位,也可以依據欄位來進行查找,使用方便,但每筆資料的欄位
元可能不一致
• 例如:XML, JSON
非結構化資料
• 沒有固定的格式,必須整理以後才能存取
沒有格式的文字、網頁數據
如何搜集網頁資料
網路爬蟲
請求 Request
回應 Response
網頁網頁連結器
Web Connector
資料剖析
Data Parser
資料中心
Data Center
使用開發人員工具
點選檢查
於網頁上點選右鍵 -> 檢查
觀察HTTP 請求與返回內容
1. 選擇 Network 頁簽
2. 點選 Doc
3. 點選 連結
半結構化資料
XML JSON
撰寫一隻網路爬蟲
import requests
url =
'https://rent.591.com.tw/home/search/rsList?is_new_l
ist=1&type=1&kind=1&searchtype=1&region=1&section=5&
firstRow=60&totalRows=571'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64;
x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/59.0.3071.115 Safari/537.36'
}
res = requests.get(url , headers = headers)
res.json()
資料科學步驟
資料搜集
資料清理
資料儲存
資料分析
數據視覺化
資料清理二三事
• 資料篩選
• 偵測遺失值
• 補齊遺失值
• 資料轉換
• 處理時間格式資料
• 重塑資料
• 學習正規運算式
• …
80% 的時間都在清理資料
使用Pandas 清理資料
Python for Data Analysis
• 源自於R
• Table-Like 格式
• 提供高效能、簡易使用的資料格式(Data Frame)讓使用者
可以快速操作及分析資料
使用Pandas 將資料整理成表格
import pandas
df = pandas.DataFrame(jd['data']['data'])
df = df[['address', 'floor', 'allfloor',
'layout','area', 'price','browsenum_all']]
df.head()
使用Pandas 清理資料
抓取房、廳、衛等資訊
df[['layout_bedroom', 'layout_livingroom',
'layout_bathroom']] = df['layout'].str.extract('(d+)
房(d+)廳(d+)衛', expand=False)
轉換價格資料
df['price'] = df['price'].map(lambda e:
int(''.join(e.split(','))))
結構化資料
• 資料有固定的欄位與格式
例如:資料庫表格中所存放的資料
• 可以下SQL 處理與撈取資料
select * from renthouse;
資料科學步驟
資料搜集
資料清理
資料儲存
資料分析
數據視覺化
使用Pandas 匯出資料
將資料存進Excel
df.to_excel('house591.xlsx')
關聯式資料庫
安全存儲、管理資料
• 有效管理磁片上的資料
保持資料的一致性
可以透過標準模型整合資料
• 使用SQL 運算資料
使用Pandas 存資料到資料庫中
將資料存進SQLIte
import sqlite3
with sqlite3.connect('house.sqlite') as db:
df.to_sql('renthouse', con = db)
從SQLite 讀取資料
with sqlite3.connect('house.sqlite') as db:
df2 = pandas.read_sql_query('select * from
renthouse', con = db)
df2.head()
資料科學步驟
資料搜集
資料清理
資料儲存
資料分析
數據視覺化
統計
日常生活中常需要根據不完整的資訊做決定
統計可以把不確定的程度量化,用精確的方式來表
達,掌握不確定的程度
統計學的目的
• 分析資料,將資料做出摘要
• 做出更好的決定
• 辨識出能提升做每件事的效果
• 評估決策或事項的效用
敘述性統計 v.s. 推論性統計
敘述性統計
• 有系統的歸納資料,瞭解資料的輪廓
• 對數據樣本做敘述性陳述,例如:平均數、標準
差、 計次頻率、百分比
• 對數據資料的圖像化處理,將資料摘要變為圖表
推論性統計
• 資料模型的建構
• 從樣本推論整體資料的概況
• 相關、回歸、 單因數變異數、因素分析
取得敘述性統計
df.describe()
排序資料
df.sort_values(['price'], ascending=False).head()
機器學習
機器學習的目的是:歸納(Induction)
• 從詳細事實到一般通論
A computer program is said to learn from experience E with
respect to some task T and some performance measure P,
if its performance on T, as measured by P, improves with
experience E -- Tom Mitchell (1998)
找出有效的預測模型
• 一開始都從一個簡單的模型開始
• 藉由不斷喂入訓練資料,修改模型
• 不斷提升預測績效
機器學習
監督式學習 (Supervised Learning)
• 回歸分析 (Regression)
• 分類問題 (Classification)
非監督式學習 (Unsupervised Learning)
• 降低維度 (Dimension Reduction)
• 分群問題 (Clustering)
畫出散佈圖
%pylab inline
df[['price', 'area']].plot(kind='scatter', x =
'area', y = 'price', figsize=[10,5])
建立迴歸模型
from sklearn.linear_model import LinearRegression
y= df['price']
X = df[['area']]
regr = LinearRegression()
regr.fit(X,y)
print('Coefficient:{}'.format(regr.coef_) )
print('Intercept:{}'.format(regr.intercept_) )
畫出迴歸線
plt.scatter(X,y, color="blue")
plt.plot(X, regr.predict(X), linewidth = 3, color =
"red")
plt.xlabel('area')
plt.ylabel('price')
機器學習判別方法
http://scikit-learn.org/stable/_static/ml_map.png
資料科學步驟
資料搜集
資料清理
資料儲存
資料分析
數據視覺化
人是視覺性的動物
這裡面有多少個 9?
資料視覺化的重要性
資料視覺化的重要性
1854 年,霍亂疫情爆
發,造成十天之內死了
五百多人
Dr. John Snow 將所有
病患的住家位置點在地
圖上,發現病例聚集在
一口井附近
拿破崙遠征俄國
資訊圖表的功能
Storytelling
向聽眾溝通已知資訊
Exploration
從資料中發現背後的事實
Tableau
https://public.tableau.com/s/
資料科學的學習資源與建議
大資料系統應用案例
https://www.youtube.com/watch?v=FQr2nVvkLzc
打卡地點分析
選擇你的武器
資工背景、寫過程式的人、對工程面不排斥者
Python 是你們的好選擇
數學統計背景者、或只想碰分析的人
R是你們的好選擇
懂商業邏輯者,但完全不想寫程式的人
SQL 與 視覺化工具(e.g. Tableau) 是好選擇
Cousera
https://zh-tw.coursera.org/
Kaggle
https://www.kaggle.com/
大數學堂
http://largitdata.com/
實踐是檢驗真理的唯一標準
• 資料科學的目的是讓你開始以資料做決策的依據,不是萬靈丹!
• 資料科學是工程+數學+領域知識的學問,沒辦法速成,也沒
有每個領域都通的資料科學家
• 放下你的微積分、高微課本,懂點數學是好的!但過於專注算
式,你可能會難以踏出第一步!
• 大資料的確很潮,但分析方法如果沒有改變,只是換湯不換藥!
更應該關注的是問題本身,而不是技術!
• 資料科學有很多面向, 你不用全能, 挑一個你喜歡(擅長)的位
置即可,只有團隊,沒有英雄!
EMAIL: david@largitdata.com
網站: www.largitdata.com
電話: 0929094381
THANK YOU

More Related Content

PDF
公開鍵暗号5: 離散対数問題
PDF
小學一年級語文知識工作紙:擴張句子(一)
PDF
小學二年級語文知識工作紙:排句成段(十三)
PDF
小學二年級語文知識工作紙:擴張句子(十八)
PDF
陳嘉陽教育概論整理上中下
PDF
人それぞれの競プロとの向き合い方
PPTX
AtCoder Beginner Contest 002 解説
PDF
小學三年級語文知識工作紙:擴張句子(十六)
公開鍵暗号5: 離散対数問題
小學一年級語文知識工作紙:擴張句子(一)
小學二年級語文知識工作紙:排句成段(十三)
小學二年級語文知識工作紙:擴張句子(十八)
陳嘉陽教育概論整理上中下
人それぞれの競プロとの向き合い方
AtCoder Beginner Contest 002 解説
小學三年級語文知識工作紙:擴張句子(十六)

What's hot (20)

PPTX
醫療品質獎實證醫學文獻查證臨床組金獎經驗分享 20170601
PDF
アルゴリズムのイメージを擬人化する
PDF
小學二年級語文知識工作紙:排句成段(八)
PDF
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
PPTX
AtCoder Beginner Contest 003 解説
PDF
小學四年級語文知識工作紙:重組句子(一)
PDF
CuPy解説
PDF
小學二年級語文知識工作紙:重組句子(四)
PDF
小學一年級語文知識工作紙:標點符號(十九)
PDF
競技プログラミングにおけるコードの書き方とその利便性
PDF
小學三年級語文知識工作紙:排句成段(九)
PDF
Indeedなう 予選B 解説
PDF
PDF
様々な全域木問題
PDF
Indeedなう B日程 解説
PDF
小學二年級語文知識工作紙:擴張句子(一)
PDF
小學三年級語文知識工作紙:標點符號(十)
PPTX
AtCoder Beginner Contest 004 解説
PDF
双対性
PDF
1. Python起步走
醫療品質獎實證醫學文獻查證臨床組金獎經驗分享 20170601
アルゴリズムのイメージを擬人化する
小學二年級語文知識工作紙:排句成段(八)
競プロは社会の役に立たない+ベンチャー企業の話 (NPCA夏合宿OB講演).pdf
AtCoder Beginner Contest 003 解説
小學四年級語文知識工作紙:重組句子(一)
CuPy解説
小學二年級語文知識工作紙:重組句子(四)
小學一年級語文知識工作紙:標點符號(十九)
競技プログラミングにおけるコードの書き方とその利便性
小學三年級語文知識工作紙:排句成段(九)
Indeedなう 予選B 解説
様々な全域木問題
Indeedなう B日程 解説
小學二年級語文知識工作紙:擴張句子(一)
小學三年級語文知識工作紙:標點符號(十)
AtCoder Beginner Contest 004 解説
双対性
1. Python起步走
Ad

Similar to python 實戰資料科學工作坊 (20)

PDF
無中生有 - 利用外部數據打造新商業模式
PDF
廣宣學堂Python金融爬蟲原理班 20170416
PPTX
洞見未來,用python 與 r 結合深度學習技術預測趨勢
PDF
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程
PDF
線上埋碼資料收集實作
 
PDF
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
PDF
Enterprise Data Lake in Action
PPT
自下而上的数据仓库构建方法
PDF
Practical Data Analysis in R
PDF
[系列活動] 手把手教你R語言資料分析實務
PDF
Practical data analysis in R: from data collection to data insight
PDF
Build 1 trillion warehouse based on carbon data
PDF
Log collection
 
PDF
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
PDF
Data Analyse Black Horse - ClickHouse
PDF
手把手教你 R 語言分析實務
PDF
給軟體工程師的不廢話 R 語言精要班
PPT
Hadoop与数据分析
PPTX
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
PPTX
1_MySQL_20220307_0328.pptx
 
無中生有 - 利用外部數據打造新商業模式
廣宣學堂Python金融爬蟲原理班 20170416
洞見未來,用python 與 r 結合深度學習技術預測趨勢
參考講義展示版-丘祐瑋-20170617-機器學習python入門者課程
線上埋碼資料收集實作
 
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
Enterprise Data Lake in Action
自下而上的数据仓库构建方法
Practical Data Analysis in R
[系列活動] 手把手教你R語言資料分析實務
Practical data analysis in R: from data collection to data insight
Build 1 trillion warehouse based on carbon data
Log collection
 
2015-05-20 製造業生產歷程全方位整合查詢與探勘的規劃心法
Data Analyse Black Horse - ClickHouse
手把手教你 R 語言分析實務
給軟體工程師的不廢話 R 語言精要班
Hadoop与数据分析
Track A-3 Enterprise Data Lake in Action - 搭建「活」的企業 Big Data 生態架構
1_MySQL_20220307_0328.pptx
 
Ad

More from David Chiu (8)

PDF
新聞 X 謊言 用文字探勘挖掘財經新聞沒告訴你的真相(丘祐瑋)
PDF
Data Analysis - Making Big Data Work
PDF
PyCon APAC 2014 - Social Network Analysis Using Python (David Chiu)
PPTX
Big Data Analysis With RHadoop
PDF
Social Network Analysis With R
PDF
Machine Learning With R
PPTX
R language tutorial
PPT
Hidden Markov Model & Stock Prediction
新聞 X 謊言 用文字探勘挖掘財經新聞沒告訴你的真相(丘祐瑋)
Data Analysis - Making Big Data Work
PyCon APAC 2014 - Social Network Analysis Using Python (David Chiu)
Big Data Analysis With RHadoop
Social Network Analysis With R
Machine Learning With R
R language tutorial
Hidden Markov Model & Stock Prediction

python 實戰資料科學工作坊