版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、R實(shí)訓(xùn)論文年級(jí) 14級(jí) 班級(jí) 04班 學(xué)號(hào) 20140404430 姓名 王增飛 提交日期 2017.5.12 歡迎下載偵測(cè)欺詐交易(王增飛 呂梁學(xué)院 呂梁 033000) 摘要 考慮到在經(jīng)濟(jì)和社會(huì)領(lǐng)域中經(jīng)常存在欺詐交易等非法活動(dòng),因此欺詐拉驗(yàn)是數(shù)據(jù)挖粼技術(shù)的一個(gè)重要應(yīng)用領(lǐng)域。從數(shù)據(jù)分析的角度,欺詐行為通常和異常的觀測(cè)值相關(guān)聯(lián),因?yàn)檫@些欺詐行為是偏離常規(guī)的。在多個(gè)數(shù)據(jù)分析領(lǐng)域,這些偏離常規(guī)的行為經(jīng)常成為離群值.數(shù)據(jù)挖翻的結(jié)果有助于公司的事后檢查活動(dòng),能夠提供某種欺詐概率排序作為輸出結(jié)果,可以使公司以最佳方式來利用其事后檢查資源。關(guān)鍵詞 缺失值填補(bǔ) 決策精確度 回朔精確度 半監(jiān)督技術(shù) scams
2、 (Wang LvliangXueyuan Lvliang 033000) Abstract The fraud is an important area of application for data mining, given that there are often illegal activities such as fraudulent transactions in the economic and social sectors. From the point of view of data analysis, fraud is often associated with the
3、observed value of an exception, as these are deviations from the norm. In the field of multiple data analysis, the deviation from normal behavior often become outliers. Data dig results help the company post-mortem activity, can provide some kind of fraud probability sorting as output, can make the
4、company in the best way to use the post-mortem resources.Key Missing value fill Decision-making accuracy Back to new moon accuracyA semi-supervised technology引言 偵測(cè)欺詐交易的目的是找到“奇怪的”交易記錄報(bào)告,它可能指出某些銷售員涉嫌欺詐.這里用的數(shù)據(jù)是一個(gè)較短時(shí)期內(nèi)的銷售數(shù)據(jù),銷售員可按照ti己的策略和公司情況來自由設(shè)置梢售價(jià)格。我們的日的是根據(jù)公司過去發(fā)現(xiàn)的交易報(bào)告中的錯(cuò)誤和欺詐企圖,幫助公司完成核實(shí)這些悄售報(bào)告真實(shí)性的工作。1 目
5、標(biāo)任務(wù) 根據(jù)公司過去發(fā)現(xiàn)的交易報(bào)告中的錯(cuò)誤和欺詐企圖,幫助公司完成核實(shí)這些銷售報(bào)告真實(shí)性的工作。我們提供一份欺詐率排名的報(bào)告,這個(gè)欺詐率排名將允許公司把有限的檢驗(yàn)資源分配給系統(tǒng)所提示的更“可疑”的那些報(bào)告。2 數(shù)據(jù)來源load(sales.Rdata)將從這個(gè)文件中把數(shù)據(jù)載入到一個(gè)名為sale的數(shù)據(jù)框library(DMwR)data(sales)使用本書添加包中的數(shù)據(jù)得到了名為sale的數(shù)據(jù)框,里面存的是下面將會(huì)用到的數(shù)據(jù)3 數(shù)據(jù)探索性分析3.1 探索數(shù)據(jù)集使用summary函數(shù),了解數(shù)據(jù)的統(tǒng)計(jì)特征 ID:說明銷售員ID的一個(gè)因子變量。Prod:說明銷售產(chǎn)品ID號(hào)的一個(gè)因子變量。Quant:
6、報(bào)告該產(chǎn)品銷售的數(shù)量。Val:報(bào)告銷售記錄的總價(jià)值。Insp:有3個(gè)可能值的因子變量ok表示公司檢查了該交易并認(rèn)為該交易有效;fraud表示發(fā)現(xiàn)該交易為欺詐;unkn表示該交易未經(jīng)過公司審核。進(jìn)一步使用nlevels函數(shù)發(fā)現(xiàn)數(shù)據(jù)中包含大量的產(chǎn)品和銷售人員的信息從數(shù)據(jù)的統(tǒng)計(jì)特征初步可以看出v431號(hào)雇員錄入的數(shù)據(jù)最多,p1125號(hào)產(chǎn)品賣出最多,可以看到產(chǎn)品銷售的數(shù)量和總價(jià)值的四分位數(shù)據(jù),公司已檢查承認(rèn)有效的數(shù)據(jù)有14462,已發(fā)現(xiàn)欺詐的數(shù)據(jù)有1270,未經(jīng)過審查的有385414,說明大量數(shù)據(jù)還未經(jīng)過審核,需要接下來的數(shù)據(jù)分析來檢查其中的欺詐數(shù)據(jù)。3.1.3.使用Length函數(shù)計(jì)算總數(shù)據(jù)中有多少
7、缺失數(shù)據(jù)可以看到這樣的數(shù)據(jù)有888條,在40萬組數(shù)據(jù)中可以忽略不計(jì)。應(yīng)該注意當(dāng)數(shù)據(jù)量特別大時(shí),改用summary函數(shù) 在統(tǒng)計(jì)過的銷售記錄中,根據(jù)以上的數(shù)據(jù)結(jié)果可以看出,交易有效的是3%,交易欺詐的是0.31%,未經(jīng)審核的是96%,說明欺詐比例比較小。每個(gè)交易人員的交易數(shù)量如圖3-1。圖 3-1每個(gè)產(chǎn)品的交易數(shù)量如圖3-2。 圖3-2 結(jié)合兩張圖可以看到:所有銷售人員的數(shù)據(jù)相當(dāng)不同,對(duì)于每個(gè)產(chǎn)品,波動(dòng)性較大,所以,下面需要對(duì)不同的產(chǎn)品分別進(jìn)行處理。如果兩個(gè)交易報(bào)告中的產(chǎn)品是相同的,而產(chǎn)品的標(biāo)準(zhǔn)價(jià)格差別太大,那么其中的一個(gè)交易報(bào)告將視為不正常,不過,用這兩個(gè)數(shù)量得出的結(jié)論可能不是理想的根據(jù)。實(shí)際上
8、,由于每個(gè)交易中銷售的產(chǎn)品數(shù)量不同,所以用單位產(chǎn)品的價(jià)格來進(jìn)行上面的分析可能更正確??梢园堰@個(gè)單位產(chǎn)品價(jià)格作為新的一列加入到數(shù)據(jù)中??梢钥闯觯?dāng)分析一個(gè)較短的時(shí)期內(nèi)的交易時(shí),產(chǎn)品的交易價(jià)格不會(huì)出現(xiàn)較大的變化。得到五個(gè)中最貴和最便宜的產(chǎn)品如圖3-3。圖 3-3下面類似進(jìn)行分析,找出給公司帶來更多(少)資金的銷售人員可以看出給公司帶來大部分資金的是前100名銷售人員的資金收入,底部2000人的總收入?yún)s不足公司的2%,說明,該公司需要進(jìn)行內(nèi)部改革。3.2.3如果我們對(duì)每個(gè)產(chǎn)品所銷售的數(shù)量進(jìn)行類似分析,結(jié)果更加不平衡由上面的數(shù)據(jù)可知,這個(gè)數(shù)據(jù)對(duì)產(chǎn)品的生產(chǎn)十分有用,它并不意味著公司應(yīng)該停止生產(chǎn)銷售量少的
9、產(chǎn)品。為了發(fā)現(xiàn)交易異常,我們做出一個(gè)假設(shè),所有產(chǎn)品的單位價(jià)格都遵循正態(tài)分布。4數(shù)據(jù)清洗4.1 缺失值分析處理缺失值的方法有三種:1、剔除這些個(gè)案;2、用某些策略來填補(bǔ)缺失數(shù)據(jù);3、運(yùn)用可以處理缺失值的工具(本文主要用前兩種方法) 有些產(chǎn)品只有極少的交易量,需要從這些交易的信息來確定交易中是否有異常,這會(huì)很困難,所以我們采用將這些物品和一些產(chǎn)品的交易一起來分析,從而避免這個(gè)問題。4.2 缺失值處理變量Quant和變量Val都有數(shù)據(jù)缺失交易,上面3.1.3提到因?yàn)檫@樣的數(shù)據(jù)有888條,在40萬組數(shù)據(jù)中可以忽略不計(jì)。但是,在實(shí)際問題中,如果將這888個(gè)案例全部剔除,會(huì)導(dǎo)致某些產(chǎn)品和銷售人員的大部分交
10、易值缺失,所以,全部剔除888個(gè)案例是有問題的,下面的代碼是驗(yàn)證這一結(jié)論:先給出每個(gè)銷售人員和產(chǎn)品的交易數(shù)量以及存在問題的交易相關(guān)的銷售人員和產(chǎn)品,下面給出變量Quant和變量Val同時(shí)有缺失值的交易占很大比例的銷售人員: 結(jié)果表明:從銷售人員來看,同時(shí)在這兩個(gè)變量都有缺失的交易數(shù)很少,所以,可以直接剔除在兩個(gè)變量都有缺失的交易。下面給出變量Quant和變量Val同時(shí)有缺失值的交易占很大比例的產(chǎn)品: 從以上兩部分來看,剔除所有同時(shí)在數(shù)量和價(jià)格上有缺失值的交易是最好的選擇。 下面分析剩余的在數(shù)量或者價(jià)格變量上有缺失值的交易,首先計(jì)算每一種產(chǎn)品在數(shù)量上有缺失值的交易比: P4491產(chǎn)品的所有交易數(shù)
11、量是缺失的,由于我們沒有其單位價(jià)格,所以,沒有辦法得到進(jìn)一步的信息,所以,我們無法用這些產(chǎn)品的交易信息做進(jìn)一步分析。下面,我們從數(shù)據(jù)集中刪除該種產(chǎn)品的信息,由于我們?cè)跀?shù)據(jù)集中刪除了該種產(chǎn)品的信息,所以,我們要更新列Prod的水平,檢驗(yàn)是否有銷售人員的所有交易數(shù)量為缺失值? 從結(jié)果可以看到:有幾個(gè)銷售人員沒有在報(bào)告中填寫交易的數(shù)量信息,但是,由于我們使用單位價(jià)格做的假設(shè),所以,只要我們有其他銷售人員報(bào)告的相同產(chǎn)品的交易,我們就可以用那些信息來填補(bǔ)這些缺失值,所以,我們不需要?jiǎng)h除這些交易。 下面分析剩余的數(shù)量或價(jià)格變量上有缺失值的交易,先計(jì)算每一種產(chǎn)品在數(shù)量上有缺失值開始: P2442和p2443
12、這兩個(gè)產(chǎn)品的交易數(shù)量有缺失,所以,我們無法可用這些值來進(jìn)行下一步分析。 下面我們計(jì)算每一個(gè)產(chǎn)品的標(biāo)準(zhǔn)價(jià)格,來填補(bǔ)缺失值,因?yàn)槊總€(gè)產(chǎn)品有一個(gè)標(biāo)準(zhǔn)單價(jià),我們用它們來計(jì)算兩個(gè)可能的缺失值。 當(dāng)有些產(chǎn)品只有極少的交易,用這些數(shù)據(jù)來分析是否有異常,是很困難的,下面我們把其他一些產(chǎn)品的交易加進(jìn)來一起分析 上面使用函數(shù)獲得中位數(shù),第一個(gè)四分位數(shù)和第三個(gè)四分位數(shù)。對(duì)每個(gè)產(chǎn)品的所有交易量,計(jì)算這些統(tǒng)計(jì)值,從分析中剔除有欺詐的交易。行名稱在為其尋找最相似的產(chǎn)品,第一列是相似產(chǎn)品,下面得到相似產(chǎn)品的ID下面找相似產(chǎn)品的數(shù)量從上面結(jié)果可以看到:從其他交易中產(chǎn)品數(shù)得到我們所需要的產(chǎn)品信息,這對(duì)于我們分析哪些交易是不正常
13、交易是有用的。 實(shí)驗(yàn)結(jié)果: 結(jié)果可以看出:決策精確度和回朔精確度很低,這個(gè)結(jié)果很有可能是錯(cuò)誤的,下面我們所調(diào)用的函數(shù)通過應(yīng)用每一次迭代(ho.BPrule)的排序方法返回這些值作為統(tǒng)計(jì)量向量的屬性。得到下面兩張圖: 兩張圖都是對(duì)每次保留(hold-out)過程得到的曲線的垂直平均,為了達(dá)到80%的回朔精確度,下面用LOF方法: 由圖可以可以看出:對(duì)于低于25%-30%的檢驗(yàn)限值,LOF方法要優(yōu)于BPrule方法,對(duì)于高的檢驗(yàn)值,兩者差別不明顯。5數(shù)據(jù)建模5.1 實(shí)驗(yàn)方法 我們使用的數(shù)據(jù)集的大小很合理。這種情況下,我們選擇保留方法來進(jìn)行實(shí)驗(yàn)是比較有意義的。這個(gè)方法把已有的數(shù)據(jù)集隨機(jī)地分成倆部分(
14、通常比例為70%和30%),其中的一部分用于獲取模型,而另一部分用來測(cè)試。如果有必要,這個(gè)過程可以重復(fù)多次,以確保獲得的結(jié)果更穩(wěn)健。我們數(shù)據(jù)集的容量可以確保我們獲得的結(jié)果在統(tǒng)計(jì)學(xué)上是可靠的。如果,我們選擇30%的數(shù)據(jù)作為驗(yàn)證集,就相應(yīng)于120343個(gè)報(bào)告。 在這種方法下,困難就是不同類型報(bào)告之間分布的不均衡性,即在標(biāo)記個(gè)案上是不平衡的,正常的重抽樣策略可能會(huì)導(dǎo)致一個(gè)測(cè)試集的正常報(bào)告/.欺詐報(bào)告的不同分布。當(dāng)有這種不均衡的分布類型時(shí),推薦使用分層抽樣方法。這種方法從具有不同類型的觀測(cè)值袋子里隨機(jī)抽樣,以確保所抽取的樣本遵守初始數(shù)據(jù)的分布。5.2 建模方法 數(shù)據(jù)集中有兩種類型的觀測(cè)值,有一個(gè)較小的
15、數(shù)據(jù)集,其中的數(shù)據(jù)沒有標(biāo)記,它有交易的特征描述和檢驗(yàn)的結(jié)果。另外一個(gè)較大的數(shù)據(jù)集是沒有標(biāo)記的,它們沒有被檢驗(yàn),列Insp的值為unkn,在這種情況下,取決于用于建模的觀測(cè)值。我們采用的建模方法是無監(jiān)督技術(shù)。 對(duì)于未被檢驗(yàn)的報(bào)告,Insp列沒有任何信息,所以它對(duì)分析沒有影響,對(duì)于這些觀測(cè)值,我們只有對(duì)交易的描述。這意味著這些銷售報(bào)告僅僅有描述它的自變量。 聚類分析是描述性數(shù)據(jù)挖局的一個(gè)例子,聚類方法試圖對(duì)一組觀測(cè)值形成多個(gè)聚類,一個(gè)聚類內(nèi)的個(gè)案相似,從而找到這些觀測(cè)值的“自然”組別。相似性概念通常要求由觀測(cè)值的變量所定義的空間給出一個(gè)距離定義。這個(gè)距離定義衡量一個(gè)觀測(cè)值和其他觀測(cè)值之間距離的函數(shù)
16、。距離靠近的個(gè)案通常認(rèn)為屬于同一個(gè)自然組。 異常值檢測(cè)也可以看做是描述性的數(shù)據(jù)挖掘任務(wù)。有些異常值(也稱為離群值)檢測(cè)方法假定數(shù)據(jù)的預(yù)期分布,把背離這一分布的任何值標(biāo)記為異常值,另一個(gè)常見的異常值檢測(cè)策略是假定一個(gè)變量空間的距離度量,然后把距離其他觀測(cè)值“太遠(yuǎn)”的觀測(cè)值標(biāo)記為異常觀測(cè)值。 應(yīng)用PRcurve()函數(shù)表示出給出數(shù)據(jù)的曲線圖,并用這類曲線來評(píng)價(jià)異常值排序模型 這部分內(nèi)容主要討論:當(dāng)給出交易報(bào)告的一個(gè)測(cè)試集時(shí),每個(gè)模型將產(chǎn)生這些報(bào)告的排序,所以,下面將主要討論怎樣評(píng)價(jià)這個(gè)排序。 當(dāng)我們的目標(biāo)是預(yù)測(cè)一個(gè)小集合的事件時(shí),決策精確度和回朔精確度是合適的評(píng)價(jià)指標(biāo)。給定檢驗(yàn)限制k值,我們可以計(jì)
17、算排序的最頂端k個(gè)位置的決策精確度和回朔精確度。這個(gè)限定值k決定了根據(jù)模型哪些報(bào)告應(yīng)該被檢驗(yàn)。從監(jiān)督分類的角度看,這相當(dāng)于把頂端的k個(gè)位置預(yù)測(cè)為frant類,其余的則為正常報(bào)告,決策精確度告訴我們頂端k個(gè)值的多大比例事實(shí)上是標(biāo)記為欺詐的報(bào)告?;厮肪_度的值給出這k個(gè)位置所包含的測(cè)試集的欺詐行為的比例。 通常決策精確度和回溯精確度之間有一個(gè)權(quán)衡。比如,如果所有測(cè)試集個(gè)案都預(yù)測(cè)為欺詐事件,那么很容易使決策金確度達(dá)到100%。然而,這樣的決策也將不可避免的導(dǎo)致非常低的回溯精確度。但是,我們當(dāng)前的應(yīng)用有一些特殊性。給定用于檢驗(yàn)行為的資源的約束條件,我們真正想要的是最大限度的利用這些資源。這意味著,如果
18、我們用x小時(shí)檢查報(bào)告,并能夠在這x個(gè)小時(shí)捕捉到所有的欺詐行為,那么我們很高興。即使在這x小時(shí),我們實(shí)際上也檢查了一些正常的報(bào)告,也就是說有較低的回溯精確度?;厮菥_度實(shí)際上是在此應(yīng)用中的關(guān)鍵問題。我們需要的是能夠用現(xiàn)有的資源達(dá)到100%的回溯精確度。 決策精確度/回朔精確度(PR)曲線是模型性能對(duì)這兩者的一種可視化表示,通過在不同的工作點(diǎn)得到上面兩個(gè)統(tǒng)計(jì)量的插值,從而得到該曲線。在我們的例子中,工作點(diǎn)對(duì)應(yīng)于應(yīng)用在模型所產(chǎn)生的離群值排序上的不同資源限制,對(duì)不同的限制水平進(jìn)行迭代,得到不同的決策精確度和回朔精確度。6 數(shù)據(jù)分析與展示圖4-1 每個(gè)銷售人員的交易數(shù)量 圖4-2 每個(gè)產(chǎn)品的交易數(shù)量 結(jié)
19、合上述兩張圖可以看到:所有銷售人員的數(shù)據(jù)相當(dāng)不同,對(duì)于每個(gè)產(chǎn)品,波動(dòng)性較大,所以,下面需要對(duì)不同的產(chǎn)品分別進(jìn)行處理。如果兩個(gè)交易報(bào)告中的產(chǎn)品是相同的,而產(chǎn)品的標(biāo)準(zhǔn)價(jià)格差別太大,那么其中的一個(gè)交易報(bào)告將視為不正常,不過,用這兩個(gè)數(shù)量得出的結(jié)論可能不是理想的根據(jù)。實(shí)際上,由于每個(gè)交易中銷售的產(chǎn)品數(shù)量不同,所以用單位產(chǎn)品的價(jià)格來進(jìn)行上面的分析可能更正確??梢园堰@個(gè)單位產(chǎn)品價(jià)格作為新的一列加入到數(shù)據(jù)中。圖4-3 最便宜和最昂貴產(chǎn)品的單位價(jià)格分布圖4-4 單位價(jià)格分布的某些特征圖4-5 平滑(右)和非平滑(左)的PR曲線圖4-6 提升圖(左圖)以及累積回溯精確度圖(右圖)圖4-7 BPrule 方法的P
20、R圖PR圖(左圖)和累積回溯精確度曲線(右圖)圖4-8 LOF方法和BPrule方法的PR圖(左圖)和累積回溯精確度曲線(右圖)圖4-9 ORh,LOF方法和BPrule方法的PR圖(左圖)和累積回溯精確度曲線(右圖)圖 4-10 用SMOTE方法產(chǎn)生少數(shù)類的個(gè)案圖4-11 簡(jiǎn)單貝斯方法和ORh方法的PR圖(左圖)和累積回溯精確度曲線(右圖)圖4-12 兩個(gè)版本的簡(jiǎn)單貝斯方法和ORh方法的PR圖(左圖)和累積回溯精確度曲線(右圖)圖4-13 簡(jiǎn)單貝斯方法,ORh方法和AdaBoost,MI方法的PR圖(左圖)和累積回溯精確度曲線(右圖)圖4-14 自訓(xùn)練的簡(jiǎn)單貝斯方法,標(biāo)準(zhǔn)簡(jiǎn)單貝斯方法和ORh
21、方法的PR圖(左圖)和累積回溯精確度曲線(右圖)由圖可以可以看出:對(duì)于低于25%-30%的檢驗(yàn)限值,LOF方法要優(yōu)于BPrule方法,對(duì)于高的檢驗(yàn)值,兩者差別不明顯。圖4-15 自訓(xùn)練的AdaBoost,MI方法,ORh方法和標(biāo)準(zhǔn)的AdaBoost,MI方法的PR圖(左圖)和累積回溯精確度曲線(右圖)7 結(jié)論 我們所使用的數(shù)據(jù)的正確率未知,所以,用這些數(shù)據(jù)進(jìn)行分析自然也存在誤差,所以,在現(xiàn)實(shí)問題中,應(yīng)該考慮到不要基于錯(cuò)誤的數(shù)據(jù)來給公司提建議。8評(píng)價(jià)與建議在欺詐偵測(cè)問題所嘗試的所有模型中,累積回溯精確度曲線確認(rèn)了自我訓(xùn)練的AdaBoost.Ml模型是最好的模型。特別是,在檢驗(yàn)限值水平在15%20
22、%時(shí),就偵測(cè)出的欺詐報(bào)告的比例而言,它明顯地好于其他的模型系統(tǒng)。就決策精確度而言,這個(gè)模型的分?jǐn)?shù)不是太吸引人,但前面我們提到,那些被模型放在較高排序位置的未標(biāo)記報(bào)告最終被確認(rèn)認(rèn)為欺詐也不是一件壞事。附錄程序1:數(shù)據(jù)探索summary(sales) nlevels(sales$ID) nlevels(sales$Prod)length(which(is.na(sales$Quant) & is.na(sales$Val) table(sales$Insp)/nrow(sales)*100 totS - table(sales$ID)totP - table(sales$Prod)barplot(
23、totS,main=Transactions per salespeople,names.arg=,xlab=Salespeople,ylab=Amount) /繪制每個(gè)銷售人員報(bào)告的數(shù)量barplot(totP,main=Transactions per product,names.arg=,xlab=Products,ylab=Amount)sales$Uprice - sales$Val/sales$Quant /將單位產(chǎn)品價(jià)格作為新的一列加入到數(shù)據(jù)框中summary(sales$Uprice) /獲取數(shù)據(jù)統(tǒng)計(jì)特性attach(sales) /復(fù)制sales數(shù)據(jù)框的每一列,為每一列建立一
24、個(gè)新對(duì)象upp - aggregate(Uprice,list(Prod),median,na.rm=T)topP - sapply(c(T,F),function(o) upporder(upp,2,decreasing=o)1:5,1)colnames(topP) - c(Expensive,Cheap)topP/用單位價(jià)格的中位數(shù)來表示已售產(chǎn)品的單位價(jià)格tops - salesProd %in% topP1,c(Prod,Uprice)tops$Prod - factor(tops$Prod)boxplot(Uprice Prod,data=tops,ylab=Uprice,log=y)
25、 /繪制一個(gè)箱圖 /用5個(gè)產(chǎn)品的單位價(jià)格箱圖來確認(rèn)他們完全不同的價(jià)格分別vs - aggregate(Val,list(ID),sum,na.rm=T)scoresSs - sapply(c(T,F),function(o) vsorder(vs$x,decreasing=o)1:5,1)colnames(scoresSs) - c(Most,Least)scoresSs /進(jìn)行分類找出給公司帶來更多(更少)資金的銷售人員sum(vsorder(vs$x,decreasing=T)1:100,2)/sum(Val,na.rm=T)*100sum(vsorder(vs$x,decreasing=
26、F)1:2000,2)/sum(Val,na.rm=T)*100qs - aggregate(Quant,list(Prod),sum,na.rm=T)scoresPs - sapply(c(T,F),function(o) qsorder(qs$x,decreasing=o)1:5,1)colnames(scoresPs) - c(Most,Least)scoresPssum(as.double(qsorder(qs$x,decreasing=T)1:100,2)sum(as.double(Quant),na.rm=T)*100sum(as.double(qsorder(qs$x,decre
27、asing=F)1:4000,2)sum(as.double(Quant),na.rm=T)*100 /as.double()轉(zhuǎn)換成double類型 /對(duì)每個(gè)產(chǎn)品所銷售的數(shù)量進(jìn)行類似的分析out - tapply(Uprice,list(Prod=Prod),function(x) length(boxplot.stats(x)$out) /boxplot.stats(x)可以獲取某些用于繪制箱圖的統(tǒng)量outorder(out,decreasing=T)1:10 /計(jì)算含有較多離群值的產(chǎn)品sum(out) /求離群值sum(out)/nrow(sales)*100 /求離群值的比例Data p
28、roblemstotS - table(ID)totP - table(Prod) /每個(gè)銷售人員和產(chǎn)品的交易數(shù)量nas - saleswhich(is.na(Quant) & is.na(Val),c(ID,Prod) /與顯示存在問題的交易相關(guān)的銷售人員的產(chǎn)品propS - 100*table(nas$ID)/totSpropSorder(propS,decreasing=T)1:10 /計(jì)算Quant和Val同時(shí)有缺失值的交易占大比例的銷售人員propP - 100*table(nas$Prod)/totPpropPorder(propP,decreasing=T)1:10detach(
29、sales) /detach()禁止直接訪問數(shù)據(jù)框的列sales - sales-which(is.na(sales$Quant) & is.na(sales$Val),nnasQp - tapply(sales$Quant,list(sales$Prod), /計(jì)算每一種產(chǎn)品在數(shù)量上有缺失的交易比function(x) sum(is.na(x)propNAsQp - nnasQp/table(sales$Prod)propNAsQporder(propNAsQp,decreasing=T)1:10 sales - sales!sales$Prod %in% c(p2442,p2443), /
30、刪除交易報(bào)告nlevels(sales$Prod) /更新Prod的列sales$Prod - factor(sales$Prod)nlevels(sales$Prod)nnasQs - tapply(sales$Quant,list(sales$ID),function(x) sum(is.na(x) /判斷是否有銷售人員的所有交易為缺失值propNAsQs - nnasQs/table(sales$ID)propNAsQsorder(propNAsQs,decreasing=T)1:10nnasVp - tapply(sales$Val,list(sales$Prod), /對(duì)Val的缺失
31、值進(jìn)行分析function(x) sum(is.na(x)propNAsVp - nnasVp/table(sales$Prod)propNAsVporder(propNAsVp,decreasing=T)1:10 /對(duì)銷售人員方面進(jìn)行分析nnasVs - tapply(sales$Val,list(sales$ID),function(x) sum(is.na(x)propNAsVs - nnasVs/table(sales$ID)propNAsVsorder(propNAsVs,decreasing=T)1:10tPrice - tapply(salessales$Insp != frau
32、d,Uprice, /使用每個(gè)產(chǎn)品單位價(jià)格的中位數(shù)作為相應(yīng)的標(biāo)準(zhǔn)價(jià)格list(salessales$Insp != fraud,Prod),median,na.rm=T)noQuant - which(is.na(sales$Quant) /填補(bǔ)剩余的缺失值salesnoQuant,Quant - ceiling(salesnoQuant,Val /tPricesalesnoQuant,Prod)noVal - which(is.na(sales$Val)salesnoVal,Val - salesnoVal,Quant *tPricesalesnoVal,Prodsales$Uprice -
33、 sales$Val/sales$Quant /重新計(jì)算Uprice列哦值來填充先前未知的單位價(jià)格save(sales,file=salesClean.Rdata) /保存到數(shù)據(jù)集attach(sales)notF - which(Insp != fraud)ms - tapply(UpricenotF,list(Prod=ProdnotF),function(x) bp - boxplot.stats(x)$stats / boxplot.stats()獲取中位數(shù),第一個(gè)四分位數(shù)和第三個(gè)四分位c(median=bp3,iqr=bp4-bp2)ms - matrix(unlist(ms),le
34、ngth(ms),2,byrow=T,dimnames=list(names(ms),c(median,iqr)head(ms) /得到矩陣par(mfrow=c(1,2) /根據(jù)中位數(shù)和IQR繪制圖像plot(ms,1,ms,2,xlab=Median,ylab=IQR,main=)plot(ms,1,ms,2,xlab=Median,ylab=IQR,main=,col=grey,log=xy) /log=xy用來設(shè)置圖像的兩個(gè)數(shù)軸的標(biāo)度為對(duì)數(shù)標(biāo)度smalls - which(table(Prod) 20)points(log(mssmalls,1),log(mssmalls,2),pch
35、=+)dms - scale(ms) /用對(duì)象ms來保存前面獲得的每個(gè)產(chǎn)品的單位價(jià)格的中位數(shù)和IQRsmalls - which(table(Prod) 20)prods - tapply(sales$Uprice,sales$Prod,list)similar - matrix(NA,length(smalls),7,dimnames=list(names(smalls),c(Simil,ks.stat,ks.p,medP,iqrP,medS,iqrS)for(i in seq(along=smalls) d - scale(dms,dmssmallsi,FALSE)d - sqrt(dro
36、p(d2 %*% rep(1,ncol(d)stat - ks.test(prodssmallsi,prodsorder(d)2)similari, = 0.9,) /檢查單位產(chǎn)品價(jià)格分布有相似性的產(chǎn)品數(shù)量save(similar,file=similarProducts.Rdata) /保存similar對(duì)象程序2:評(píng)價(jià)準(zhǔn)則library(ROCR) /添加包ROCRdata(ROCR.simple) pred - prediction( ROCR.simple$predictions, ROCR.simple$labels ) /使用預(yù)測(cè)函數(shù)perf - performance(pred,
37、prec,rec)plot(perf) PRcurve - function(preds,trues,.) require(ROCR,quietly=T)pd - prediction(preds,trues)pf - performance(pd,prec,rec)pfy.values - lapply(pfy.values,function(x) rev(cummax(rev(x) /cummax()和rev()來計(jì)算差值的預(yù)測(cè)精確度 plot(pf,.)PRcurve(ROCR.simple$predictions, ROCR.simple$labels ) / PRcurve()展示示
38、例數(shù)據(jù)pred - prediction( ROCR.simple$predictions, ROCR.simple$labels ) perf - performance(pred,lift,rpp)plot(perf,main=Lift Chart) /用ROCR中的函數(shù)繪制提升圖CRchart - function(preds,trues,.) require(ROCR,quietly=T) /運(yùn)用ROCRzhong中的函數(shù)pd - prediction(preds,trues)pf - performance(pd,rec,rpp)plot(pf,.) /繪制積累回溯精確圖 CRcha
39、rt(ROCR.simple$predictions, ROCR.simple$labels, /添加一個(gè)CRchart()包main=Cumulative Recall Chart)avgNDTP - function(toInsp,train,stats) /計(jì)算NDTP的平均值if (missing(train) & missing(stats) stop(Provide either the training data or the product stats)if (missing(stats) notF - which(train$Insp != fraud)stats - tap
40、ply(train$UpricenotF,list(Prod=train$ProdnotF),function(x) bp - boxplot.stats(x)$statsc(median=bp3,iqr=bp4-bp2)stats - matrix(unlist(stats),length(stats),2,byrow=T,dimnames=list(names(stats),c(median,iqr)statswhich(stats,iqr=0),iqr - statswhich(stats,iqr=0),medianmdtp - mean(abs(toInsp$Uprice-statst
41、oInsp$Prod,median) /statstoInsp$Prod,iqr)return(mdtp)程序3:實(shí)驗(yàn)方法evalOutlierRanking - function(testSet,rankOrder,Threshold,statsProds) ordTS - testSetrankOrder,N - nrow(testSet)nF - if (Threshold 1) eger(Threshold*N) else Threshold /計(jì)算決策精確度cm - table(c(rep(fraud,nF),rep(ok,N-nF),ordTS$Insp)prec -
42、cmfraud,fraud/sum(cmfraud,) /計(jì)算回溯精確度rec - cmfraud,fraud/sum(cm,fraud)AVGndtp - avgNDTP(ordTSnF,stats=statsProds) /計(jì)算NDTPreturn(c(Precision=prec,Recall=rec,avgNDTP=AVGndtp)# The modified box plot ruleBPrule - function(train,test) notF - which(train$Insp != fraud)ms - tapply(train$UpricenotF,list(Prod
43、=train$ProdnotF), /計(jì)算四分位距function(x) bp - boxplot.stats(x)$statsc(median=bp3,iqr=bp4-bp2)ms - matrix(unlist(ms),length(ms),2,byrow=T, /計(jì)算中位數(shù) dimnames=list(names(ms),c(median,iqr)mswhich(ms,iqr=0),iqr - mswhich(ms,iqr=0),medianORscore - abs(test$Uprice-mstest$Prod,median) /mstest$Prod,iqrreturn(list(
44、rankOrder=order(ORscore,decreasing=T), /返回由離群值分?jǐn)?shù)和測(cè)試集觀察值組成的列表rankScore=ORscore)notF - which(sales$Insp != fraud) /計(jì)算每一種產(chǎn)品的中位數(shù)和IQR值globalStats - tapply(sales$UpricenotF,list(Prod=sales$ProdnotF),function(x) bp - boxplot.stats(x)$statsc(median=bp3,iqr=bp4-bp2)globalStats - matrix(unlist(globalStats),le
45、ngth(globalStats),2,byrow=T,dimnames=list(names(globalStats),c(median,iqr)globalStatswhich(globalStats,iqr=0),iqr - globalStatswhich(globalStats,iqr=0),medianho.BPrule - function(form, train, test, .) /在holdout()函數(shù)中進(jìn)行,res - BPrule(train,test)structure(evalOutlierRanking(test,res$rankOrder,.), /struc
46、ture()用來建立一個(gè)對(duì)象并制定該對(duì)象的屬性值itInfo=list(preds=res$rankScore, /存儲(chǔ)信息使返回值帶有itsInfo的屬性trues=ifelse(test$Insp=fraud,1,0)bp.res - holdOut(learner(ho.BPrule,pars=list(Threshold=0.1statsProds=globalStats),dataset(Insp .,sales),hldSettings(3,0.3,1234,T), /設(shè)置函數(shù)hldsetting() /第四個(gè)參數(shù)為T時(shí)表示使用分層隨機(jī)抽樣itsInfo=TRUE)summary(bp.res) /總結(jié)bp.res的實(shí)驗(yàn)結(jié)果par(mfrow=c(1,2) /把圖窗口分成兩個(gè)info - attr(bp.res,itsInfo) /attr()提取每一迭代中ho.BPrule()返回的包預(yù)測(cè)值和真實(shí)信息的列表PTs.bp - aperm(array(unlist(i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北藝術(shù)職業(yè)學(xué)院《模具CAD-CAM》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度食品檢測(cè)設(shè)備銷售合同范本
- 2025年技術(shù)轉(zhuǎn)讓合同技術(shù)標(biāo)的詳細(xì)描述2篇
- 紅河云南紅河蒙自經(jīng)濟(jì)技術(shù)開發(fā)區(qū)消防救援大隊(duì)招收專職消防員20人筆試歷年參考題庫附帶答案詳解
- 2025年度物聯(lián)網(wǎng)解決方案行銷合同3篇
- 玉溪云南玉溪澄江市教育體育系統(tǒng)招聘2025年畢業(yè)生9人(第二次)筆試歷年參考題庫附帶答案詳解
- 江蘇2025年江蘇建筑職業(yè)技術(shù)學(xué)院湖西校區(qū)招聘人事代理工作人員26人筆試歷年參考題庫附帶答案詳解
- 2025年房產(chǎn)及土地使用權(quán)受贈(zèng)合同3篇
- 合肥2024年安徽合肥廬江縣社區(qū)工作者招聘56人筆試歷年參考題庫附帶答案詳解
- 三明2024年福建三明市第二醫(yī)院(三明市永安總醫(yī)院)招聘23人筆試歷年參考題庫附帶答案詳解
- 2023年河南省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 2024年安徽省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 山西省太原市重點(diǎn)中學(xué)2025屆物理高一第一學(xué)期期末統(tǒng)考試題含解析
- 充電樁項(xiàng)目運(yùn)營方案
- 2024年農(nóng)民職業(yè)農(nóng)業(yè)素質(zhì)技能考試題庫(附含答案)
- 高考對(duì)聯(lián)題(對(duì)聯(lián)知識(shí)、高考真題及答案、對(duì)應(yīng)練習(xí)題)
- 新版《鐵道概論》考試復(fù)習(xí)試題庫(含答案)
- 【律師承辦案件費(fèi)用清單】(計(jì)時(shí)收費(fèi))模板
- 高中物理競(jìng)賽真題分類匯編 4 光學(xué) (學(xué)生版+解析版50題)
- Unit1FestivalsandCelebrations詞匯清單高中英語人教版
- 2024年上海市中考語文試題卷(含答案)
評(píng)論
0/150
提交評(píng)論