R语言侦测欺诈交易.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
R语言侦测欺诈交易 共401 146行数据,每一行包括来自销售员报告的信息。 ID:说明销售员ID的一个因子变量。 Prod:说明销售产品ID号的一个因子变量。 Quant:报告该产品销售的数量。 Val:报告销售记录的总价值。 Insp:有3个可能值的因子变量——ok表示公司检查了该交易并认为该交易有效;fraud表示发现该交易为欺诈;unkn表示该交易未经过公司审核。 2.数据集探索: sum(is.na(sales$Quant) is.na(sales$Val)) [1] 888 从数据的统计特征初步可以看出v431号雇员录入的数据最多,p1125号产品卖出最多,可以看到产品销售的数量和总价值的四分位数据,公司已检查承认有效的数据有14462,已发现欺诈的数据有1270,未经过审查的有385414,说明大量数据还未经过审核,需要接下来的数据分析来检查其中的欺诈数据。 数据中有大量缺失值,当重要产品销售数和销售总价值同时缺失时,就无法进行分析,这样的数据有888条,在40万组数据中可以忽略不计。 判断数据框中每个变量的属性: str(sales) data.frame: 401146 obs. of 5 variables: $ ID : Factor w/ 6016 levels v1,v2,v3,..: 1 2 3 4 3 5 6 7 8 9 ... $ Prod : Factor w/ 4548 levels p1,p2,p3,..: 1 1 1 1 1 2 2 2 2 2 ... $ Quant: int 182 3072 20393 112 6164 104 350 200 233 118 ... $ Val : num 1665 8780 76990 1100 20260 ... $ Insp : Factor w/ 3 levels ok,unkn,fraud: 2 2 2 2 2 2 2 2 2 2 ... 可以看到ID,Prod,Insp是因子型变量, Quant整数型Val数值型table(sales$Insp)/nrow(sales)*100 ok unkn fraud 3.6124200 96.0702847 0.3172953 在只考虑已检查过的销售记录,看到欺诈比例较小。 绘制每个交易人员的交易数量和每个产品的交易数量图形 totS - table(sales$ID) totP - table(sales$Prod) barplot(totS,main=Transactions per salespeople,names.arg=,xlab=Salespeople, ylab=Amount) barplot(totP,main=Transactions per product,names.arg=,xlab=Products, ylab=Amount) 看到所有销售人员的数据相当不同,对于每个产品,波动性较大。 sales$Uprice - sales$Val/sales$Quant summary(sales$Uprice) Min. 1st Qu. Median Mean 3rd Qu. Max. NAs 0.00 8.46 11.89 20.30 19.11 26460.00 13248 检查产品单位价格的分布,看到有明显的变动性。 out - tapply(Uprice,list(Prod=Prod),function(x) length(boxplot.stats(x)$out)) out[order(out,decreasing=T)[1:10]] sum(out) [1]29446 sum(out)/nrow(sales)*100 [1]7.34047 初步找到29446个被认为是离群值的交易,相当于交易的7.3% 3.缺失值处理: 找出变量Quant和变量Val同时有缺失值的交易占很大比例的销售人员 totS-table(sales$ID) totP-table(sales$Prod) nas-sales[which(is.na(sales$Quant)is.na(sales$Val)),c(ID,Prod)] propS-100*table(nas$ID)/totS propS[order(propS,decreasing=T)[1:10]] v1237 v4254 v4038 v5248 v3666 v4433 v4170 13.7

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档