當我們沉浸在親手構建的模型里的時候,是否會理智地跳出來,重新審視一下,我們所忽略的會不會正是客戶所需求的呢?
1.太關注訓練
就像體育訓練中越來越注重實戰訓練,因為單純的封閉式訓練常常會訓練時狀態神勇,比賽時一塌糊涂。實際上,只有樣本外數據上的模型評分結果才真正有用!
栗子:機器學習或計算機科學研究者常常試圖讓模型在已知數據上表現最優,這樣做的結果通常會導致過度擬合( overfit )。
解決方法:解決這個問題的典型方法是重抽樣。重抽樣技術包括:bootstrap、cross-validation 、jackknife 、leave-one-out… 等等。
2.只依賴一項技術
沒有對比也就沒有所謂的好壞,辯證法的思想在此體現無遺。“ 當小孩子手拿一把錘子時,整個世界看起來就是一枚釘子。” 要想讓工作盡善盡美,就需要一套完整的工具箱。不要簡單地信賴你用單個方法分析的結果,至少要和傳統方法(比如線性回歸或線性判別分析)做個比較。
解決方法:使用一系列好的工具和方法。(每種工具或方法可能最多帶來5%~10% 的改進)。
3. 提錯了問題
一般在分類算法中都會給出分類精度作為衡量模型好壞的標準,但在實際項目中我們卻幾乎不看這個指標。為什么?因為那不是我們關注的目標。
a) 項目的目標:一定要鎖定正確的目標。栗子:欺詐偵測(關注的是正例!)( Shannon 實驗室在國際長途電話上的分析):不要試圖在一般的通話中把欺詐和非欺詐行為分類出來,重點應放在如何描述正常通話的特征,然后據此發現異常通話行為。
b) 模型的目標:讓計算機去做你希望它做的事。大多數研究人員會沉迷于模型的收斂性來盡量降低誤差,這樣讓他們可以獲得數學上的美感。但更應該讓計算機做的事情應該是如何改善業務,而不是僅僅側重模型計算上的精度。
4. 只靠數據來說話
如果數據+工具就可以解決問題的話,還要人做什么呢?
a)投機取巧的數據:數據本身只能幫助分析人員找到什么是顯著的結果,但它并不能告訴你結果是對還是錯。
b)經過設計的實驗:某些實驗設計中摻雜了人為的成分,這樣的實驗結果也常常不可信。
5. 拋棄了不該忽略的案例
不同的人生態度可以有同樣精彩的人生,不同的數據也可能蘊含同樣重要的價值。異常值可能會導致錯誤的結果(比如價格中的小數點標錯了),但也可能是問題的答案(比如臭氧洞)。所以需要仔細檢查這些異常。研究中最讓激動的話語不是“啊哈!”,而是“這就有點奇怪了……”數據中的不一致性有可能會是解決問題的線索,深挖下去也許可以解決一個大的業務問題。
栗子:在直郵營銷中,在對家庭地址的合并和清洗過程中發現的數據不一致,反而可能是新的營銷機會。
解決方法:可視化可以幫助你分析大量的假設是否成立。
6. 輕信預測
事物都是不斷發展變化的。人們常常在經驗不多的時候輕易得出一些結論。即便發現了一些反例,人們也不太愿意放棄原先的想法。
維度咒語:在低維度上的直覺,放在高維度空間中,常常是毫無意義的。
解決方法:進化論。沒有正確的結論,只有越來越準確的結論。
7. 試圖回答所有問題
“不知道”是一種有意義的模型結果。模型也許無法100%準確回答問題,但至少可以幫我們估計出現某種結果的可能性。