【问题标题】:Getting scoring results for test&traing sets with SSAS data mining使用 SSAS 数据挖掘获取测试集和训练集的评分结果
【发布时间】:2016-09-22 08:47:35
【问题描述】:

我们有一个非常大表,我们正在使用 SSAS 数据挖掘对其进行预测。

我们正在努力以有效的方式获得评分的测试和训练案例以进行验证。有没有办法不调用每一行的算法(PREDICTION JOIN)?

例如,如果我的输入数据集有以下列:

(客户、国家、年龄、性别、购买金额)我想获得...

(客户、国家、年龄、性别、BuyAmount、BuyAmountPredicted、概率)

它必须是可能的,因为这是在模型处理期间完成的,它可能用于生成验证图表,例如SystemGetClassificationMatrix。

如果我们谈论的是数十亿行,这将是一个巨大的性能提升。

  • 避免重复计算(预测连接将针对每一行执行模型)
  • 避免使用 openrowset 将数据从 DB 移动到 SSAS(案例已保存在 model.cases 中)
  • 避免将结果写回某处以供将来分析

这应该是微不足道的问题......我一定错过了什么。

【问题讨论】:

    标签: machine-learning ssas regression


    【解决方案1】:

    我有一个来自 Microsoft 的解决方案。我在这里写它是因为它可能对其他人有用

    训练/测试数据存储在挖掘结构中,除非在训练后被清除。以下查询应该有效:

    从挖掘模型 [ModelName] 中选择 Predict(..)、PredictProbability(..) 自然预测连接

    可以在哪里: SELECT * FROM MINING STRUCTURE [MiningStructureName].CASES SELECT * FROM MINING STRUCTURE [MiningStructureName].CASES WHERE IsTrainingCase() SELECT * FROM MINING STRUCTURE [MiningStructureName].CASES WHERE IsTestCase()

    从采矿结构中清除案例 从挖矿结构中删除 [MiningStructureName].CASES

    挖掘结构训练案例没有应用模型过滤器。如果要查询发送到模型的实际训练用例,可以在 where 子句中显式键入过滤器或直接查询挖掘模型用例(如果模型启用了钻取) SELECT * FROM MINING STRUCTURE [MiningStructureName].CASES WHERE IsTrainingCase() 和 [Gender]='Female' SELECT * FROM MINING MODEL [ModelName].CASES

    如果挖掘结构列名与挖掘模型列名不同,则必须使用“PREDICTION JOIN”而不是“NATURAL PREDICTION JOIN”并在查询中提供映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-04
      • 2019-03-02
      • 2013-09-27
      • 2017-06-04
      • 2017-11-01
      • 2019-05-01
      • 1970-01-01
      • 2017-09-30
      相关资源
      最近更新 更多