Sql server 在银行交易记录中查找样本异常检测(在TSQL或R中)
我想在银行交易记录和总账条目中检测意外交易。 与供应商一样,每月的金额通常为2000美元或5000美元,但突然出现了10000美元或200美元的交易,这是出乎意料的。 我将有多个列参与此异常检测:客户、供应商、账号、交易描述、输入交易的用户(对于总账方)等 我的数据在SQL Server中,因此我正在寻找在TSQL中工作的示例代码。否则我可以依赖R脚本Sql server 在银行交易记录中查找样本异常检测(在TSQL或R中),sql-server,r,Sql Server,R,我想在银行交易记录和总账条目中检测意外交易。 与供应商一样,每月的金额通常为2000美元或5000美元,但突然出现了10000美元或200美元的交易,这是出乎意料的。 我将有多个列参与此异常检测:客户、供应商、账号、交易描述、输入交易的用户(对于总账方)等 我的数据在SQL Server中,因此我正在寻找在TSQL中工作的示例代码。否则我可以依赖R脚本 谢谢你的帮助。可能不是你想要的,但是你可以使用一个类分类器来创建一个根据阈值检测异常的实验。您可以轻松地从SQL Server向其提供数据 这可
谢谢你的帮助。可能不是你想要的,但是你可以使用一个类分类器来创建一个根据阈值检测异常的实验。您可以轻松地从SQL Server向其提供数据
这可能有些过分,但您可以使用免费版本,这超出了您的需要。一个选项是使用SQL窗口功能获取交易金额的标准偏差,并查找距离标准偏差超过1的条目
CREATE TABLE #tmp(
Customer nvarchar(255),
Supplier nvarchar(255),
AccountNumber nvarchar(255),
STD decimal(20, 2),
Amount decimal(20, 2))
INSERT INTO #tmp (Customer, Supplier, AccountNumber, Amount, STD)
SELECT Customer, Supplier, AccountNumber, Amount,
ABS(STDEV(Amount) OVER (PARTITION BY Customer, Supplier, AccountNumber))
FROM SourceTable
SELECT *
FROM #tmp
WHERE STD >= 1
我们需要一个模式(最好是测试数据),听起来好像您要求我们编写您的业务规则,这与堆栈溢出无关。如果这是一个编程问题,您能否澄清您不知道如何使用的编程技术?这应该是机器学习的一个良好开端: