交叉驗證報表 (Analysis Services - 資料採礦)
交叉驗證可讓您將採礦結構資料分割成交叉區段,並反覆地針對資料的每個交叉區段培訓和測試模型。您會指定數個將資料分割成的資料分割,然後使用每個資料分割當做測試資料,而剩餘的資料則用來培訓新模型。Analysis Services 接著會針對每個模型產生一組標準精確度標準。藉由比較針對每個交叉區段所產生的模型標準,您可以充分瞭解採礦模型對整個資料集而言有多可靠。
[!附註]
交叉驗證無法搭配包含 KEY TIME 或 KEY SEQUENCE 資料行的任何模型使用。
本章節說明在資料採礦設計師的 [採礦精確度圖表] 索引標籤上的 [交叉驗證] 報表中展示的資訊。如需有關如何建立報表的詳細資訊,請參閱<交叉驗證索引標籤 (採礦精確度圖表檢視)>。
建立交叉驗證報表
若要交叉驗證與採礦結構相關聯的採礦模型,可以使用資料採礦設計師中的 [採礦精確度檢視] 的 [交叉驗證] 索引標籤,或交叉驗證預存程序,來設定下列選項:
指定摺疊數。
指定用於交叉驗證的最大案例數目。此數目會除以折疊數。
指定可預測的資料行。選擇性地指定可預測的狀態。
[!附註]
如果採礦結構包含群集模型,請指定 [#Cluster],而不是選取可預測資料行。報表只會傳回群集模型的結果。
- 選擇性地設定參數以控制預測精確度的評估方式。
選擇交叉驗證資料集
當您使用 [採礦精確度圖表] 檢視的 [交叉驗證] 索引標籤時,有兩種方式可以控制在交叉驗證期間所使用的資料量和資料類型:您可以指定摺疊數,也可以限制案例數。根據預設,Business Intelligence Development Studio 中的交叉驗證會使用每個模型的培訓案例。如果某個篩選與模型相關聯,就會套用此篩選。
[摺疊計數] 值可指定要建立之資料集的交叉區段數目。每個折疊都會當做測試資料集使用,而剩餘折疊中的資料也會用來培訓新模型。因此,如果使用最小值 2,則半數的資料集會用於測試,半數用於培訓。
如果採礦結構儲存在 Analysis Services 的執行個體中,但是建立為暫存或工作階段結構,則可使用的最大摺疊數為 10。如果採礦結構是儲存於 Analysis Services 的執行個體中,則您不能建立比案例數更多的摺疊。如果案例數小於您設定的 [摺疊計數] 數目,則會使用較小的數目。
[!附註]
當您增加摺疊的數目時,執行交叉驗證所需的時間就會因而增加,因為系統必須針對每個摺疊產生並測試一個模型。如果摺疊的數目過高,您可能會遇到效能問題。
[最大案例數] 值會指定所有摺疊中可用於交叉驗證的總案例數。因此,任何特定折疊中的案例數都與 [最大案例數] 值除以 [摺疊計數] 值相同。預設值是 0,表示會使用採礦結構中的所有案例。
如果使用其中一個預存程序執行交叉驗證,則要提供 FoldCount 和 MaxCases 屬性的值當做預存程序的參數。
[!附註]
如果您使用交叉驗證預存程序,就可以同時設定 DataSet 參數來定義用於測試的資料集。資料集的選項包括僅限培訓集、測試和培訓集,以及使用採礦模型篩選的培訓集和測試集組合。如需詳細資訊,請參閱<SystemGetCrossValidationResults (Analysis Services - 資料採礦)>。
選擇要驗證的模型和資料行
當您使用資料採礦設計師中的 [交叉驗證] 索引標籤時,必須先從清單選取可預測的資料行。一般而言,採礦結構可以支援許多採礦模型,但並不是所有的採礦模型都使用同一個可預測資料行。當您執行交叉驗證時,只有使用同一個可預測資料行的模型可包含在報表中。
若要選擇可預測屬性,請按一下 [目標屬性],然後從清單選取資料行。如果目標屬性是巢狀資料行,或是巢狀資料表中的資料行,則您必須使用 <巢狀資料表名稱>(索引鍵).<巢狀資料行> 的格式輸入巢狀資料行的名稱。如果從巢狀資料表所使用的唯一資料行是索引鍵資料行,則您可以使用 <巢狀資料表名稱>(索引鍵)。
注意 如果使用預存程序,則可以對測試的模型執行更多控制。如需詳細資訊,請參閱<SystemGetCrossValidationResults (Analysis Services - 資料採礦)>。
在您選取可預測屬性之後,Analysis Services 會自動測試所有使用同一個可預測屬性的模型。
如果目標屬性包含離散的值,且您有想要預測的特定值,則可以在選取可預測資料行之後,選擇性地輸入目標狀態。
目標狀態的選擇會影響傳回的量值。如果您指定目標屬性 (也就是資料行名稱),而沒有挑選要模型預測的特定值,則根據預設,模型的評估會根據它對最可能狀態的預測而進行。
如果您要交叉驗證群集模型,則沒有可預測的資料行;而是要從 [目標屬性] 清單方塊中的可預測屬性清單選取 [#Cluster]。在選取 [群集] 之後,其他與群集模型相關的選項 (例如,[目標狀態]) 就會停用。Analysis Services 會測試所有與採礦結構相關聯的群集模型。
設定精確度臨界值
您可以藉由設定 [目標臨界值] 的值來控制預測精確度的測量標準。臨界值代表一種精確度列。每個預測都會被指派預測值正確的機率。因此,如果將 [目標臨界值] 的值設定為接近 1,則任何特定預測的機率必須相當高才會計為良好的預測;相反地,如果將 [目標臨界值] 的值設定為接近 0,則即使具有較低機率值的預測也會計為良好的預測。
我們不推薦任何臨界值,因為預測的機率是根據您的資料及進行的預測類型而定。您應該以不同的機率層級檢閱一些預測,如此才能為資料判斷適當的精確度列。這個步驟很重要,因為您為 [目標臨界值] 所設定的值會影響測量到的模型精確度。
例如,假設您的結構包含三個模型,而預測出的目標狀態機率分別為 0.05、0.15 和 0.8。如果將臨界值設定為 0.5,只有一項預測會計為正確。如果您將 [目標臨界值] 設定為 0.10,其中兩項預測就會計為正確。
當 [目標臨界值] 設定為 null (預設值) 時,會將最可能的狀態當做目標。在剛才提及的範例中,所有三個模型都具有正確的預測。因此,在比較模型時,應該考量用於每個交叉驗證執行個體的臨界值。您也可以使用交叉驗證報表所提供的「平均可能性」和「均方根誤差」等量值,評估特定模型中所有案例的平均機率。
使用交叉驗證索引標籤時的限制
如果使用 Business Intelligence Development Studio 中的交叉驗證報表來執行交叉驗證,則可測試的模型及可設定的參數就會有些限制。
根據預設,所有與選取的採礦結構相關聯的所有模型都會經過交叉驗證。您無法指定單一模型或模型清單。
以「Microsoft 時間序列」演算法或「Microsoft 時序群集」演算法為基礎的模型不支援交叉驗證。
如果採礦結構不包含任何可藉由交叉驗證而測試的模型,就無法建立報表。
如果採礦結構同時包含群集和非群集模型,而您沒有選擇 [#Cluster] 選項,則兩種模型的結果都會顯示在同一報表中 (即使屬性、狀態和臨界值設定可能並不適合群集模型)。
某些參數值會受到限制。例如,在摺疊數超過 10 時會顯示警告,因為產生這麼多的模型可能會導致報表顯示緩慢。
如果想要指定進階設定,則必須使用交叉驗證預存程序。如需詳細資訊,請參閱<資料採礦預存程序 (Analysis Services - 資料採礦)>。
交叉驗證的結果
在您指定參數且按一下 [重新整理] 之後,交叉驗證的結果就會顯示在結果方格中。本章節說明結果方格中每個資料行的內容。
除了一些有關資料中的折疊數以及每個折疊中的資料量等基本資訊外,Analysis Services 也會顯示有關每個模型的標準集並以類型分類。下表列出測試和標準,並提供標準所代表意義的說明。
測試類型 |
量值和說明 |
---|---|
群集 |
案例概似值代表案例屬於特定群集合可能性。
|
分類 |
真肯定符合這些條件的案例計數:
誤判符合這些條件的案例計數:
真否定符合這些條件的案例計數:
誤否定符合這些條件的案例計數:
|
分類 |
通過/失敗符合這些條件的案例計數:
|
概似值 |
增益實際預測機率與測試案例中臨界機率的比率,並排除具有遺漏值的資料列。此標準顯示在使用模型時機率的改進程度。
均方根誤差所有資料分割案例平均誤差的平方根,除以資料分割中的案例數目,並排除具有遺漏值的案例。
對數分數先加總每個案例之實際機率的對數,然後除以輸入資料集中的資料列數目,並排除具有遺漏值的案例。因為機率會表示成小數,所以對數分數一定是負數。較接近 0 的數字代表較佳的預測。
|
估計 |
均方根誤差預測值對實際值的平均誤差,以平方誤差的平均總和的平方根來表示。
平均絕對誤差資料分割中所有案例之絕對誤差的總和,除以案例數目,並排除具有遺漏值的資料列。
對數分數先加總每個案例之實際機率的對數,然後除以輸入資料集中的資料列數目,並排除具有遺漏值的案例。因為機率會表示成小數,所以對數分數一定是負數。較接近 0 的數字代表較佳的預測。
|
彙總 彙總量值以每個資料分割的結果提供變異數的指示。 |
平均數特定量值的資料分割值的平均值。
標準差在模型的所有資料分割中,與特定量值平均數的差異平均值。
|
[!附註]
這些精確度量值是針對每個目標屬性所計算,而且您可以針對每個屬性指定或省略目標值。某些記錄可能不會有任何目標屬性值,而這種特殊案例稱為遺漏值。針對特定目標屬性計算精確度量值時,不會計算具有遺漏值的資料列。此外,因為這些分數是個別針對每個屬性所計算,所以如果目標屬性值存在,但其他屬性值遺漏,就不會影響目標屬性的分數。