展会信息港展会大全

AMO 数据挖掘对象的编程
来源:互联网   发布日期:2011-12-16 19:59:23   浏览:18088次  

导读:使用 AMO 对数据挖掘对象进行编程非常简单直接。第一步是创建数据结构模型以支持挖掘项目。然后创建数据挖掘模型,该模型支持您要用于预测或查找数据下未看到的关系的挖掘算法。创建挖掘项目(包括结构和算法)后,可以处理挖掘模型以获取定型的模型,稍后从...

      使用 AMO 对数据挖掘对象进行编程非常简单直接。第一步是创建数据结构模型以支持挖掘项目。然后创建数据挖掘模型,该模型支持您要用于预测或查找数据下未看到的关系的挖掘算法。创建挖掘项目(包括结构和算法)后,可以处理挖掘模型以获取定型的模型,稍后从客户端应用程序进行查询和预测时将使用该模型。

  请记住 AMO 不用于查询,而是用于管理挖掘结构和模型。若要查询数据,请使用ADOMD.NET。

  MiningStructure 对象
  挖掘结构是用于创建所有挖掘模型的数据结构的定义。挖掘结构包含与数据库中定义的数据源视图的绑定,以及组成挖掘模型的所有列的定义。一个挖掘结构可包含多个挖掘模型。

  创建 MiningStructure 对象需要执行下列步骤:

  创建 MiningStructure 对象并填充基本属性。这些基本属性包括对象名称、对象 ID(内部标识)和数据源绑定。

  创建模型的列。列可以为标量,也可以为表定义。
  每一列都需要名称、内部 ID、类型、内容定义和绑定。#p#副标题#e#

  使用 MiningStructure 对象的 Update 方法将该对象更新到服务器。
  可对挖掘结构进行处理,处理挖掘结构时,会对子挖掘模型进行处理和重新定型。

  下面的示例代码创建挖掘结构来预测一段时序中的销售情况。运行该示例代码前,请确保作为 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;
}

 #p#副标题#e#MiningModel 对象
  挖掘模型是将在挖掘算法中使用的所有列和列定义的存储库。

  创建 MiningModel 对象需要执行下列步骤:

  创建 MiningModel 对象并填充基本属性。
  这些基本属性包括对象名称、对象 ID(内部标识)和挖掘算法规范。

  添加挖掘模型的列。必须将其中一列定义为事例键。

  使用 MiningModel 对象的 Update 方法将该对象更新到服务器。
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;
}

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港