資料科學會使用 Machine Learning 的演算法,這些演算法的使用方式,都是這三個步驟:讀取資料,轉譯,提供答案,但在選擇演算法之前,要先知道這些演算法能回答什麼問題,要問對問題,才能找到答案。
以下這些是可以回答的問題
- 這是A,還是B? Is this A or B? (two-class classification)
- 這是A、B、C 還是 D? Is this A or B or C or D? (multi-class classification)
- 有沒有奇怪的地方? Is this Weird? (anomaly detection)
- 這有多少/有幾個? How Much/How Many? (regression)
- 用迴歸演算法解決多元分類問題 Multi-Class Classification as Regression
- 用迴歸演算法解決二元分類問題 Two-Class Classification as Regression
- 資料是由什麼組成的?怎麼分類? How is this Data Organized? (unsupervised learning, clustering)
- 接下來該怎麼做? What Should I Do Now? (reinforcement learning)
這是A,還是B? Is this A or B? (two-class classification)
二元分類 two-class classification,用來解決只有兩種答案的問題,例如:
- 這位客戶會不會續約?
- 這張照片是貓還是狗?
- 這位顧客會不會點最上面的連結?
- 如果再開一千英里,這個輪胎會不會爆胎?
- 五元折價券或是打七五折,哪一個促銷手段能吸引更多顧客?
這是A、B、C 還是 D? Is this A or B or C or D? (multi-class classification)
多元分類 multi-class classification,用來解決有多種答案的問題,例如:
- 這是哪種動物的圖片?
- 這是哪種飛機的雷達訊號?
- 這篇新聞屬於哪一個主題?
- 這則 twitter 隱含了哪一種情緒?
- 這則錄音裡的講者是誰?
有沒有奇怪的地方? Is this Weird? (anomaly detection)
異常偵測 anomaly detection,用來辨別不正常的資料,當分析的情況發生率很低,導致樣本數也很少的時候,異常偵測就顯得特別有用。感覺上跟 二元分類 two-class classification 很像,差別在於二元分類的原始資料中,就包含了兩種答案,但是異常偵測則不一定。
例如:
- 是不是信用卡盜刷
- 壓力大小有任何異狀嗎?
- 這則網路訊息正常嗎?
- 這些消費記錄跟這位使用者過去的行為落差很大嗎?
- 這些用電量在這個季節和時間算是正常的嗎?
這有多少/有幾個? How Much/How Many? (regression)
當解決的問題涉及數字而非分類時,這一類的演算法就稱為迴歸(regression),例如:
- 下週二的氣溫為何?
- 第四季在葡萄牙的銷售量會有多少?
- 三十分鐘後,我的風力發電廠會有多少千瓦(kW)的需求?
- 我下週會獲得多少新追蹤者?
- 每一千個使用這種軸承的產品裡,有多少個能被使用超過一萬小時?
用迴歸演算法解決多元分類問題 Multi-Class Classification as Regression
有些看起來很像多元分類的問題,但更適合用迴歸解決。例如
讀者對哪則新聞最感興趣
乍看之下是個分類問題,但如果將問題換成「對讀者來說,每則新聞的有趣程度為何」並為每則新聞評分,接下來就只需要選出最高分的新聞。這類問題通常和排名或對比有關。
我的車隊中,哪台廂型車最需要保養
可以換成「我的車隊裡,每台廂型車需要保養的程度為何」
哪 5% 的顧客隔年會跳槽到對手公司
可以換成「每名顧客明年跳槽到對手公司的機率為何」。
用迴歸演算法解決二元分類問題 Two-Class Classification as Regression
二元分類問題也可以換成迴歸問題,這類問題也通常以「有多少可能性」、「有多少比例」開頭。例如:
- 這位使用者有多大機率會點我的廣告?
- 這台拉霸機有多少比例的回合會給獎金?
- 這名員工有多大機率會造成內部安全的威脅?
- 今天有多少比例的航班會準時抵達?
二元分類、多元分類、異狀偵測和迴歸等四種演算法之間都很相近,它們都是監督式學習(supervised learning)下的演算法。共通之處,在於建模時都用了一組包含回答的資料(這個過程稱作訓練,training),並被用來分類或預測一組不包含回答的資料(這個過程稱作評分,scoring)。
資料是由什麼組成的?怎麼分類? How is this Data Organized? (unsupervised learning, clustering)
這是非監督和強化式學習(unsupervised and reinforcement learning)的演算法。
判斷資料分類的方法有很多,其中一類是聚類法(clustering),包括資料群集(chunking)、分組(grouping)、聚束(bunching)、分段(segmentation)等等。聚類法所分析的資料不包含任何用來引導分群、說明分群意義和數量的數字或名字。聚類法的基礎是衡量資料之間的距離或相似度,也就是距離度量(distance metric)。距離度量可以是任何可測量的數據。
- 哪些消費者對農產品有相似的品味?
- 哪些觀眾喜歡同一類電影?
- 哪些型號的印表機有類似的故障問題?
- 這間變電所在每週的哪幾天有類似的電力需求?
- 用什麼方法可以自然地將這些文件分成五類?
另一類演算法稱作降維法(dimensionality reduction)。降維是另一種簡化資料的方法,它可以讓資料的溝通變得更容易、處理變得更快、而且存取變得更簡單。降維的運作原理是創造出一套簡化資料的方法。等第積分平均(GPA)是一個很簡單的例子。
- 哪幾組飛機引擎偵測器的數據呈同向(和反向)變化?
- 成功的 CEO 有哪些共通的領導力特質?
- 全美的油價起伏有哪些相似的特徵?
- 這些文件裡有哪幾組詞彙常常同時出現?(它們和哪些主題有關?)
接下來該怎麼做? What Should I Do Now? (reinforcement learning)
第三類演算法和行動有關,即強化學習(reinforcement learning)演算法。這些演算法和監督式和非監督式都不太一樣。
比方說,迴歸演算法雖然可以用來預測明天的最高溫為華氏 98 度,但它不能用來判斷該做什麼;另一方面,強化學習演算法就可以用來判斷該採取的行動,例如趁天氣還沒變熱的時候,先開辦公大樓內上半層的冷氣。
強化學習演算法很適合用於需要在無人監督情況下、完成許多簡單決策自動化系統,例如電梯、電熱器、冷氣和照明系統。由於強化學習最初被開發的目的是用來操縱機器人,任何自動物件也能使用這套演算法,像是偵查用無人機或掃地機器人。強化學習的問題總是和該採取什麼行動有關,雖然最後往往還是機器在處理這些問題。
- 我該把廣告放在網頁何處,才能讓讀者最有機會點到它?
- 我該把溫度調高或調低一點,還是維持現狀?
- 我該再掃一次客廳還是繼續充電?
- 我現在該買入多少股?
- 看到黃燈時,我該保持當前速度、煞車還是加速?
沒有留言:
張貼留言