ifelse過度設計:人工智慧建模中的最大錯誤 - svpino
人們喜歡一開始就跳入他們最喜歡的模型,而沒有先提出該模型的基準baseline。
這裡有一個真實的故事和一些想法:
一個團隊花了一個月的時間試驗了三種不同的模型來解決一個二進位制分類問題。
- - k-Nearest Neighbors
- - 一個神經網路
- - 一個SVM
我甚至不知道他們在這個過程中燒了多少錢。
他們對結果感到自豪:他們的最佳模型大約有92%的準確性。
只有一個小問題:
其實只要在原始資料集中的一個特徵上設定一個簡單的if-else條件,就能夠以更高的準確率進行預測(但是不需要這些複雜的機器學習模型與演算法)。
其實只需要一個條件判斷! (banq:這大概是最昂貴的ifelse 笑梗了)
機器學習的第一條規則:
你並不需要機器學習,除非你能證明你需要。
忘記這條規則,你將註定要為追逐不可能的結果而燒錢。
什麼是基準?
讓我們來談談戰術:
以下是在我的字典中找到的 "基準baseline "的定義。
"如果今天你吃午飯遲了,那麼你可以想出的一個最愚蠢的解決方案"
基準就是一些簡單的東西,你可以向其他人解釋,打敗這個基準就是你的目標。
其他一些基準的例子。
- - 總是返回主要部分的類(在處理不平衡的資料集時很好)。
- - 用一組if-then-else條件實現一個簡單的啟發式方法。
你需要一些快速的東西,給你提供方向。
基準是我的北極星,我總是將基準與另外兩樣東西配對:
- 1. 我的評估標準(我如何知道我做得更好)
- 2. 我的停止標準(我可以承受多長時間的實驗)。
這就是它! 這就是 "三要素":
- 你要一個基準線
- 一個評估標準
- 一個停止準則(stopping criteria)
當你打敗你目前的基準時,用最新的模型取代它,然後再去做,直到你達到你的停止點。
相關文章
- 程式基本設計可以犯的最大錯誤
- 在學程式設計中我犯的2個最大的錯誤程式設計
- .Net“/”應用程式中的伺服器錯誤 超過了最大請求長度 錯誤解決辦法伺服器
- 我在學習程式設計中犯的兩個最大錯誤程式設計
- 10個現代軟體開發過度設計上的錯誤
- 坑:重構過程中的過度設計
- 10g RAC 超過最大程式數的錯誤
- 【資料倉儲】|5 維度建模設計和實施過程
- 建模重要性:使用建模工具發現Paxos實現中的一個錯誤 - brooker
- 錯誤程式碼的設計!
- 程式設計面試中的十個常見錯誤程式設計面試
- 《D程式設計語言》中的低階錯誤程式設計
- PHP程式設計中10個最常見的錯誤PHP程式設計
- 程式設計師程式設計生涯中會犯的7個錯誤程式設計師
- 工程師犯的最大錯誤?工程師
- 我們在設計iPhone應用時犯過的錯誤iPhone
- 【資料倉儲】|3 維度建模之維度表設計
- 網站設計中應當避免的8個錯誤網站
- 移動Web設計中的一些錯誤理念Web
- 軟體測試中過度設計的那些事兒
- Swift 語言的設計錯誤Swift
- 在使用Kafka過程中遇到的錯誤Kafka
- 錯誤碼設計思考
- 每個程式設計師都可能犯過的10個錯誤程式設計師
- API的設計(1) - 錯誤處理API
- Bash程式設計易犯的錯誤程式設計
- 最危險的程式設計錯誤程式設計
- lv擴充套件過程中遇到的錯誤套件
- OGG 配置過程中的錯誤處理
- SYBASE程式設計中的莫名錯誤及其解決辦法 (轉)程式設計
- 關係建模ER建模-維度建模
- 【資料倉儲】|4 維度建模之事實表設計
- C++程式設計易範的錯誤C++程式設計
- 程式設計師的中年該如何度過程式設計師
- Web設計中對視差設計的誤區Web
- 淺談軟體開發中設計的重要性以及錯誤設計的避免和修正
- go 錯誤處理設計思考Go
- 網頁設計中常見的五種互動設計錯誤網頁