我们有一个非常大表,我们正在使用SSAS数据挖掘对其进行预测。
我们正在努力以有效的方式获得得分测试和训练案例以进行验证。有没有办法不调用每行的算法(PREDICTION JOIN)?
例如,如果我的输入数据集包含以下列:
(顾客,国家,年龄,性别,买一个)我想获得......
(客户,国家,年龄,性别,BuyAmount,BuyAmount预测,概率)
必须是可能的,因为这是在模型处理期间完成的事情,并且它可能用于生成验证图表,例如SystemGetClassificationMatrix。
如果我们谈论数十亿行,那将是一个很大的性能提升。
这一点应该是微不足道的......我必须遗漏一些东西。
答案 0 :(得分:0)
我有一个来自微软的解决方案。我在这里写它,因为它可能对其他人有用
训练/测试数据存储在采矿结构中,除非在训练后清除。以下查询应该有效:
SELECT Predict(..),PredictProbability(..)FROM MINING MODEL [ModelName] 自然预测加入
哪里可以: 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”并在查询中提供映射。