Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

python 實戰資料科學工作坊

7.639 Aufrufe

Veröffentlicht am

從AlphaGo在圍棋界的獨孤求敗,到Tesla無人車技術,當人工智慧的應用愈來愈成熟,成果愈來愈驚人,你是憂心未來的工作將被取代,還是已經決定迎接挑戰呢?
資料(data)革命的號角已經響起,無論如何,你都應該知道如何做好準備,而第一個該問的問題就是:我可以透過哪些途徑學習資料科學呢?

為了讓學員找到屬於自己的學習起點,本次工作坊將從常見的名詞解釋開始,說明資料科學到底是什麼,接著帶領學員使用Python解構資料科學流程,並從案例出發,學習將資料思維帶到生活。

Veröffentlicht in: Daten & Analysen
  • Als Erste(r) kommentieren

python 實戰資料科學工作坊

  1. 1. Python 實戰資料科學工作坊 丘祐瑋 – David Chiu EMAIL: david@largitdata.com 網站: www.largitdata.com 電話: +886929094381
  2. 2. 關於我 • 大數軟體有限公司創辦人 • 前趨勢科技工程師 • 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
  3. 3. Machine Learning With R Cookbook (機器學習與R語言 實戰) & R for Data Science Cookbook Author: Yu-Wei (David) Chiu
  4. 4. 課程資料 本日課程資料放置在: https://github.com/ywchiu/largitdata/blob/ma ster/20170721Speech/house_591.ipynb
  5. 5. 什麼是資料科學?
  6. 6. 從資料鑒往 從資料知來
  7. 7. 使用資料擬定策略
  8. 8. 大資料系統應用案例 https://www.youtube.com/watch?v=FQr2nVvkLzc 打卡地點分析
  9. 9. 資料科學家主要工作內容 “80% 都在做加總與平均” 工作內容 資料處理 (Data Munging) 資料分析 (Data Analysis) 詮釋結果 (Interpret Result) 真正能用在資料分析 的時間很少,必須要 能善用工具
  10. 10. 資料分析語言
  11. 11. 資料分析語言
  12. 12. Python 語言
  13. 13. Python 語言 動態語言 (Dynamic Language) • 於執行時期(Runtime)執行程式碼 (不用編譯) • Dynamic Type: 函式與變數都不需要宣告類型 直譯式語言 (Interpreted Language) 每次執行後可以直接看到結果 物件導向語言 (OOP) 可執行於多平臺 (Python VM)
  14. 14. Guido van Rossum – Python 之父
  15. 15. Python 無所不在
  16. 16. Python 簡單易用
  17. 17. R v.s. Python
  18. 18. 下載Python https://www.continuum.io/downloads
  19. 19. Jupyter Notebook 點選Jupyter Notebook (或 Jupyter Notebook) 或在Anaconda Prompt 下打入 Jupyter notebook
  20. 20. Jupyter Notebook • • • • • 常用熱鍵 Shift + Enter 執行該Cell 後新增Cell
  21. 21. 解構! 探討資料科學流程
  22. 22. 大資料系統應用案例 https://www.youtube.com/watch?v=FQr2nVvkLzc 打卡地點分析
  23. 23. 任務: 我要當包租公 https://rent.591.com.tw/new/?kind=1&region=1&section=5
  24. 24. 資料科學步驟 資料搜集 資料清理 資料儲存 資料分析 數據視覺化
  25. 25. 資料搜集 結構化資料 • 每筆資料都有固定的欄位、固定的格式,方便程式進行後續取用與分析 • 例如:資料庫 半結構化資料 • 資料介於結構化資料與非結構化資料之間 • 資料具有欄位,也可以依據欄位來進行查找,使用方便,但每筆資料的欄位 元可能不一致 • 例如:XML, JSON 非結構化資料 • 沒有固定的格式,必須整理以後才能存取 沒有格式的文字、網頁數據
  26. 26. 如何搜集網頁資料
  27. 27. 網路爬蟲 請求 Request 回應 Response 網頁網頁連結器 Web Connector 資料剖析 Data Parser 資料中心 Data Center
  28. 28. 使用開發人員工具 點選檢查 於網頁上點選右鍵 -> 檢查
  29. 29. 觀察HTTP 請求與返回內容 1. 選擇 Network 頁簽 2. 點選 Doc 3. 點選 連結
  30. 30. 半結構化資料 XML JSON
  31. 31. 撰寫一隻網路爬蟲 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()
  32. 32. 資料科學步驟 資料搜集 資料清理 資料儲存 資料分析 數據視覺化
  33. 33. 資料清理二三事 • 資料篩選 • 偵測遺失值 • 補齊遺失值 • 資料轉換 • 處理時間格式資料 • 重塑資料 • 學習正規運算式 • … 80% 的時間都在清理資料
  34. 34. 使用Pandas 清理資料 Python for Data Analysis • 源自於R • Table-Like 格式 • 提供高效能、簡易使用的資料格式(Data Frame)讓使用者 可以快速操作及分析資料
  35. 35. 使用Pandas 將資料整理成表格 import pandas df = pandas.DataFrame(jd['data']['data']) df = df[['address', 'floor', 'allfloor', 'layout','area', 'price','browsenum_all']] df.head()
  36. 36. 使用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(','))))
  37. 37. 結構化資料 • 資料有固定的欄位與格式 例如:資料庫表格中所存放的資料 • 可以下SQL 處理與撈取資料 select * from renthouse;
  38. 38. 資料科學步驟 資料搜集 資料清理 資料儲存 資料分析 數據視覺化
  39. 39. 使用Pandas 匯出資料 將資料存進Excel df.to_excel('house591.xlsx')
  40. 40. 關聯式資料庫 安全存儲、管理資料 • 有效管理磁片上的資料 保持資料的一致性 可以透過標準模型整合資料 • 使用SQL 運算資料
  41. 41. 使用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()
  42. 42. 資料科學步驟 資料搜集 資料清理 資料儲存 資料分析 數據視覺化
  43. 43. 統計 日常生活中常需要根據不完整的資訊做決定 統計可以把不確定的程度量化,用精確的方式來表 達,掌握不確定的程度 統計學的目的 • 分析資料,將資料做出摘要 • 做出更好的決定 • 辨識出能提升做每件事的效果 • 評估決策或事項的效用
  44. 44. 敘述性統計 v.s. 推論性統計 敘述性統計 • 有系統的歸納資料,瞭解資料的輪廓 • 對數據樣本做敘述性陳述,例如:平均數、標準 差、 計次頻率、百分比 • 對數據資料的圖像化處理,將資料摘要變為圖表 推論性統計 • 資料模型的建構 • 從樣本推論整體資料的概況 • 相關、回歸、 單因數變異數、因素分析
  45. 45. 取得敘述性統計 df.describe()
  46. 46. 排序資料 df.sort_values(['price'], ascending=False).head()
  47. 47. 機器學習 機器學習的目的是:歸納(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) 找出有效的預測模型 • 一開始都從一個簡單的模型開始 • 藉由不斷喂入訓練資料,修改模型 • 不斷提升預測績效
  48. 48. 機器學習 監督式學習 (Supervised Learning) • 回歸分析 (Regression) • 分類問題 (Classification) 非監督式學習 (Unsupervised Learning) • 降低維度 (Dimension Reduction) • 分群問題 (Clustering)
  49. 49. 畫出散佈圖 %pylab inline df[['price', 'area']].plot(kind='scatter', x = 'area', y = 'price', figsize=[10,5])
  50. 50. 建立迴歸模型 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_) )
  51. 51. 畫出迴歸線 plt.scatter(X,y, color="blue") plt.plot(X, regr.predict(X), linewidth = 3, color = "red") plt.xlabel('area') plt.ylabel('price')
  52. 52. 機器學習判別方法 http://scikit-learn.org/stable/_static/ml_map.png
  53. 53. 資料科學步驟 資料搜集 資料清理 資料儲存 資料分析 數據視覺化
  54. 54. 人是視覺性的動物
  55. 55. 這裡面有多少個 9?
  56. 56. 資料視覺化的重要性
  57. 57. 資料視覺化的重要性 1854 年,霍亂疫情爆 發,造成十天之內死了 五百多人 Dr. John Snow 將所有 病患的住家位置點在地 圖上,發現病例聚集在 一口井附近
  58. 58. 拿破崙遠征俄國
  59. 59. 資訊圖表的功能 Storytelling 向聽眾溝通已知資訊 Exploration 從資料中發現背後的事實
  60. 60. Tableau https://public.tableau.com/s/
  61. 61. 資料科學的學習資源與建議
  62. 62. 大資料系統應用案例 https://www.youtube.com/watch?v=FQr2nVvkLzc 打卡地點分析
  63. 63. 選擇你的武器 資工背景、寫過程式的人、對工程面不排斥者 Python 是你們的好選擇 數學統計背景者、或只想碰分析的人 R是你們的好選擇 懂商業邏輯者,但完全不想寫程式的人 SQL 與 視覺化工具(e.g. Tableau) 是好選擇
  64. 64. Cousera https://zh-tw.coursera.org/
  65. 65. Kaggle https://www.kaggle.com/
  66. 66. 大數學堂 http://largitdata.com/
  67. 67. 實踐是檢驗真理的唯一標準 • 資料科學的目的是讓你開始以資料做決策的依據,不是萬靈丹! • 資料科學是工程+數學+領域知識的學問,沒辦法速成,也沒 有每個領域都通的資料科學家 • 放下你的微積分、高微課本,懂點數學是好的!但過於專注算 式,你可能會難以踏出第一步! • 大資料的確很潮,但分析方法如果沒有改變,只是換湯不換藥! 更應該關注的是問題本身,而不是技術! • 資料科學有很多面向, 你不用全能, 挑一個你喜歡(擅長)的位 置即可,只有團隊,沒有英雄!
  68. 68. EMAIL: david@largitdata.com 網站: www.largitdata.com 電話: 0929094381 THANK YOU

×