共用方式為


採礦模型內容 (Analysis Services - 數據採礦)

適用於: SQL Server 2019 和舊版 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

SQL Server 2017 Analysis Services 中已淘汰數據採礦,現在已在 SQL Server 2022 Analysis Services 中停止。 檔不會更新為已淘汰和已停止的功能。 若要深入瞭解,請參閱 Analysis Services 回溯相容性

使用基礎採礦結構的數據設計及處理採礦模型之後,採礦模型就會完成,並包含 採礦模型內容。 您可以使用此內容進行預測或分析您的資料。

採礦模型內容包含模型的相關元數據、有關數據的統計數據,以及採礦演算法所探索的模式。 視所使用的演算法而定,模型內容可能包含回歸公式、規則和專案集的定義,或權數和其他統計數據。

不論所使用的演算法為何,採礦模型內容都會以標準結構呈現。 您可以在 SQL Server Data Tools 中提供的 Microsoft 一般內容樹檢視器中瀏覽結構,然後切換至其中一個自定義查看器,以查看每個模型類型的資訊如何解譯和顯示。 您也可以使用支援MINING_MODEL_CONTENT架構數據列集的任何客戶端,針對採礦模型內容建立查詢。 如需詳細資訊,請參閱 資料採礦查詢工作和操作說明

本節描述針對各種採礦模型提供的內容基本結構。 它會描述所有採礦模型內容通用的節點類型,並提供如何解譯資訊的指引。

採礦模型內容 結構

模型內容 中的 節點

依演算法類型 採礦模型內容

用於檢視採礦模型內容 的 工具

用於查詢採礦模型內容 的 工具

採礦模型內容的結構

每個模型的內容會顯示為一系列 節點,。 節點是採礦模型中的物件,其中包含模型部分的元數據和相關信息。 節點會排列在階層中。 階層中節點的確切排列,以及階層的意義,取決於您所使用的演算法。 例如,如果您建立判定樹模型,模型可以包含多個樹狀結構,全都連接到模型根目錄;如果您建立類神經網路模型,模型可能會包含一或多個網路,再加上統計數據節點。

每個模型中的第一個節點稱為 根節點,或 模型父節點 節點。 每個模型都有根節點(NODE_TYPE = 1)。 根節點通常包含模型的相關一些元數據,以及子節點的數目,但模型所探索到之模式的其他資訊很少。

根據您用來建立模型的演算法,根節點具有不同數目的子節點。 子節點有不同的意義,並包含不同的內容,視演算法和數據深度和複雜度而定。

採礦模型內容中的節點

在採礦模型中,節點是一般用途的容器,可儲存模型之所有或部分的相關信息。 每個節點的結構一律相同,並包含數據採礦架構數據列集所定義的數據行。

每個節點都包含節點的相關元數據,包括每個模型內唯一的標識碼、父節點的標識碼,以及節點擁有的子節點數目。 元數據會識別節點所屬的模型,以及儲存該特定模型的資料庫目錄。 節點中提供的其他內容會根據您用來建立模型的演算法類型而有所不同,而且可能包含下列專案:

  • 定型數據中支援特定預測值的案例計數。

  • 統計數據,例如平均值、標準偏差或變異數。

  • 係數和公式。

  • 規則和橫向指標的定義。

  • 描述模型部分的 XML 片段。

採礦內容類型清單

下表列出數據採礦模型中輸出的不同節點類型。 因為每個演算法會以不同的方式處理資訊,因此每個模型只會產生幾個特定的節點類型。 如果您變更演算法,節點類型可能會變更。 此外,如果您重新處理模型,則每個節點的內容可能會變更。

注意

如果您使用不同的數據採礦服務,或如果您建立自己的外掛程式演演算法,則可以使用其他自定義節點類型。

NODE_TYPE標識碼 節點標籤 節點內容
1 元數據和根內容節點。 適用於所有模型類型。
2 分類樹狀結構的根節點。 適用於判定樹模型。
3 內部 樹狀結構中的內部分割節點。 適用於判定樹模型。
4 分配 樹狀結構的終端節點。 適用於判定樹模型。
5 演算法偵測到的叢集。 適用於叢集模型和時序群集模型。
6 未知 未知的節點類型。
7 ItemSet 演算法偵測到的專案集。 適用於關聯模型或時序群集模型。
8 AssociationRule 演算法偵測到的關聯規則。 適用於關聯模型或時序群集模型。
9 PredictableAttribute 可預測屬性。 適用於所有模型類型。
10 InputAttribute 輸入屬性。 適用於判定樹和貝氏機率分類模型。
11 InputAttributeState 輸入屬性狀態的統計數據。 適用於判定樹和貝氏機率分類模型。
13 序列 時序叢集之 Markov 模型元件的最上層節點。 適用於時序群集模型。
14 過渡 Markov 轉換矩陣。 適用於時序群集模型。
15 TimeSeries 時間序列樹狀結構的非根節點。 僅適用於時間序列模型。
16 TsTree 對應至可預測時間序列之時間序列樹狀結構的根節點。 適用於時間序列模型,且只有在使用MIXED 參數建立模型時才適用。
17 NNetSubnetwork 一個子網路。 適用於類神經網路模型。
18 NNetInputLayer 包含輸入層節點的群組。 適用於類神經網路模型。
19 NNetHiddenLayer 包含描述隱藏層之節點的群組。 適用於類神經網路模型。
21 NNetOutputLayer 包含輸出層節點的群組。 適用於類神經網路模型。
21 NNetInputNode 符合輸入屬性與對應狀態之輸入層中的節點。 適用於類神經網路模型。
22 NNetHiddenNode 隱藏層中的節點。 適用於類神經網路模型。
23 NNetOutputNode 輸出層中的節點。 此節點通常會比對輸出屬性和對應的狀態。 適用於類神經網路模型。
24 NNetMarginalNode 定型集的臨界統計數據。 適用於類神經網路模型。
25 RegressionTreeRoot 回歸樹狀結構的根目錄。 適用於線性回歸模型和包含連續輸入屬性的判定樹模型。
26 NaiveBayesMarginalStatNode 定型集的臨界統計數據。 適用於貝氏機率分類模型。
27 ArimaRoot ARIMA 模型的根節點。 僅適用於使用 ARIMA 演算法的時間序列模型。
28 ArimaPeriodicStructure ARIMA 模型中的定期結構。 僅適用於使用 ARIMA 演算法的時間序列模型。
29 ArimaAutoRegressive ARIMA 模型中單一詞彙的自動回歸係數。

僅適用於使用 ARIMA 演算法的時間序列模型。
30 ArimaMovingAverage 在 ARIMA 模型中移動單一詞彙的平均係數。 僅適用於使用 ARIMA 演算法的時間序列模型。
1000 CustomBase 自訂節點類型的起點。 自定義節點類型的值必須大於這個常數的整數。 適用於使用自定義外掛程式演演算法所建立的模型。

節點標識碼、名稱、標題和描述

任何模型的根節點一律有 0 的唯一標識碼 (NODE_UNIQUE_NAME)。 Analysis Services 會自動指派所有節點標識碼,因此無法修改。

每個模型的根節點也包含模型的相關一些基本元數據。 此元數據包含儲存模型的 Analysis Services 資料庫(MODEL_CATALOG)、架構(MODEL_SCHEMA),以及模型的名稱MODEL_NAME。 不過,此資訊會在模型的所有節點中重複,因此您不需要查詢根節點以取得此元數據。

除了作為唯一標識碼的名稱之外,每個節點都有一個 名稱NODE_NAME)。 此名稱由演算法自動建立以供顯示之用,因此無法編輯。

注意

Microsoft叢集演算法可讓使用者將易記名稱指派給每個叢集。 不過,這些易記名稱不會保存在伺服器上,而且如果您重新處理模型,演算法將會產生新的叢集名稱。

演算法會自動產生每個節點的 標題描述,並做為標籤,協助您了解節點的內容。 針對每個欄位產生的文字取決於模型類型。 在某些情況下,名稱、標題和描述可能包含完全相同的字串,但在某些模型中,描述可能包含其他資訊。 如需實作的詳細數據,請參閱個別模型類型的相關主題。

注意

只有當您使用實作重新命名的自定義外掛程式演演算法來建置模型時,Analysis Services 伺服器才支援重新命名節點。 若要啟用重新命名,您必須在建立外掛程式演演算法時覆寫 方法。

節點父系、節點子系和節點基數

樹狀結構中父節點和子節點之間的關聯性取決於PARENT_UNIQUE_NAME數據行的值。 此值會儲存在子節點中,並告訴您父節點的標識符。 一些範例會遵循如何使用這項資訊:

  • NULL 的PARENT_UNIQUE_NAME表示節點是模型的頂端節點。

  • 如果PARENT_UNIQUE_NAME值為 0,節點必須是模型中頂端節點的直接子代。 這是因為根節點的標識碼一律為 0。

  • 您可以使用資料採礦延伸模組 (DMX) 查詢內的函式來尋找特定節點的子系或父系。 如需在查詢中使用函式的詳細資訊,請參閱 資料採礦查詢

基數 是指集合中的項目數。 在已處理採礦模型的內容中,基數會告訴您特定節點中的子係數目。 例如,如果判定樹模型具有 [Yearly Income] 的節點,而該節點有兩個子節點,一個用於條件 [Yearly Income] = High,另一個用於條件,[Yearly Income] = Low,則 [Yearly Income] 節點的 CHILDREN_CARDINALITY 值為 2。

注意

在 SQL Server Analysis Services 中,計算節點基數時,只會計算立即子節點。 不過,如果您建立自定義外掛程式演算法,則可以多載CHILDREN_CARDINALITY以不同方式計算基數。 例如,如果您想要計算子系總數,而不只是立即子系,這可能很有用。

雖然所有模型的基數都會以相同方式計算,但解譯或使用基數值的方式會根據模型類型而有所不同。 例如,在叢集模型中,頂端節點的基數會告訴您找到的叢集總數。 在其他類型的模型中,基數可能一律有一個設定值,視節點類型而定。 如需如何解譯基數的詳細資訊,請參閱個別模型類型的相關主題。

注意

某些模型,例如Microsoft類神經網路演算法所建立的模型,也包含特殊的節點類型,可提供整個模型定型數據的描述性統計數據。 根據定義,這些節點永遠不會有子節點。

節點散發

NODE_DISTRIBUTION數據行包含巢狀數據表,在許多節點中提供演算法所探索模式的重要和詳細資訊。 此數據表中提供的確切統計數據會根據模型類型、節點在樹狀結構中的位置,以及可預測的屬性是連續數值還是離散值而變更:不過,它們可以包含屬性的最小值和最大值、指派給值的權數、節點中的案例數目、回歸公式中使用的係數,以及標準偏差和變異數等統計量值。 如需如何解譯節點散發的詳細資訊,請參閱您正在使用的特定模型類型類型主題。

注意

視節點類型而定,NODE_DISTRIBUTION數據表可能是空的。 例如,某些節點只能組織子節點的集合,而它是包含詳細統計數據的子節點。

巢狀數據表NODE_DISTRIBUTION一律包含下列數據行。 每個數據行的內容會根據模型類型而有所不同。 如需特定模型類型的詳細資訊,請參閱依演算法類型採礦模型內容。

ATTRIBUTE_NAME
內容會因演算法而異。 可以是數據行的名稱,例如可預測的屬性、規則、專案集或演算法內部的資訊片段,例如公式的一部分。

此資料行也可以包含屬性值組。

ATTRIBUTE_VALUE
ATTRIBUTE_NAME中名為的屬性值。

如果屬性名稱是數據行,則最直接的情況是,ATTRIBUTE_VALUE包含該數據行的其中一個離散值。

根據演算法處理值的方式,ATTRIBUTE_VALUE也可以包含旗標,告知您屬性是否存在值(現有),或值是否為 null(Missing)。

例如,如果您的模型設定為尋找已購買特定專案至少一次的客戶,則ATTRIBUTE_NAME數據行可能包含屬性值組,定義感興趣的專案,例如 ,而ATTRIBUTE_VALUE數據行只會包含現有 或 Missing關鍵詞

支援
具有這個屬性值組或包含此專案集或規則的案例計數。

一般而言,針對每個節點,支援值會告訴您目前節點中包含多少定型集案例。 在大部分的模型類型中,支援代表案例的確切計數。 支援值很有用,因為您可以檢視定型案例中的數據分佈,而不需要查詢定型數據。 Analysis Services 伺服器也會使用這些預存值來計算預存機率與先前的機率,以判斷推斷是否強或弱。

例如,在分類樹狀結構中,支援值表示具有所描述屬性組合的案例數目。

在判定樹中,樹狀結構每個層級的支持總和會加總至其父節點的支援。 例如,如果包含 1200 個案例的模型除以性別相等,然後針對節點 (2) 的節點 (2), 節點 (4)、 (5) 和 [6] 的子節點,一律會加總到與節點 (2) 相同的案例數目。

節點標識碼和節點屬性 支援計數
(1) 模型根 1200
(2) 性別 = 男性

(3) 性別 = 女性
600

600
(4) 性別 = 男性和收入 = 高

(5) 性別 = 男性和收入 = 中等

(6) 性別 = 男性和收入 = 低
200

200

200
(7) 性別 = 女性和收入 = 高

(8) 性別 = 女性和收入 = 中等

(9) 性別 = 女性和收入 = 低
200

200

200

針對群集模型,支援的數目可以加權,以包含屬於多個叢集的機率。 多個叢集成員資格是預設的叢集方法。 在此案例中,由於每個案例不一定屬於一個且只有一個叢集,因此在這些模型中的支援可能不會在所有叢集上新增最多 100%。

概率
表示整個模型中這個特定節點的機率。

一般而言,機率代表這個特定值的支援,除以節點內案例的總計數(NODE_SUPPORT)。

不過,機率會稍微調整,以消除數據中遺漏值所造成的偏差。

例如,如果 [Total Children] 的目前值為 'One' 和 'Two',則您想要避免建立預測不可能有子系或有三個子系的模型。 為了確保遺漏的值不可行,但並非不可能,演算法一律會將1新增至任何屬性的實際值計數。

例:

[Total Children = One] 的機率 = [Total Children = One] + 1/[Count of all cases] + 3

[Total Children = Two]= [Total Children = Two] 的案例計數 ] +1/[所有案例的計數] +3

注意

3 的調整是藉由將1新增至現有值總數 n 來計算。

調整之後,所有值的機率仍會加到 1。 沒有數據之值的機率(在此範例中為 [Total Children = 'Zero', 'Three', or some other value]),從非常低的非零層級開始,而且隨著增加更多案例而緩慢上升。

方差
表示節點內值的變異數。 根據定義,離散值的變異數一律為 0。 如果模型支持連續值,則會使用分母 n 或節點中的案例數目,將變異數計算為 σ (sigma)。

一般使用兩個定義來表示標準偏差(StDev)。 計算標準偏差的其中一種方法會考慮偏差,另一個方法會計算標準偏差而不使用偏差。 一般而言,Microsoft數據採礦演算法在計算標準偏差時不會使用偏差。

出現在NODE_DISTRIBUTION數據表中的值是所有離散和離散化屬性的實際值,以及連續值的平均值。

VALUE_TYPE
指出值或屬性的數據類型,以及值的用法。 特定實值型別僅適用於特定模型類型:

VALUE_TYPE標識碼 值標籤 實值類型名稱
1 失蹤 表示案例數據未包含此屬性的值。 遺漏 狀態會與具有值的屬性分開計算。
2 現存 表示案例數據包含此屬性的值。
3 連續的 表示屬性的值是連續數值,因此可以透過平均值來表示,以及變異數和標準偏差。
4 離散 指出數值或文字,視為離散的值。

注意 離散值也可能遺失;不過,進行計算時會以不同的方式處理它們。 如需詳細資訊,請參閱 遺漏值 (Analysis Services - 資料採礦)
5 離散化 表示屬性包含已離散化的數值。 此值會是描述離散化貯體之格式化字串。
6 現存 表示屬性具有連續數值,而且數據中已提供值,以及遺漏或推斷的值。
7 係數 表示表示係數的數值。

係數是計算相依變數值時所套用的值。 例如,如果您的模型建立回歸公式來根據年齡預測收入,則係數會用於將年齡與收入相關的公式中。
8 分數增益 表示數值,表示屬性的分數增益。
9 統計學 表示數值,表示回歸輸入值的統計數據。
10 節點唯一名稱 表示值不應該處理為數值或字串,而是當做模型中另一個內容節點的唯一標識符來處理。

例如,在類神經網路模型中,標識符會提供輸出層節點到隱藏層節點的指標,以及從隱藏層中的節點到輸入層中的節點。
11 攔截 表示數值,表示回歸公式中的截距。
12 週期性 表示值表示模型中的定期結構。

僅適用於包含 ARIMA 模型的時間序列模型。

注意:Microsoft時間序列演算法會根據定型數據自動偵測定期結構。 因此,最終模型中的週期性可能包含您在建立模型時未提供做為參數的週期性值。
13 自動回歸順序 表示值代表自動回歸數列的數目。

適用於使用 ARIMA 演演算法的時間序列模型。
14 移動平均順序 表示值,表示數列中移動平均的數目。

適用於使用 ARIMA 演演算法的時間序列模型。
15 差異順序 表示值表示值,指出數列的區別次數。

適用於使用 ARIMA 演演算法的時間序列模型。
16 布爾 表示布爾型別。
17 其他 表示演算法所定義的自定義值。
18 預先呈現的字串 表示演演算法呈現為字串的自定義值。 物件模型未套用任何格式設定。

實值型別衍生自 ADMOMD.NET 列舉。 如需詳細資訊,請參閱 Microsoft.AnalysisServices.AdomdServer.MiningValueType。

節點分數

節點分數的意義會根據模型類型而有所不同,而且也可以專屬於節點類型。 如需如何針對每個模型和節點類型計算NODE_SCORE的相關信息,請參閱 依演算法類型採礦模型內容。

節點機率和臨界機率

採礦模型架構數據列集包含所有模型類型的數據行NODE_PROBABILITY和MARGINAL_PROBABILITY。 這些數據行只會在機率值有意義的節點中包含值。 例如,模型的根節點永遠不會包含機率分數。

在這些提供機率分數的節點中,節點機率和臨界機率代表不同的計算。

  • 臨界機率 是從其父代到達節點的機率。

  • 節點機率 是從根節點到達節點的機率。

  • 節點機率 一律小於或等於 臨界機率

例如,如果判定樹中所有客戶的母體擴展均按性別分割(且未遺漏任何值),子節點的機率應該是 .5。 不過,假設性別的每個節點都以收入層級-高、中和低平均除以。 在此情況下,每個子節點的MARGINAL_PROBABILITY分數應一律為 .33,但NODE_PROBABILTY值將是導致該節點的所有機率乘積,因此一律小於MARGINAL_PROBABILITY值。

節點/屬性和值的層級 臨界機率 節點機率
模型根目錄

所有目標客戶
1 1
目標客戶依性別分割 .5 .5
目標客戶按性別分割,再按收入分割三種方式 .33 .5 * .33 = .165

節點規則和臨界規則

採礦模型架構數據列集也包含所有模型類型的數據行NODE_RULE和MARGINAL_RULE。 這些數據行包含 XML 片段,可用來串行化模型,或表示模型結構的某些部分。 如果某個值毫無意義,某些節點的數據行可能空白。

提供兩種 XML 規則,類似於兩種機率值。 MARGINAL_RULE中的 XML 片段會定義目前節點的屬性和值,而 NODE_RULE 中的 XML 片段則描述模型根目錄中目前節點的路徑。

依演算法類型採礦模型內容

每個演算法都會將不同類型的資訊儲存為其內容架構的一部分。 例如,Microsoft叢集演算法會產生許多子節點,每個節點都代表可能的叢集。 每個叢集節點都包含描述叢集中專案所共用特性的規則。 相反地,Microsoft線性回歸演算法不包含任何子節點;相反地,模型的父節點包含方程式,描述分析所探索的線性關聯性。

下表提供每種演算法類型主題的連結。

  • 模型內容主題: 說明每個演算法類型之每個節點類型的意義,並提供特定模型類型最感興趣的節點指引。

  • 查詢主題: 提供特定模型類型的查詢範例,以及如何解譯結果的指引。

演算法或模型類型 模型內容 查詢採礦模型
關聯規則模型 關聯模型的採礦模型內容 (Analysis Services - 數據採礦) 關聯模型查詢範例
叢集模型 判定樹模型的採礦模型內容 (Analysis Services - 數據採礦) 叢集模型查詢範例
判定樹模型 判定樹模型的採礦模型內容 (Analysis Services - 數據採礦) 判定樹模型查詢範例
線性回歸模型 線性回歸模型的採礦模型內容 (Analysis Services - 數據採礦) 線性回歸模型查詢範例
羅吉斯回歸模型 羅吉斯回歸模型 (Analysis Services - 數據採礦) 的採礦模型內容 線性回歸模型查詢範例
貝氏機率分類模型 貝氏機率分類模型的 採礦模型內容 (Analysis Services - 數據採礦) 貝氏機率分類模型查詢範例
類神經網路模型 類神經網路模型的採礦模型內容 (Analysis Services - 數據採礦) 類神經網路模型查詢範例
時序叢集 時序群集模型的採礦模型內容 (Analysis Services - 數據採礦) 時序叢集模型查詢範例
時間序列模型 時間序列模型的採礦模型內容 (Analysis Services - 數據採礦) 時間序列模型查詢範例

檢視採礦模型內容的工具

當您在 SQL Server Data Tools 中流覽或探索模型時,您可以在 SQL Server Data Tools 和 SQL Server Management Studio 中檢視 Microsoft 一般內容樹視圖器中的資訊。

Microsoft一般內容查看器會使用採礦模型的內容架構數據列集中可用的相同資訊,顯示來自模型的數據行、規則、屬性、屬性、節點和其他內容。 內容架構數據列集是一個泛型架構,用來呈現數據採礦模型內容的詳細資訊。 您可以在任何支援階層式數據列集的用戶端中檢視模型內容。 SQL Server Data Tools 中的查看器會在 HTML 數據表查看器中呈現這項資訊,以一致格式表示所有模型,讓您更輕鬆地瞭解您所建立之模型的結構。 如需詳細資訊,請參閱 使用 Microsoft泛型內容樹檢視器瀏覽模型

用於查詢採礦模型內容的工具

若要擷取採礦模型內容,您必須針對數據採礦模型建立查詢。

建立內容查詢最簡單的方式是在 SQL Server Management Studio 中執行下列 DMX 語句:

SELECT * FROM [<mining model name>].CONTENT  

如需詳細資訊,請參閱 資料採礦查詢

您也可以使用數據採礦架構數據列集來查詢採礦模型內容。 架構數據列集是用戶端用來探索、瀏覽和查詢採礦結構和模型資訊的標準結構。 您可以使用 XMLA、Transact-SQL 或 DMX 語句來查詢架構數據列集。

在 SQL Server 2017 中,您也可以開啟 SQL Server Analysis Services 實例的連線並查詢系統數據表,來存取數據採礦架構數據列集中的資訊。 如需詳細資訊,請參閱 資料採礦架構資料列集 (SSAs)

另請參閱

Microsoft 一般內容樹檢視器 (資料採礦)
數據採礦演算法 (Analysis Services - 數據採礦)