預測建模中的計算使用和資料分區
藉由在表計算中包含預測建模函數 MODEL_QUANTILE 或 MODEL_PERCENTILE 來進行預測。
請記住,所有表計算必須指定「計算使用」定向。有關不同定址和分區維度如何影響結果的概觀,請參閱使用表計算轉換值。
在預測建模函數中,「計算使用」選項用於分區(劃定範圍)將用於建立預測模型的資料集。
預測建模函數沒有定址(定位)的概念,因為模型會根據選取的預測值,為每個標記傳回不同的結果。也就是說,與「計算加總」不同,在「計算加總」中,定址維度可決定新增欄位和傳回結果的順序,而預測建模函數原本就是非循序的。它們使用模型,從函數的目標和預測值定義的資料,以視覺效果指定的詳細層級計算結果。在該資料中,除非使用依序排列的預測值(例如日期維度),否則沒有排序的概念。
此外,在定義用於建立模型的資料時,一律使用視覺效果的詳細層級。所有表計算與視覺效果本身都在相同的詳細層級運作,預測建模函數也不例外。
預測建模函數的建議
建議您在使用預測建模函數時,選取要分區的特定維度。由於您可能在單一視覺效果或儀表板中有多個預測計算,因此,選取特定的分區維度可確保為每個函數使用相同的基礎資料集建立模型,進而比較同類模型的結果。
在 Tableau 中使用預測建模函數時,無論是模型的不同反覆運算(例如,當您選取不同的預測值時),還是在不同的視覺效果中,必須確保在不同的具現化中保持一致。使用定向「計算使用」選項導致一種可能性,就是您視覺化資料的微小變化將大幅影響用於建立模型的資料,因此影響不同視覺效果之間的有效性和一致性。
選擇維度
以下範例使用 Tableau Desktop 附帶的「範例 - 超級市場」資料來源。
選擇維度時,請記住,Tableau 會跨該維度建立預測模型。也就是說,如果您選取「訂單日期」做為分區維度,Tableau 將使用任何其他建立分區內的資料,但連帶「訂單日期」的值。
下圖顯示用於建立模型的資料(以黃色醒目顯示),以及模型輸出(以橘色醒目顯示)。在此情況下,由於沒有任何預測值,因此,給定「子類別」中的所有回應都是相同的;選取最佳預測值將有助於產生更有意義的結果。有關最佳預測值的詳情,請參閱選擇預測值。
同樣地,如果已選取「子類別」做為分區維度,Tableau 會使用給定月份內的資料,但連帶多個子類別,如下所示。如果資料進一步細分為窗格,在建立模型時將遵循區邊界。
分區注意事項
請注意,以視覺化方式對資料進行分區,對用於建立模型和產生預測的資料有顯著影響。新增更高的詳細層級(例如,包括單一架上的「州/省」和「城市」),將根據更高的詳細層級 (LOD) 對資料進行分區。無論膠囊放在架上的順序如何,都是如此。例如,這些將傳回相同的預測:
如果資料新增至「列」或「欄」架,或新增至「標記」卡片上的「色彩」、「大小」、「標籤」、「詳細資訊」或「形狀」,新增可修改詳細層級的膠囊將會對資料進行分區。將位於不同詳細層級的膠囊新增至「工具提示」將不會對您的資料進行分區。
在以下範例中,由於「類別」和「子類別」膠囊皆位於「列」上,因此,會依「類別」自動分區模型。預測計算是在較高層級膠囊(「類別」)的邊界內,跨「子類別」進行運算。
這涉及到如何套用預算值。讓我們看看以下範例。在此情況下,我們套用三個 MODEL_QUANTILE 表計算:
Predict_Sales_City | Predict_Sales_State | Predict_Sales_Region |
MODEL_QUANTILE(0.5,sum([Sales]),
| MODEL_QUANTILE(0.5,sum([Sales]),
| MODEL_QUANTILE(0.5,sum([Sales]),
|
對於這三個表計算,我們已選取「計算使用」>「城市」。讓我們來看看北卡羅萊納州的一些城市:
請注意,儘管使用不同的預測值,但所有三個計算的結果在給定的州/省內是相同的。
如果我們將「區域」從「列」架移除,結果不會發生任何變化,在給定狀態下,結果仍然完全相同:
但是,當我們將「州/省」從「列」架移除時,我們可以看見每個計算有不同的結果:
為什麼會這樣?
在第一個範例中,「列」架上的「區域」和「州/省」會對城市進行分區。因此,Predict_Sales_City、Predict_Sales_State 和 Predict_Sales_Region 的模型會收到相同資料,並產生相同的預測。
由於我們已針對「州/省」和「區域」內的資料以視覺化方式進行分區,因此,沒有預測值將任何值新增至模型,而且對結果沒有任何影響:
當我們將「區域」從「列」架移除時,仍會依「州/省」進行分區,因此,對於建立模型所使用的資料沒有任何變化。同樣地,由於我們已針對「州/省」內的資料以視覺化方式進行分區,因此,沒有預測值將任何值新增至模型,或對結果產生任何影響:
然而,當我們移除「州/省」時,會對資料取消分區,而且我們可以看見每個計算有不同的預測值。讓我們深入瞭解發生什麼情況:
對於 Predict_Sales_City,我們使用 ATTR([City]) 做為預測值。由於這與視覺效果位於相同的詳細層級,因此不會新增任何值,而且會予以忽略。我們正在為所有城市彙總「銷售額」、將其傳遞至統計引擎,以及計算預測銷售額。由於未包含任何其他預測值,我們可以看見每個城市的結果都是相同的;如果我們已包含一或多個度量,我們會看見結果發生變化。
對於 Predict_Sales_State,我們使用 ATTR([State]) 做為預測值。預測值會依「州/省」對所有「城市」進行分區。我們應該會看到某個州/省內的結果都是相同的,但每個州/省有不同結果。
但請注意,我們得到的結果並非如此。卡瑞、教堂山和夏洛特等城市都有同樣的預測,如我們預期為 2,084 美元。但是,伯靈頓顯示了 9,366 美元的不同預測:
這是因為名為「伯靈頓」的城市存在於多個州/省(愛荷華州、北卡羅萊納州和佛蒙特州)。因此,「州/省」解析為 *,表示「超過一個值」。「州/省」解析為 * 的所有標記是一起評估的,所以同時存在於多個州/省的任何其他城市也會有 9,366 美元的預測。
對於 Predict_Sales_Region,我們使用 ATTR([Region]) 做為預測值。預測值會依「區域」將「城市」資料進行分區。您應該會在某個區域內,看見所有結果都是相同的,但每個區域有不同的結果:
同樣地,伯靈頓存在於多個區域中(中部、東部和南度),「區域」解析為 *。伯靈頓的預測僅符合同樣存在於多個區域內的城市。
正如您所看見的,確保任何維度預測值與您視覺效果的詳細層級和分區保持一致是非常重要的。依任何維度細分您的視覺效果可能會對預測產生意外的影響。