我最近經(jīng)常做評委,常會問選手一些算法問題。我發(fā)現(xiàn):用的好的幾乎都是簡單算法。但有的團隊喜歡用新鮮或者古怪的辭藻進行包裝。不過,遇到不熟悉算法的評委,似乎還真的有效。如果符合“磚家”的口味,他還會拿出去到處宣傳。
好的算法往往很簡單。但問題的另一面則是:簡單算法往往不容易用好。如何來理解這對矛盾呢?
在我看來:簡單辦法好用,往往是因為簡單方法可靠度高、容易理解、容易與領(lǐng)域知識結(jié)合。而簡單方法不容易用好,則是因為:簡單方法的應(yīng)用是有條件的,而條件往往并不滿足。
線性回歸是最簡單的建模方法。但是,應(yīng)用這個方法也是有條件的。例如:1、自變量的檢測誤差可以忽略不計;2、對結(jié)果的干擾服從正態(tài)分布、沒有顯著的系統(tǒng)性干擾。但是,現(xiàn)實中,這樣的條件往往并不滿足??!
類似地,在分析一個變量有沒有顯著影響的時候,經(jīng)常會用到F檢驗。但我卻發(fā)現(xiàn),在大數(shù)據(jù)時代,對任何變量的F檢驗幾乎總是有效。換句話說,這種做法其實是失效的。原因也是一樣的:算法的條件不滿足。
再如,先進工業(yè)企業(yè)普遍使用的SPC方法。這個方法中,有許多判斷異常的判據(jù)。部分判據(jù)的依據(jù),是發(fā)生這種事件的概率小于0.27%。這意味著,每生產(chǎn)1萬件產(chǎn)品,平均就會有27件判斷異常。但是,如果生產(chǎn)過程真的很穩(wěn)定、極少發(fā)生異常,這種方法顯然也是會失效的。
幾年前,清華數(shù)學系的謝老師請我和賓州大學林教授一起吃飯。林教授談到他的困惑:在大數(shù)據(jù)時代,統(tǒng)計學知識難道就沒有用了嗎?我回答說:大數(shù)據(jù)能讓統(tǒng)計算法用得更好。
我的意思是說:在大數(shù)據(jù)時代,人們可以有足夠多、足夠好的數(shù)據(jù),驗證(采用簡單算法的)條件是不是成立。如果不成立的話,還可以通過選擇和改造數(shù)據(jù),讓它們符合要求。而不是盲目地利用這些數(shù)據(jù)建模。
我國有一種現(xiàn)象:濫用統(tǒng)計學方法。我在寶鋼時,曾有過一次沖動:把看到的論文記下來,作為反面案例——看看這些作者是如何濫用統(tǒng)計方法的。在現(xiàn)實中,工業(yè)數(shù)據(jù)不符合統(tǒng)計學要求是種常態(tài),符合要求才是偶然的。盲目采用數(shù)據(jù)分析方法時,濫用就成了一種常態(tài)。
數(shù)據(jù)分析理論中有個著名的CRISP_DM模型。這個模型中有一個步驟叫做數(shù)據(jù)理解。濫用數(shù)據(jù)分析方法的根源,往往就是數(shù)據(jù)理解做得不夠、沒有進行適當?shù)奶幚?。而?shù)據(jù)理解得不夠,往往又是因為對業(yè)務(wù)的理解不到位。我認為:人們有較好的業(yè)務(wù)知識,才能把數(shù)據(jù)理解到位。
我講數(shù)字化轉(zhuǎn)型課時,經(jīng)常提到一個例子:斯特寧先生被國際慈善組織派到越南,解決當?shù)貎和癄I養(yǎng)不良問題。他通過調(diào)查,發(fā)現(xiàn)了三條有效的做法:營養(yǎng)好的孩子一天吃四頓飯;2. 媽媽們會抓小魚小蝦給孩子吃;3媽媽會把地瓜葉的汁淋在飯上。我們注意到:斯特寧發(fā)現(xiàn)這三條做法,不僅是靠數(shù)據(jù)分析能力,還靠專業(yè)知識:孩子胃小、消化快,多吃一次有利于吸收;魚蝦中含有孩子成長必須的蛋白質(zhì);葉子汁中含有孩子必須的維生素。所以,把專業(yè)知識和數(shù)據(jù)分析結(jié)合在一起,才能發(fā)現(xiàn)這些知識。
所以,用好簡單算法,關(guān)鍵要把數(shù)據(jù)準備工作做到位,并具備較好的專業(yè)知識。但是,要做到這一點是不容易的。
作者:郭朝暉(工學博士,教授級高工。企業(yè)研發(fā)一線工作20年)
共有訪客發(fā)表了評論
網(wǎng)友評論