最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

R語(yǔ)言關(guān)聯(lián)挖掘?qū)嵗ㄙ?gòu)物籃分析)

2021-06-02 17:25 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=16297

原文出處:拓端數(shù)據(jù)部落公眾號(hào)

?

關(guān)聯(lián)挖掘通常用于通過識(shí)別經(jīng)常一起購(gòu)買的產(chǎn)品來提出產(chǎn)品推薦。但是,如果您不小心,則規(guī)則在某些情況下可能會(huì)產(chǎn)生誤導(dǎo)性的結(jié)果。

關(guān)聯(lián)挖掘通常是根據(jù)零售市場(chǎng)或在線電子商務(wù)商店的交易數(shù)據(jù)進(jìn)行的。由于大多數(shù)交易數(shù)據(jù)很大,因此該apriori算法使更容易快速找到這些模式或規(guī)則。

那么,什么是規(guī)則?

規(guī)則是一種符號(hào),表示經(jīng)常購(gòu)買哪些商品和哪些商品。它具有LHS和RHS部分,可以表示如下:

項(xiàng)目集A =>項(xiàng)目集B

這意味著,右側(cè)的商品經(jīng)常與左側(cè)的商品一起購(gòu)買。

如何衡量規(guī)則的強(qiáng)度?

apriori()產(chǎn)生最相關(guān)集從給定的交易數(shù)據(jù)的規(guī)則。它還顯示了這些規(guī)則的支持度,置信度和提升度。這三個(gè)度量可用于確定規(guī)則的相對(duì)強(qiáng)度。那么這些術(shù)語(yǔ)是什么意思呢?

讓我們考慮規(guī)則A => B,以便計(jì)算這些指標(biāo)。

?

?

?

提升度是A和B的并存超過獨(dú)立的A和B并存的預(yù)期概率的因素。因此,提升度越高,A和B一起發(fā)生的機(jī)會(huì)就越高。

讓我們看看如何使用R獲取規(guī)則,置信度,提升度等。

交易數(shù)據(jù)與數(shù)據(jù)框不同,使用head(Groceries)不會(huì)在數(shù)據(jù)中顯示交易項(xiàng)目。要查看交易,請(qǐng)改用inspect()函數(shù)。

由于關(guān)聯(lián)挖掘處理交易,因此必須將數(shù)據(jù)轉(zhuǎn)換為class?transactions。這是必要的步驟,因?yàn)樵?code>apriori()函數(shù)transactions僅接受交易類的數(shù)據(jù)。

  1. library(arules)

  2. class(Groceries)

  3. #> [1] "transactions"

  4. #> attr(,"package")

  5. #> [1] "arules"

  6. inspect(head(Groceries, 3))

  7. #>商品

  8. #> 1 {citrus fruit,

  9. #> ? ?semi-finished bread,

  10. #> ? ?margarine,

  11. #> ? ?ready soups}

  12. #> 2 {tropical fruit,

  13. #> ? ?yogurt,

  14. #> coffee}

  15. #> 3 {whole milk}

如果您必須從文件中讀取數(shù)據(jù)作為交易數(shù)據(jù),請(qǐng)使用read.transactions()。

tdata <- read.transactions("transactions_data.txt", sep="\t")

如果您已經(jīng)將交易存儲(chǔ)為數(shù)據(jù)框,則可以將其轉(zhuǎn)換為類transactions,如下所示:

tData <- as (myDataFrame, "transactions") # 轉(zhuǎn)換為“交易”類

這里有一些其他有用的實(shí)用程序函數(shù):

  1. size(head(Groceries)) # 每個(gè)觀察項(xiàng)的數(shù)量

  2. #> [1] 4 3 1 4 4 5

  3. LIST(head(Groceries, 3)) # 將'交易'類轉(zhuǎn)換為列表,注意CAPS中的LIST

  4. #> [[1]]

  5. #> [1] "citrus fruit" ? ? ? ?"semi-finished bread" "margarine"

  6. #> [4] "ready soups"

  7. #>

  8. #> [[2]]

  9. #> [1] "tropical fruit" "yogurt" ? ? ? ? "coffee"

  10. #>

  11. #> [[3]]

  12. #> [1] "whole milk"

如何查看最常出現(xiàn)的項(xiàng)目?

eclat()交易對(duì)象中獲取并給出根據(jù)您提供的支持?jǐn)?shù)據(jù)的最常見物品suppmaxlen定義頻繁項(xiàng)中的每個(gè)項(xiàng)目集項(xiàng)目的最大數(shù)量。

  1. frequentItems <- eclat (Groceries, parameter = list(supp = 0.07, maxlen = 15)) # 計(jì)算對(duì)頻繁物品的支持度

  2. inspect(frequentItems)

  3. #> ? ?items ? ? ? ? ? ? ? ? ? ? ? ? support

  4. #> 1 ?{other vegetables,whole milk} 0.07483477

  5. #> 2 ?{whole milk} ? ? ? ? ? ? ? ? ?0.25551601

  6. #> 3 ?{other vegetables} ? ? ? ? ? ?0.19349263

  7. #> 4 ?{rolls/buns} ? ? ? ? ? ? ? ? ?0.18393493

  8. #> 5 ?{yogurt} ? ? ? ? ? ? ? ? ? ? ?0.13950178

  9. #> 6 ?{soda} ? ? ? ? ? ? ? ? ? ? ? ?0.17437722

  10. itemFrequencyPlot(Groceries, topN=10, type="absolute", main="Item Frequency") # 繪制頻繁項(xiàng)目

如何獲得推薦規(guī)則?


  1. inspect(head(rules_conf)) # 顯示所有規(guī)則的支持度,提升度和置信度

  2. #> ? ? ?lhs ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? rhs ? ? ? ? ? ? ? ?support ? ? confidence lift

  3. #> 113 ?{rice,sugar} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? => {whole milk} ? ? ? 0.001220132 1 ? ? ? ? ?3.913649

  4. #> 258 ?{canned fish,hygiene articles} ? ? ? ? ? ? => {whole milk} ? ? ? 0.001118454 1 ? ? ? ? ?3.913649

  5. #> 1487 {root vegetables,butter,rice} ? ? ? ? ? ? ?=> {whole milk} ? ? ? 0.001016777 1 ? ? ? ? ?3.913649

  6. #> 1646 {root vegetables,whipped/sour cream,flour} => {whole milk} ? ? ? 0.001728521 1 ? ? ? ? ?3.913649

  7. #> 1670 {butter,soft cheese,domestic eggs} ? ? ? ? => {whole milk} ? ? ? 0.001016777 1 ? ? ? ? ?3.913649

  8. #> 1699 {citrus fruit,root vegetables,soft cheese} => {other vegetables} 0.001016777 1 ? ? ? ? ?5.168156

  9. rules_lift <- sort (rules, by="lift", decreasing=TRUE) # 'high-lift' rules.

  10. inspect(head(rules_lift)) #

  11. #> ? ? ?lhs ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?rhs ? ? ? ? ? ? ?support ?confidence lift

  12. #> 53 ? {Instant food products,soda} ? ? ? ? ? ? ? ? ? ? ?=> {hamburger meat} 0.001220 0.6315789 ?18.995

  13. #> 37 ? {soda,popcorn} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?=> {salty snack} ? ?0.001220 0.6315789 ?16.697

  14. #> 444 ?{flour,baking powder} ? ? ? ? ? ? ? ? ? ? ? ? ? ? => {sugar} ? ? ? ? ?0.001016 0.5555556 ?16.408

  15. #> 327 ?{ham,processed cheese} ? ? ? ? ? ? ? ? ? ? ? ? ? ?=> {white bread} ? ?0.001931 0.6333333 ?15.045

  16. #> 55 ? {whole milk,Instant food products} ? ? ? ? ? ? ? ?=> {hamburger meat} 0.001525 0.5000000 ?15.038

  17. #> 4807 {other vegetables,curd,yogurt,whipped/sour cream} => {cream cheese } ?0.001016 0.5882353 ?14.834

置信度為1(見rules_conf上文)的規(guī)則意味著,每當(dāng)購(gòu)買LHS物品時(shí),也100%的時(shí)間購(gòu)買了RHS物品。

提升為18(見rules_lift上文)的規(guī)則意味著,與假設(shè)無關(guān)的購(gòu)買相比,LHS和RHS中的物品一起購(gòu)買的可能性要高18倍。

如何控制輸出中的規(guī)則數(shù)量?

調(diào)整maxlensuppconf在所述參數(shù)apriori函數(shù)來控制生成的規(guī)則數(shù)。您將不得不根據(jù)數(shù)據(jù)的冗余性對(duì)此進(jìn)行調(diào)整。

parameter = list (supp = 0.001, conf = 0.5, maxlen=3) # maxlen = 3 限制規(guī)則中最大物品數(shù)量為 3

  1. 要獲得“強(qiáng)”規(guī)則,請(qǐng)?jiān)黾印?conf”參數(shù)的值。

  2. 要獲得“更長(zhǎng)”的規(guī)則,請(qǐng)?jiān)黾印?maxlen”。

如何刪除冗余規(guī)則?

有時(shí)希望刪除作為較大規(guī)則子集的規(guī)則。為此,請(qǐng)使用以下代碼過濾冗余規(guī)則。


  1. rules <- rules[-subsetRules] #刪除規(guī)則子集

如何查找與給定項(xiàng)目相關(guān)的規(guī)則?

這可以通過修改函數(shù)中的appearance參數(shù)來實(shí)現(xiàn)apriori()。例如,

找出哪些因素影響了產(chǎn)品X的購(gòu)買

在購(gòu)買“全脂牛奶”之前找出顧客購(gòu)買了什么。這將幫助您了解導(dǎo)致購(gòu)買“全脂牛奶”的頻繁模式。


  1. sort ( ?by="confidence", decreasing=TRUE) # 按置信度排列


  2. #> ? ? ?lhs ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? rhs ? ? ? ? ?support ? ? confidence lift

  3. #> 196 ?{rice,sugar} ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? => {whole milk} 0.001220132 1 ? ? ? ? ?3.913649

  4. #> 323 ?{canned fish,hygiene articles} ? ? ? ? ? ? => {whole milk} 0.001118454 1 ? ? ? ? ?3.913649

  5. #> 1643 {root vegetables,butter,rice} ? ? ? ? ? ? ?=> {whole milk} 0.001016777 1 ? ? ? ? ?3.913649

  6. #> 1705 {root vegetables,whipped/sour cream,flour} => {whole milk} 0.001728521 1 ? ? ? ? ?3.913649

  7. #> 1716 {butter,soft cheese,domestic eggs} ? ? ? ? => {whole milk} 0.001016777 1 ? ? ? ? ?3.913649

  8. #> 1985 {pip fruit,butter,hygiene articles} ? ? ? ?=> {whole milk} 0.001016777 1 ? ? ? ? ?3.913649

找出在產(chǎn)品X之后/與產(chǎn)品X一起購(gòu)買的產(chǎn)品

這是找出購(gòu)買“全脂牛奶”的顧客的案例。在等式中,“全脂牛奶”以LHS(左側(cè))表示。

  1. list(default="rhs",lhs="whole milk" ?#

  2. #> ? lhs ? ? ? ? ? ? rhs ? ? ? ? ? ? ? ?support ? ?confidence lift

  3. #> 6 {whole milk} => {other vegetables} 0.07483477 0.2928770 ?1.5136341

  4. #> 5 {whole milk} => {rolls/buns} ? ? ? 0.05663447 0.2216474 ?1.2050318

  5. #> 4 {whole milk} => {yogurt} ? ? ? ? ? 0.05602440 0.2192598 ?1.5717351

  6. #> 2 {whole milk} => {root vegetables} ?0.04890696 0.1914047 ?1.7560310

  7. #> 1 {whole milk} => {tropical fruit} ? 0.04229792 0.1655392 ?1.5775950

  8. #> 3 {whole milk} => {soda} ? ? ? ? ? ? 0.04006101 0.1567847 ?0.8991124

這樣做的一個(gè)缺點(diǎn)是,無論支持度,置信度或最小參數(shù)如何,您在RHS上只能得到一項(xiàng)。

使用提升度的提示

使用提升時(shí),規(guī)則的方向性將丟失。也就是說,任何規(guī)則A => B和規(guī)則B => A的提升都將相同。請(qǐng)參閱以下計(jì)算:

A-> B

  • 支持:

  • 置信度:

  • 期望置信度:P(B)

  • 提升度:

B-> A

  • 支持度:

  • 置信度:

  • 期望置信度:P(B)

  • 提升度:

重要的提示

對(duì)于規(guī)則A-> B和B-> A而言,提升和支持度的值都相同。這意味著我們不能使用提升為特定方向的?“規(guī)則”?提出建議。它只能用于將經(jīng)常購(gòu)買的物品分組。

使用置信度的提示

在現(xiàn)實(shí)世界中提出產(chǎn)品建議時(shí),尤其是在提出附加產(chǎn)品建議時(shí),規(guī)則的置信度可能是一種誤導(dǎo)性的度量。讓我們考慮以下涉及4個(gè)事務(wù)的數(shù)據(jù),涉及iPhone和耳機(jī):

  1. Iphone,耳機(jī)

  2. Iphone,耳機(jī)

  3. 蘋果手機(jī)

  4. 蘋果手機(jī)

我們可以為這些交易創(chuàng)建2條規(guī)則,如下所示:

  1. iPhone->耳機(jī)

  2. 耳機(jī)-> iPhone

在現(xiàn)實(shí)世界中,將耳機(jī)推薦給剛買了iPhone而不是反過來是很現(xiàn)實(shí)的。想象一下,當(dāng)您剛購(gòu)買完耳機(jī)時(shí),就被推薦為iPhone。不太好!

apriori輸出中選擇規(guī)則時(shí),您可能會(huì)猜測(cè)規(guī)則的置信度越高,則規(guī)則越好。但是對(duì)于這種情況,頭戴式耳機(jī)-> iPhone規(guī)則將比iPhone->頭戴式耳機(jī)具有更高的置信度(2倍)。你知道為什么嗎?下面的計(jì)算顯示了如何。

置信度計(jì)算:

iPhone->耳機(jī)

耳機(jī)-> iPhone

如您所見,耳機(jī)-> iPhone推薦具有更高的置信度,這具有誤導(dǎo)性和不現(xiàn)實(shí)性。因此,置信度不應(yīng)成為您提出產(chǎn)品建議的唯一方法。

因此,在推薦產(chǎn)品之前,您可能需要檢查更多標(biāo)準(zhǔn),例如產(chǎn)品價(jià)格,產(chǎn)品類型等,尤其是在交叉銷售的情況下。


R語(yǔ)言關(guān)聯(lián)挖掘?qū)嵗ㄙ?gòu)物籃分析)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
江城| 那坡县| 无棣县| 洛阳市| 吉木萨尔县| 汝州市| 潮安县| 黄梅县| 郧西县| 永新县| 静乐县| 增城市| 雷波县| 平原县| 白山市| 乡宁县| 石河子市| 金堂县| 自治县| 云阳县| 蛟河市| 丰台区| 丁青县| 乐业县| 平阳县| 郸城县| 普兰店市| 手游| 庆云县| 海兴县| 巴中市| 沈阳市| 资阳市| 松原市| 淄博市| 肇东市| 高阳县| 随州市| 米泉市| 望奎县| 武山县|