共用方式為


設計 AMO 資料採礦物件的程式

使用 AMO 來設計資料採礦物件是簡單且直接的。第一個步驟是建立資料結構模型以支援採礦專案。接著建立足以支援您要使用之採礦演算法的資料採礦模型,這是為了預測或是尋找隱藏在資料之下無法察覺的關係。採礦專案建立完成後 (包括結構與演算法),您就可以處理採礦模型並取得定型模型,以便稍後在從用戶端應用程式查詢和預測時可以使用。

有一件事請記住,AMO 並不是用於查詢,而是用於管理您的採礦結構與模型。若要查詢您的資料,請使用<ADOMD.NET>。

本主題包含下列章節:

  • MiningStructure 物件

  • MiningModel 物件

MiningStructure 物件

採礦結構是用以建立所有採礦模型的資料結構定義。採礦結構包含在資料庫中定義的資料來源檢視繫結,並且包含所有參與採礦模型的資料行定義。一個採礦結構可以包含一個以上的採礦模型。

建立 MiningStructure 物件需要下列步驟:

  1. 建立 MiningStructure 物件並擴展基本屬性。基本屬性包括物件名稱、物件識別碼 (內部識別碼) 以及資料來源繫結。

  2. 建立模型的資料行。資料行可以是純量或資料表定義。

    每個資料行都需要名稱與內部識別碼、類型、內容定義以及繫結。

  3. 透過使用物件的 Update 方法,將 MiningStructure 物件更新到伺服器。

    採礦結構可加以處理,而且在處理採礦結構時,也會處理或是重塑其子系採礦模型。

下列範例程式碼會建立採礦結構以預測時間序列中的銷售額。在執行範例程式碼之前,請先確定以 CreateSalesForecastingMiningStructure 的參數傳遞的資料庫 db 的 db.DataSourceViews[0] 中,包含對 AdventureWorksDW 範例資料庫中檢視 dbo.vTimeSeries 的參考。

public static MiningStructure CreateSalesForecastingMiningStructure(Database db)
{
    MiningStructure ms = db.MiningStructures.FindByName("Forecasting Sales Structure");
    if (ms != null)
        ms.Drop();
    ms = db.MiningStructures.Add("Forecasting Sales Structure", "Forecasting Sales Structure");
    ms.Source = new DataSourceViewBinding(db.DataSourceViews[0].ID);

    ScalarMiningStructureColumn amount = ms.Columns.Add("Amount", "Amount");
    amount.Type = MiningStructureColumnTypes.Double;
    amount.Content = MiningStructureColumnContents.Continuous;
    amount.KeyColumns.Add("vTimeSeries", "Amount", OleDbType.Currency);

    ScalarMiningStructureColumn modelRegion = ms.Columns.Add("Model Region", "Model Region");
    modelRegion.IsKey = true;
    modelRegion.Type = MiningStructureColumnTypes.Text;
    modelRegion.Content = MiningStructureColumnContents.Key;
    modelRegion.KeyColumns.Add("vTimeSeries", "ModelRegion", OleDbType.WChar, 56);

    ScalarMiningStructureColumn qty = ms.Columns.Add("Quantity", "Quantity");
    qty.Type = MiningStructureColumnTypes.Long;
    qty.Content = MiningStructureColumnContents.Continuous;
    qty.KeyColumns.Add("vTimeSeries", "Quantity", OleDbType.Integer);

    ScalarMiningStructureColumn timeIndex = ms.Columns.Add("TimeIndex", "TimeIndex");
    timeIndex.IsKey = true;
    timeIndex.Type = MiningStructureColumnTypes.Long;
    timeIndex.Content = MiningStructureColumnContents.KeyTime;
    timeIndex.KeyColumns.Add("vTimeSeries", "TimeIndex", OleDbType.Integer);

    ms.Update();
    return ms;
}

MiningModel 物件

採礦模式是一個儲存機制,其中包含所有資料行以及將用於採礦演算法中的資料行定義。

建立 MiningModel 物件需要下列步驟:

  1. 建立 MiningModel 物件並擴展基本屬性。

    基本屬性包括物件名稱、物件識別碼 (內部識別碼) 以及採礦演算法規格。

  2. 加入採礦模型的資料行。必須將其中一個資料行定義為案例索引鍵。

  3. 透過使用物件的 Update 方法,將 MiningModel 物件更新到伺服器。

    MiningModel 物件可以獨立於父 MiningStructure 中的其他模型,單獨進行處理。

下列範例程式碼會根據 "Forecasting Sales Structure" 採礦結構來建立 Microsoft 時間序列預測模型。

public static MiningModel CreateSalesForecastingMiningModel(MiningStructure ms)
{
    if (ms.MiningModels.ContainsName("Sales Forecasting Model"))
    {
        ms.MiningModels["Sales Forecasting Model"].Drop();
    }
    MiningModel mm = ms.CreateMiningModel(true, "Sales Forecasting Model");
    mm.Algorithm = MiningModelAlgorithms.MicrosoftTimeSeries;
    mm.AlgorithmParameters.Add("PERIODICITY_HINT", "{12}");

    MiningModelColumn amount = new MiningModelColumn();
    amount.SourceColumnID = "Amount";
    amount.Usage = MiningModelColumnUsages.Predict;

    MiningModelColumn modelRegion = new MiningModelColumn();
    modelRegion.SourceColumnID = "Model Region";
    modelRegion.Usage = MiningModelColumnUsages.Key;

    MiningModelColumn qty = new MiningModelColumn();
    qty.SourceColumnID = "Quantity";
    qty.Usage = MiningModelColumnUsages.Predict;

    MiningModelColumn ti = new MiningModelColumn();
    ti.SourceColumnID = "TimeIndex";
    ti.Usage = MiningModelColumnUsages.Key;

    mm.Update();
    mm.Process(ProcessType.ProcessFull);
    return mm;
}