Поделиться через


Программирование объектов интеллектуального анализа данных AMO

Программирование объектов интеллектуального анализа данных при помощи объектов AMO осуществляется просто и понятно. Первый шаг заключается в создании модели структуры данных для поддержки проекта интеллектуального анализа. Затем создается модель интеллектуального анализа данных, поддерживающая алгоритм интеллектуального анализа, который будет использоваться для прогнозирования или поиска невидимых связей, лежащих в основе данных. Создав проект интеллектуального анализа данных (в том числе структуру и алгоритмы), можно приступить к обработке моделей интеллектуального анализа данных для получения обученных моделей, которые впоследствии будут использоваться при выполнении запросов и прогнозировании из клиентского приложения.

Следует, однако, помнить, что объекты AMO не предназначены для запросов; объекты AMO используются для управления и администрирования структур и моделей интеллектуального анализа данных. Для запроса данных используйте объекты, описанные в разделе Разработка с использованием ADOMD.NET.

Этот раздел состоит из следующих подразделов.

  • Объекты MiningStructure

  • Объекты MiningModel

Объекты MiningStructure

Структура интеллектуального анализа данных — это определение структуры данных, которое используется для создания всех моделей интеллектуального анализа данных. Структура интеллектуального анализа данных содержит привязку к представлению источника данных, определенному в базе данных, а также определения для всех столбцов, применяемых в моделях интеллектуального анализа данных. Структура может содержать несколько моделей интеллектуального анализа данных.

Для создания объекта MiningStructure необходимо выполнить следующие действия.

  1. Создайте объект MiningStructure и заполните основные атрибуты. Среди основных атрибутов — имя объекта, идентификатор объекта (внутренняя идентификация) и привязка к источнику данных.

  2. Создайте столбцы для модели. Столбцы могут быть скалярными определениями или определениями таблицы.

    У каждого столбца должно быть имя и внутренний идентификатор, тип, определение содержимого и привязка.

  3. Обновите объект MiningStructure на сервере, используя метод Update объекта.

    Структуры интеллектуального анализа данных можно обрабатывать, а после их обработки может производиться обработка или повторное обучение дочерних моделей интеллектуального анализа.

В следующем образце кода создается структура интеллектуального анализа данных для прогнозирования объема продаж во временных рядах. Перед выполнением этого образца кода удостоверьтесь, что база данных db, передаваемая методу CreateSalesForecastingMiningStructure в качестве параметра, содержит в db.DataSourceViews[0] ссылку на представление dbo.vTimeSeries в образце базы данных Adventure Works DW Multidimensional 2012 .

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. Обновите объект MiningModel на сервере, используя метод Update объекта.

    Объекты MiningModel могут обрабатываться в родительском объекте MiningStructure независимо от других моделей.

В следующем образце кода создается модель прогнозирования временных рядов (Майкрософт), основанная на структуре интеллектуального анализа «Структура прогнозирования продаж».

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;
}

См. также

Справочник

Microsoft.AnalysisServices

Основные понятия

Основные классы объектов AMO

Знакомство с классами объектов AMO

Классы интеллектуального анализа данных объектов AMO

Логическая архитектура (службы Analysis Services — многомерные данные)

Объекты баз данных (службы Analysis Services — многомерные данные)