對症下藥- 處方分析(Prescription Analysis)的強大力量
資料科學的核心是機器學習。但在現實環境中,教科書式的問題如;分析誰會購買,評估網頁排名或預測系統將崩潰,如此簡單明白的議題往往是不存在的。而在這篇文章中,我們會從更實際的情景來討論資料科學的使用,而處方分析(Prescriptions Analysis)將【機器學習】和【全域優化】相互結合的技術,可以解決日常中實際的問題,將扮演一個非常重要的角色。
處方分析-該做什麼,而不是將要發生什麼
這個部分,我最喜歡的用RM創始人之一的 Igno Mierswa所引用例子來解釋的。假設你有一個機器學習模型,它預測明天會下雨,這對你意味著什麼?你是開車去上班、還是騎自行車?嗯,我會開車吧。但大家都知道要下雨,所以你可能不是唯一一個開車的人。結果可能是交通堵塞了一個小時。儘管下雨,可能還是繼續騎自行車好吧,對嗎?這個時候你的決定不只有天氣,可能也要包括交通狀況的預測,以便對於之後的行動做出最好的決定。該如何做呢?
方法是首先定義一個合適度函數(Fitness Function),作為判斷方案的和適度。然後將天氣預測(可能是根據歷史資料做的回歸分析),預期的交通狀況(可能是依照路況做分類分析)和您的個人喜好(這個可能是決策樹分析)。把所有的考量模型都放入其中,而後調整輸入的變數(雨量大小,出發時間,等等。)而後找到一個最優化的解決的條件(例如;早上9點高峰前開車出發,躲雨又不堵塞),這就是處方分析!這樣做的目的,不僅是預測將要發生的事情,還可以就該做什麼提出最優化的建議。
在實際的世界中,很多時候的狀況多是如此。實際上,並沒有一個簡單的問題,然後用某個資料分析的方式就解決了。就算是使用所謂的QBQ/CRISP-DM 的思考框架,也通常是沒有辦法單純化成幾個簡單資料分析,就把問題解決。必須在許多面向上做全域的考量與規劃,平衡多個並行的模型之後,進行更細部與精緻的分析,綜合全部的狀況而提出最優化的建議。
實際做法 – 明白其中的概念,幫助實際的問題
用一個例子來說明;我們希望找到產品的最優價格。首先,我們可以用不同的價格,然後評估客戶接受我們報價的信心度大於0.75(自己定義的閾值)來做評估。我們先建立一個目標公式,也就是使用自訂的和適度(Fitness)作為量化標準,而後公式如下:
Fitness = Price – IF([confidence(accept)]<0.75, (0.75-[confidence(accept)])*,0)
這個公式的意思是當我們每一次變動價格(例如上調0.1元),我們評估(依照之前某個客戶的接受度回歸模型)的接受意願的機率。在IF的方程式;【如果小於0.75】->【條件成立】->【一個大複數值】->【因為導致Fitness下降】。反之就為零(但注意 Fitness上升因為價格調漲了)。其在Rapid Miner 中的實現是如此:
上面描述的Rapid Miner的流程是;首先,得出一個用來預測客戶接受度預測的回歸模型。接下來,我們進入優化操作,Optimizer輸入我們要優化的參考資料,還有設置閾值和回歸模型。在優化操作元的自動迴圈運算中,不斷調整其Fitness 的數值。由於優化是單變種,我們可以使用二維的網格做分析。計算方式可以使用 CMA-ES、BYOBA 或進化優化(Evolution Optimization)。而結果是下圖:
從圖中可以看到,Fintess(也就是價格)的度數首先上升與價格同時上漲,然後下降,因為信心低於0.75,這個可以直觀的理解價格愈高,其Fitness的數值就越低呢。最後可以判斷出的最優價格為:976元。
學霸和奸商 - 找到最有效的平衡,才能實際發揮作用
所以,處方分析可以說是在商務和技術之間,所能得到的最有效的資料分析結果。其側重於從現有資料中尋找最佳操作方案,強調可執行的建議和最優化的結果,而不是單純的資料分析,而這個在RapidMiner中,有特別的操作元和外掛(Extension),專門負責這類型的操作。
處方分析在業界中使用非常廣泛,包括從股票基金的買賣,市場價格的判斷,都已經是非常成熟且完備。但是不論如何,其基礎的部分,仍然建構在所有的資料分析模型之上。所以學習資料分析,必須能對於實用考量和技術能力之間,取得全面的瞭解,才是真正平衡學術和實用的資料科學家。
留言
張貼留言