Liz's Blog

Python學習筆記#11:Machine Learning的二三事

| Comments

躲來躲去終於要來面對之前在學R沒做完的理論篇,這個課程和之前R的課程都是共用這本由Gareth James寫的An Introduction to Statistical Learning,實體書要錢,電子版免費下載。除了上課內容,和參考書內容,網路上其實也很多大神寫了簡單易懂的說明(跪),我也會一併附上。

Udemy
課程名稱:Python for Data Science and Machine Learning Bootcamp
講師:Jose Portilla

最近直接在safari的網址列直接搜尋時(在chromo則沒有這樣的問題,明明IP是相同的啊!!!),每次都會問我是不是機器人,一直叫我辨認路標,差不多到了走火入魔的地步,但我最後看到這篇文章的結尾時,我釋懷了......

Machine Learning(機器學習)是一種資料分析方法,用來自動化分析模型。主要是想要演算法反覆從資料中學習,繼而找到隱藏的洞見,應用的範圍非常廣,像是詐騙偵測、搜尋結果預測、即時廣告投放、新價格模型、顧客區分、篩選垃圾郵件、辨識模式及照片等。

因為Machine Learning(機器學習)是一種分析方法,可以想見的,拿到資料後,第一步就是Data Cleaning(資料清洗/整理),這一步常常會花很多時間,因為真實世界的資料常常是非常雜亂的,接著會將資料分成訓練組及測試組,訓練組就是用來建立模型用的,建好後,會拿測試組資料來測試模型,建模的過程,有可能會是迭代重複的,最後才能得到適合的模型。

Machine Learning(機器學習)主要分成三種:(推薦參考這篇文章
1.supervised learning(監督式學習):
(1)會使用標籤化(labeled)的樣本,找出模式,來執行演算法,也就是輸出的結果是可以預期的。
(2)透過輸入及正確的輸出結果來學習並修正演算法。
(3)常見的方法:classification、regression、prediction、gradient boosting。
(4)實例:預測信用卡交易是否被盜用、根據房子的特性來預測價格。

2.unsupervised learning(非監督式學習):
(1)和supervised learnign相反,資料是沒有標籤的。
(2)演算法要自行找出顯示的模式或是特性。
(3)常見的方法:self-organizing maps、nearest-neighbor mapping、k-means clustering、
singular value decomposition。
(4)實例:找出主題、辨識資料異常值。

3.reinforcement learning(加強式學習)
(1)有三種主要的組成:agent(學習者或決策者)、environment(與學習者或決策者互動的所有東西)、actions(可以做的事)。
(2)目標在於agent要在有限時間內,將預期的獎勵最大化,且agent只要遵守好的政策,就可以更快達標,因此加強式學習其實就在學習最佳政策。
(3)常用於機器人、遊戲、導航。

之後Python機器學習的課程會用scikit learn套件,可以事先在終端機安裝:(Python社群活躍之強大,連scikit-learn中文都有人寫好了,QQ)
conda install scikit-learn

關於到底要選擇哪一種演算法才好,scikit learn製作一個簡易的選擇地圖可供參考。在ISLR中有討論到一個很有趣的問題,為什麼我們會選擇更嚴格的方法,而不是一個更有彈性的方法?這取決到底想做prediction(預測),還是inference(推斷)。如果是想做推斷,越嚴格的方法,可解讀性越高。舉例來說,我們想了解X和Y的關係,使用線性迴歸相對是比較好了解兩者關係的方法。相較之下,比較具有彈性的boosting methods則不容易解釋兩者關係。

Comments

comments powered by Disqus