Introduction to Machine Learning with Python

Slides:



Advertisements
Similar presentations
Web 开发基础 第二章 表格与页面布局. 回顾 Internet 和 万维网 网页的工作原理 网页的基本结构 标记及其属性 段落标记,图片标记,超级链接标记 相对路径,绝对路径,物理路径.
Advertisements

第一單元 建立java 程式.
HyperText Markup Language
第六章 网页设计与制作基础.
Web与信息检索 LJ JUFE-SIT.
第5章 HTML 標籤介紹.
第8讲 HTML与PHP基础 静态网页 vs. 动态网页.
HTML概念 HTML(Hyper Text Markup Language 超文本标识语言) 是一种用来制作超文本文档的简单标记语言。
计算机与程序.
第7章 表 格 清华大学出版社.
教学内容 1、演示并讲解用表格布局制作的网页 2、用表格制作网页.
Web图片搜索引擎设计 ——基于文本的图片信息提取.
网页 设计与制作.
2 HTML5與CSS3 2-1 HTML5的頁面結構 2-2 HTML5的文字編排標籤 2-3 HTML5的圖片與超連結標籤
学习情境三:配置WEB服务器 服务器配置与管理.
模块1 网页设计基础 实训1 体验HTML文档 1.1 网页基础知识 1.2 网站配色方案 1.3 网站设计常用软件
第3章 JavaScript语言基础.
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
使用HTML製作個人網頁 柴惠敏 台灣大學 物理治療學系.
第二部分 HTML语言控制 本次课的主要内容: 1、认识网页文件的结构 2、HEAD、TITLE、BODY等基本标记符的使用
HTML 語法教學 授課:彭穎聰 老師.
CT212 (02/03)-Network Programming and design
HTML.
第3章 超文本标记语言(HTML) 3.1 基本结构标记 3.2 文本格式标记 3.3 超链接标记<A></A>
Python金融数据分析教程 解放你的python编程能力 第4关 如何获取金融数据 Python金融数据分析教程 1.
建國技術學院資訊管理學系 饒瑞佶 2004/7/5 彰化縣政府補助辦理網頁設計資料庫應用班 建國技術學院資訊管理學系 饒瑞佶 2004/7/5.
HTML5全栈开发序列课程 《前端入门》之HTML入门 余鹏作品.
Google 自訂搜尋 淡江大學資訊中心 專案發展組 朱家璁 2009/10/6.
11-1 JDBC的基礎-說明 昇陽公司提出的資料庫中介軟體(Middleware)稱為「JDBC」(Java Database Connectivity),這是一種開放標準的Java程式介面,可以讓Java程式連接資料庫管理系統, 以Java技術來說,就是實作JDBC驅動程式介面(JDBC Driver.
Ch1.認識全球資訊網 1.1 「網際網路」與「全球資訊網」 1.2 全球資訊網的基礎 – 網頁與超連結
Speaker : Kuo Tung Yang 2010/03/30
湖北职院计科系.
东南大学 大学计算机基础 ——基本概念及应用思维解析.
Chapter14 HTML簡介與簡易網頁製作
Visual C++ introduction
行政院研究發展考核委員會 【網頁無障礙設計】說明會
HTML網頁設計 Chapter 建置網站的流程 16-2 從事網頁設計相關的程式語言 16-3 認識HTML語法
Dr. Baokun Li 经济实验教学中心 商务数据挖掘中心
HTML 钟晖云 QQ:
中華技術學院 網頁設計研習會.
Working with Databases (II) 靜宜大學資管系 楊子青
8 网页制作基础知识 赵国庆 博士 北京师范大学教育技术学院
進階 WWW 程式設計 -- PHP Regular Expression 靜宜大學資訊管理學系 蔡奇偉副教授 2004
JUNO数据模型设计和相关软件开发 李腾 黄性涛 山东大学 合肥 2018/12/2.
安裝JDK 安裝Eclipse Eclipse 中文化
檔案與磁碟的基本介紹.
HTML & CSS.
雲端計算.
主讲:陶建平 华中科技大学网络与计算中心
古佳怡 網路爬蟲、分析與視覺化.
W3C标准网页制作 主讲教师:张 涛.
网 站 设 计 与 建 设 Website design and developments
第一單元 建立java 程式.
W3C标准网页制作 主讲教师:张 涛.
網路程式設計期末project 指導教授:馬尚彬 學生:楊依林 學號:B
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
第一個cordova project Cordova project建立與平台設定,均藉由cli(command line interface來完成 建立project請打開命令提示字元視窗應輸入下列命令 cordova create hello tw.edu.stust.mis.hello HelloWorld.
Ajax编程技术 第六章 调试与错误处理.
注意:教程中给出的所有示例代码请勿直接拷贝使用!会引起不必要的错误!
雲端計算.
期末考.
Prepared by : Au Kit Ming
HTML 103 互動式網頁 助教:黃毓瑩.
XML備份MySQL資料庫 <html> <head>
分頁.
Cloud Training Material- 事件 Sherman Wang
第七章 程序调试方法 异常 崩溃.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
教师:李金双 网页制作 教师:李金双
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

Introduction to Machine Learning with Python 資工魂

Mitch Resnick (MIT Media Lab) 人人都該學程式設計 創意思考 有系統的推論 團隊合作 邏輯

why Python 「優雅」「明確」「簡單」 Python 的 Windows 安裝檔基本上包含整個標準函式庫,且通常也包含許多額外套件 https://docs.python.org.tw/3/library/ 我們並不需要發明新的輪子,大多數時候,我們只需要找到一個好的輪子,然後對它做一些修補優化就可以了。

Python 保留字 常數 型態定義詞 控制陳述 運算子 模組相關 # False None True # class def # as assert break continue del elif else except finally for global if nonlocal pass raise return try while with yield 運算子 # and not or is in lambda 模組相關 # from import

程式語言 輸入 輸出 運算式 判斷語句 迴圈語句 函數 語句塊 (縮排) 註解 # 數學運算 關係運算 邏輯運算 = + - * / 語句塊 (縮排) 註解 # 數學運算 = + - * / 關係運算 < > <= >= == != 邏輯運算 and or not

函數 定義函數 使用函數

輸出行事曆所有Event

迴圈 土法鍊鋼 使用2個for迴圈 print (Event[Sun,0]) print (Event[Sun,1]) … print (Event[Sun,23]) print (Event[Mon,0]) print (Event[Mon,1]) print (Event[Mon,23]) print (Event[Sat,0]) print (Event[Sat,23]) for weekday in (7天) for hour in range (24小時) print (EVENT[weekday, hour])

判斷 if (身高未滿170) 全殘 else if (身高未滿180) 半殘 else 身心健全

網軍

code def 階級 (帳號) : if 登入次數 <= 30 新訓 菜 elif 登入次數 <= 210 二兵 elif 登入次數 <= 575 一兵 elif 登入次數 <= 1000 上兵 elif 登入次數 > 1000 if 擔任過站務 if 登入次數 <= 1500 少尉 elif 登入次數 <= 2000 中尉 elif 登入次數 <= 3000 上尉 elif 登入次數 <= 3500 少校 elif 登入次數 <= 4000 中校 elif 登入次數 <= 4500 上校 elif 登入次數 <= 5000 少將 elif 登入次數 <= 5500 中將 elif 登入次數 <= 6000 上將 elif 登入次數 > 6000 四星上將 else 下士 中士 上士 三等士官長 二等士官長 一等士官長 士官督導長 def 網軍 if 登入次數 <= 30 新訓 菜 elif 登入次數 <= 210 二兵 elif 登入次數 <= 575 一兵 elif 登入次數 <= 1000 上兵 elif 登入次數 > 1000 if 擔任過板主 or 擔任過小組長 if 登入次數 <= 1500 少尉 elif 登入次數 <= 2000 中尉 elif 登入次數 <= 3000 上尉 elif 登入次數 <= 3500 少校 elif 登入次數 <= 4000 中校 elif 登入次數 <= 4500 上校 elif 登入次數 <= 5000 少將 elif 登入次數 <= 5500 中將 elif 登入次數 <= 6000 上將 elif 登入次數 > 6000 四星上將 else 下士 中士 上士 三等士官長 二等士官長 一等士官長 士官督導長

迴圈 for 帳號 in 使用者列表 階級 (帳號) #使用先前定義的階級函數

一例一休 平日加班費: 延長工作時間在2小時以內者 加給3分之1以上 再延長工作時間在2小時以內者 加給3分之2以上 休息日 4小時以內者 以4小時計 逾4小時至8小時以內者 以8小時計 逾8小時至12小時以內者 以12小時計 加班費算法同平日 國定假日及特休 加倍發給 例假日 加倍 & 事後補假休息 if (平日) 加班時數 = 打卡時數 - 8 if 加班時數 <= 2 加班費 = 加班時數 * 1.33 * 時薪 elif 加班時數 <= 4 x = 加班時數 – 2 加班費 = (2 * 1.33 + x * 1.66)*時薪 else 違反勞基法 elif (休息日) 加班時數 = 打卡時數 if 加班時數 <= 4 #時數 = 4 加班費 = (2 * 1.33 + 2 * 1.66)*時薪 elif 加班時數 <= 8 #時數 = 8 加班費 = (2 * 1.33 + 6 * 1.66)*時薪 elif 加班時數 <= 12 #時數 = 12 加班費 = (2 * 1.33 + 10 * 1.66)*時薪 elif (國定假日及特休) … elif (例假日)

here we go 安裝 Anaconda 安裝套件(如有需要) https://www.continuum.io/downloads conda install 套件名稱 pip install 套件名稱

Anaconda spider

實戰 研究計畫經費表資料庫查詢

web crawler 自動化 讀檔 網路爬蟲 取得網際網路資源 request 解析網頁的內容  beautifulsoup4 寫檔

CLRPG3D0043研究經費收支明細表(專帳) 31800 風濕過敏科 郭昶甫 計劃名稱: 巨量資料及統計中心 [ ] 開始日期: 2016/10/1 結束日期: 2017/9/30 展延日期: 費用別 預算金額 本院補助 院外補助 院內核銷金額 院外核銷金額 餘額 人事費 4075846 2105192 1970654 有關研究他項費用 310000 283640 26360

檢示網頁原始碼 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>資料庫查詢</title> </head> <body background="../data/backg.gif" bgproperties="fixed"> <center><h3> CLRPG3D0043研究經費收支明細表(專帳)</h3></center><center><h3> 31800 風濕過敏科 郭昶甫 </h3></center><center><h3>計劃名稱: 巨量資料及統計中心 [ ]</h3></center><center><h3>開始日期: 2016/10/1 結束日期: 2017/9/30 展延日期: </h3></center><CENTER><TABLE border=5 cellspacing=3 cellpadding=3><TR><td>費用別</td><td>預算金額</td><td>本院補助</td><td>院外補助</td><td>院內核銷金額</td><td>院外核銷金額</td><td>餘額</td></TR><TR><td><a HREF=MRPE.ASP?MRPNO=CLRPG3D0043&FID=A>人事費</A></td><td>4075846</td><td>4075846</td><td></td><td>2105192</td><td></td><td>1970654</td></TR><TR><td><a HREF=MRPE.ASP?MRPNO=CLRPG3D0043&FID=Z>有關研究他項費用</A></td><td>310000</td><td>310000</td><td></td><td>283640</td><td></td><td>26360</td></TR></TABLE>研究經費查詢無誤,<a href=mrpd.asp>回查詢螢幕</a></CENTER> </body> </html>

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=big5"> <title>資料庫查詢</title> </head> <body background="../data/backg.gif" bgproperties="fixed"> <center><h3> CLRPG3D0043研究經費收支明細表(專帳)</h3></center> <center><h3> 31800 風濕過敏科 郭昶甫 </h3></center> <center><h3>計劃名稱: 巨量資料及統計中心 [ ]</h3></center> <center><h3>開始日期: 2016/10/1 結束日期: 2017/9/30 展延日期: </h3></center> <CENTER> <TABLE border=5 cellspacing=3 cellpadding=3> <TR> <td>費用別</td> <td>預算金額</td> <td>本院補助</td> <td>院外補助</td> <td>院內核銷金額</td> <td>院外核銷金額</td> <td>餘額</td> </TR> <td><a HREF=MRPE.ASP?MRPNO=CLRPG3D0043&FID=A>人事費</A></td> <td>4075846</td> <td></td> <td>2105192</td> <td>1970654</td> <td><a HREF=MRPE.ASP?MRPNO=CLRPG3D0043&FID=Z>有關研究他項費用</A></td> <td>310000</td> <td>283640</td> <td>26360</td> </TABLE> 研究經費查詢無誤,<a href=mrpd.asp>回查詢螢幕</a> </CENTER> </body> </html>

beautifulSoup4 解析<tag>的套件 soup = BeautifulSoup(res.text, "html5lib") list soup.select('h3') soup.select('td') 元素和值 soup.select('<tag>名稱')[index].text

CLRPG3D0043研究經費收支明細表(專帳) 31800 風濕過敏科 郭昶甫 計劃名稱: 巨量資料及統計中心 [ ] 開始日期: 2016/10/1 結束日期: 2017/9/30 展延日期: 費用別 預算金額 本院補助 院外補助 院內核銷金額 院外核銷金額 餘額 人事費 4075846 2105192 1970654 有關研究他項費用 310000 283640 26360

request 解析URL的套件 get https://zh.wikipedia.org/wiki/巨量資料 https://zh.wikipedia.org/wiki/網路爬蟲 requests.get(url) post http://lnkwww.cgmh.org.tw/intr/c01s00/menu1/mrpa.asp http://lnkwww.cgmh.org.tw/intr/c01s00/menu1/mrpb.asp requests.post(url, headers, data)

就是幫我們減少人力的東西!

實戰 將大量檔案根據Result.xml內的文字重新命名

根據Result、Remark、AdditionalPattern內的文字更改副檔名為PNG的檔案,若沒有就跳過。 Header:Well_01

演算法 for 檔案 in 目錄 開啟結尾為result.xml的檔案 解析xml檔 Result字串 Remark字串 AdditionalPattern字串 合併為dataString 修改檔名 dataString+ header + Img_XX.png

解析xml 使用BeautifulSoup #解析xml soup = BeautifulSoup(res, "xml") #處理tag Result = soup.select('Result')[0] SResult = Result.select('string')[0].text.strip() Remark = soup.select('Remark')[0] SRemark = Remark.select('string')[0].text.text.strip() AdditionalPattern = soup.select('AdditionalPattern')[0] SAdditionalPattern = AdditionalPattern.select('string')[0].text. text.strip() #合併字串 dataString = SResult + '_' + SRemark + '_' + SAdditionalPattern + '_'

修改檔名 os.rename #取得header f.split('Result.xml') header = (f.split('Result.xml')[0]) #修改檔名 img1 = header+'Img_01.png' src1 = os.path.join(outputroot, img1) #組合路徑和檔名 img1 = dataString+img1 #加上dataString dst1 = os.path.join(outputroot, img1) #組合路徑和檔名 os.rename (src1, dst1) #rename

遞迴處理路徑下所有資料夾和檔案os.walk for root, dirs, files in os.walk(inputPath): for f in files: if (f.endswith('Result.xml')): #找出Result.xml res = open(os.path.join(root, f),'r') #開啟檔案 解析xml檔 修改檔名

demo

不要去重新發明輪子 分享自己的輪子 做事要用適合你的工具, 而不是選一個工具來挑戰你的工作。

more Fansboard Kobe Bryant Shot Selection

and more Will patients show up to their medical appointments? 根據人口數據和預先存在的條件來預測病人是否會真正出現醫療預約。

Datasets 300,000 observations and 15 variables Target variable:  狀態 Status (Show-Up or No-Show) Independent variables: 年齡 Age 性別 Gender 糖尿病 Diabetes 酒精 Alcoholism 高血壓 Hypertension 殘障 Handcap smokes 學歷 Scholarship 結核 Tuberculosis 簡訊提醒 Sms_Reminder 等待時間 AwaitingTime 週幾 DayOfTheWeek

Create dummy variables avoid overfitting Split dataset into train, validate, and test Select classification algorithms to be trained with train data use 3 popular algorithms, including decision tree, random forests, and multi-layer perceptron (neural network) Apply cross-validation to evaluate best parameters on validation data Evaluate top model with best parameters on test data