實務上,我們可能並沒有自己想的那麼了解系統的真實面,這也造就一些起步上的困難,反思一下,這也關於問題的選定,與挑選參數的過程與方式,有些相關延伸思考的地方。
打個比方,原本以為我們以下單次數區分的3種客戶:一般忠實的客戶,以及只買1~2次的客戶,和大量購買的大客戶,可能呈現一種常態的分佈,只買一兩次的客戶和大買的大客戶佔少量,一個月購買10~100次的忠實客戶佔最大的比例。
但仔細統計下來卻不是的,以會員成分分析起來,只購買1~2次就沒出現的客戶佔據了7成,中間值的客戶佔不到1成,剩下的又都是大客戶包辦,呈現一種M型的分佈。
另外一件事,我們藉由系統改版的機會,保留新舊接口並存的方式,藉以得知哪些帳號是從舊接口進來下單,因為網頁介面上已經無法透過舊接口下單,換而言之,這些帳號就是程式機器人,透過打API的方式跟我們下訂單。結果統計下來,這種帳號數量佔比不到1%,訂單的金額總數也只有3%左右。
對於自家資料的了解程度,會影響實作上的結果深遠,因為會遇到個很現實的問題,如果我們想要用數學分析一個模型出來,那必須有些假設,而這些假設必須是有機會貼近實情的,它必須是一種正確的資料。
性質不同的參數,不能被當作同一種參數使用,舉例來說,如果想知道文化對於消費習慣的影響,那麼以這個命題,下面這些參數,你不能視為同一種參數:
台北、上海、蒙古、非洲、紐約、荷蘭、鹿特丹、倫敦、義大利半島、福岡、馬尼拉、北海道........
當我們了解上面這些名詞的含義之後,其實不難分出其中的差異,並且不覺得它們屬於同樣的層次,或者能夠分在同一類。
這也是一種「資料清洗」的工作,問題是當遇到格式錯誤或缺失值以外的問題,麻煩的是你必須要知道這些資料內容對於命題的意義不同,如此以來才有可能知道怎麼做二次處理。
回到我們的題目很直觀的可以知道,用程式的下單購買行為,一定跟真人在下單的行為有所不同,如果今天機器人下單的佔比若有5成,那麼我們一定會將它們和一般的客戶分開來統計和討論,並不會視為同一類。
這就是現實面血淋淋的難題,資料是乾淨的情況下,可以用一些檢定或運算,檢視是否對模型輸出結果有所影響,但不乾淨的情況下,真的很難辦。
所以我們在挑選參數和假設參數有其重要性的時候,其實也在一邊試圖理解我們自己的系統資料,這種分析為的是可以預測未來(因為你想做出一個模型可以得知預期的output),也在了解過去,因為足夠了解自己參數的意義,才能夠正確地處理好參數,拿到乾淨的資料。
如此一來,實務面的開發與網路上提供的練習資料,也能夠理解其中的差異吧,因為人家拿出來的資料基本上是乾淨處理過的,而我們自己的資料還是處理原生原始狀態,很大程度還沒變成所謂有「價值的資料」。