ifelse過度設計:人工智慧建模中的最大錯誤 - svpino
人們喜歡一開始就跳入他們最喜歡的模型,而沒有先提出該模型的基準baseline。
這裡有一個真實的故事和一些想法:
一個團隊花了一個月的時間試驗了三種不同的模型來解決一個二進位制分類問題。
- - k-Nearest Neighbors
- - 一個神經網路
- - 一個SVM
我甚至不知道他們在這個過程中燒了多少錢。
他們對結果感到自豪:他們的最佳模型大約有92%的準確性。
只有一個小問題:
其實只要在原始資料集中的一個特徵上設定一個簡單的if-else條件,就能夠以更高的準確率進行預測(但是不需要這些複雜的機器學習模型與演算法)。
其實只需要一個條件判斷! (banq:這大概是最昂貴的ifelse 笑梗了)
機器學習的第一條規則:
你並不需要機器學習,除非你能證明你需要。
忘記這條規則,你將註定要為追逐不可能的結果而燒錢。
什麼是基準?
讓我們來談談戰術:
以下是在我的字典中找到的 "基準baseline "的定義。
"如果今天你吃午飯遲了,那麼你可以想出的一個最愚蠢的解決方案"
基準就是一些簡單的東西,你可以向其他人解釋,打敗這個基準就是你的目標。
其他一些基準的例子。
- - 總是返回主要部分的類(在處理不平衡的資料集時很好)。
- - 用一組if-then-else條件實現一個簡單的啟發式方法。
你需要一些快速的東西,給你提供方向。
基準是我的北極星,我總是將基準與另外兩樣東西配對:
- 1. 我的評估標準(我如何知道我做得更好)
- 2. 我的停止標準(我可以承受多長時間的實驗)。
這就是它! 這就是 "三要素":
- 你要一個基準線
- 一個評估標準
- 一個停止準則(stopping criteria)
當你打敗你目前的基準時,用最新的模型取代它,然後再去做,直到你達到你的停止點。
相關文章
- 工程師犯的最大錯誤?工程師
- 【資料倉儲】|5 維度建模設計和實施過程
- 建模重要性:使用建模工具發現Paxos實現中的一個錯誤 - brooker
- 錯誤碼設計思考
- 錯過了炒房聖地深圳,是人生最大失誤
- API的設計(1) - 錯誤處理API
- 【資料倉儲】|3 維度建模之維度表設計
- 《人月神話》(P2)錯誤的進度估計
- go 錯誤處理設計思考Go
- Python程式設計最常見的錯誤有哪些?Python程式設計
- MySQL 那些常見的錯誤設計規範MySql
- 聊一聊過度設計!
- 如何比設計更懂設計-做好前端錯誤提示前端
- PCB原理圖設計常見錯誤
- 使用TLA +進行分散式系統的建模與除錯設計分散式除錯
- 【資料倉儲】|4 維度建模之事實表設計
- 解決遷移資料庫錯誤,索引長度過長資料庫索引
- C中的匯流排錯誤和段錯誤
- 程式設計師的中年該如何度過程式設計師
- 更好的前端設計形式——設計者犯的常見錯誤及修改方法前端
- 關係建模ER建模-維度建模
- MySQL 跳過同步錯誤MySql
- Pytorch建模過程中的DataLoader與DatasetPyTorch
- 最常見領域驅動設計錯誤
- 011 Rust 非同步程式設計,返回錯誤Rust非同步程式設計
- 二、GO 程式設計模式:錯誤處理Go程式設計設計模式
- 數倉建模—寬表的設計
- 深入 Go 的錯誤處理機制,理解設計思想Go
- 【JSConf EU 2018】Ryan Dahl: Node.js 的設計錯誤Node.js
- ng-template 使用過程中引數傳遞錯誤的單步除錯除錯
- [BUG反饋]1.1版本錯誤,新建模型,無法使用,出現SQLSTATE[23000]:錯誤模型SQL
- 人工智慧專案需要避免的9個錯誤人工智慧
- 維度建模
- grpc中的錯誤處理RPC
- 程式設計師都遇到過哪些誤解?程式設計師
- 錯誤推斷法、正交實驗設計法
- IT職場:PFMEA是如何減少製造過程中的錯誤的?
- 最大似然估計可能因 "流形過度擬合 "而失敗