展会信息港展会大全

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

导读:使用 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. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港