第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

有沒有辦法按給定數(shù)據(jù)集中值的百分比窗口對(duì)數(shù)據(jù)行進(jìn)行分組,然后遍歷數(shù)據(jù)集?

有沒有辦法按給定數(shù)據(jù)集中值的百分比窗口對(duì)數(shù)據(jù)行進(jìn)行分組,然后遍歷數(shù)據(jù)集?

ITMISS 2021-11-09 20:42:15
我有一個(gè)來自某些關(guān)聯(lián)規(guī)則挖掘的大型 csv 文件。其中兩列是規(guī)則和置信度得分。規(guī)則列包含不同長(zhǎng)度的項(xiàng)目列表,例如[[Dog],[Dog,Cat],[Dog,Cat,Hamster],[Dog,Cat,Hamster,Goldfish]]置信度分?jǐn)?shù)列包含 0 到 1 之間的數(shù)字列表,例如[0.1, 0.5, 0.1, 0.5]我想根據(jù)規(guī)則值是否是其他規(guī)則值的子集來刪除冗余行,但我只想刪除具有相似置信度分?jǐn)?shù)的行(在置信度窗口內(nèi),比如 5%)。在上面的例子中,剩下的行是 [Dog] 和 [Dog,Cat]。[Dog] 會(huì)保留,因?yàn)閇Dog]并且[Dog,Cat,Hamster]會(huì)因?yàn)樗鼈兊闹眯哦确謹(jǐn)?shù)為 0.1而被組合在一起,然后[Dog,Cat,Hamster]會(huì)被刪除,因?yàn)閇Dog]是 的子集,[Dog,Cat,Hamster]因此規(guī)則[Dog,Cat,Hamster]是多余的。同樣,[Dog,Cat]和[Dog,Cat,Hamster,Goldfish]兩者都具有的置信度得分為0.5,和[Dog,Cat,Hamster,Goldfish]將被刪除,因?yàn)閇狗,貓]為[狗,貓,倉鼠,金魚]的子集。我知道我需要做的第一件事是查看最小規(guī)則的置信度分?jǐn)?shù),將落在該分?jǐn)?shù)置信度窗口內(nèi)的所有規(guī)則組合在一起,然后刪除所有屬于較小規(guī)則超集的規(guī)則。然后我需要移動(dòng)到下一個(gè)最小的規(guī)則并做同樣的事情,直到所有規(guī)則都被減少/消除。我想知道在 Python/Pandas 中是否有一種簡(jiǎn)單的方法可以做到這一點(diǎn)?我對(duì)編碼很陌生,所以我不知道這是否可能。
查看完整描述

1 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

您可以按置信度值和規(guī)則長(zhǎng)度對(duì)兩列中的對(duì)值進(jìn)行排序。然后我們將首先獲得最低的 conf 分?jǐn)?shù),并且在具有相同 conf 分?jǐn)?shù)的規(guī)則中,將首先出現(xiàn)最短的列表。我們使用“兩指”方法迭代這個(gè)排序的規(guī)則/配置對(duì)。第一根手指是當(dāng)前的規(guī)則/配置對(duì)。第二根手指移動(dòng),直到我們找到第一條規(guī)則,該規(guī)則要么是不相等的 conf 分?jǐn)?shù)(例如,如果我們的第一根手指在 0.1 上,則為 0.5)或者如果該規(guī)則不是一個(gè)子集(例如,如果我們的第一根手指在上,則遇到 ['Hamster'] ['狗'])。當(dāng)我們找到這樣的規(guī)則/配置對(duì)時(shí),我們附加我們第一根手指的規(guī)則/配置對(duì),并將我們的第一根手指推進(jìn)到我們剛剛處理的對(duì)。我們繼續(xù)迭代,跳過符合我們刪除標(biāo)準(zhǔn)的對(duì),當(dāng)我們發(fā)現(xiàn)不符合“刪除”標(biāo)準(zhǔn)的對(duì)時(shí),追加和推進(jìn)。希望這是有道理的。


rules = [['Dog'],['Dog','Cat'],['Dog','Cat','Hamster','Goldfish'], ['Dog','Cat','Hamster']]

confs = [0.1, 0.5, 0.1, 0.5]


# sort by conf values and size of rules to put the shortest sub-rule in the front

ruleConfPairs = sorted(zip(rules, confs), key=lambda x: (x[1], len(x[0])))


# initialize iteration

new_rules = []

new_confs = []

current_rule = ruleConfPairs[0][0]

current_conf = ruleConfPairs[0][1]


for rule, conf in ruleConfPairs[1:]:

    if current_conf == conf and set(current_rule).issubset(rule):

        # skip (i.e. remove) pair if it has the same confidence value AND rule is a subset

        continue

    # append current rule/conf pair if either confidence score is not equal OR rule is not a subset

    new_rules.append(current_rule)

    new_confs.append(current_conf)

    # advance our pair

    current_rule = rule

    current_conf = conf


# make sure to append the last pair

new_rules.append(current_rule)

new_confs.append(current_conf)


print(new_rules)

print(new_confs)

輸出:


[['Dog'], ['Dog', 'Cat']]

[0.1, 0.5]


查看完整回答
反對(duì) 回復(fù) 2021-11-09
  • 1 回答
  • 0 關(guān)注
  • 196 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)