数据科学-模型推荐

时间:2019-02-03 05:45:53

标签: python pandas machine-learning data-science anomaly-detection

任何人都可以帮助我推荐一种从数据集中检测规则破坏者的策略。

例如:

如果我有一个包含4列的数据集-[CustomerName,CardType,BankName,Country]

根据数据集规则:每个客户在一个国家/地区内只能从一张银行获得一张卡。

理想 数据集

**CustomerName - CardType - BankName - Country**

1)        Tony - VISA - CITI - USA

如何检测规则破坏者?

**CustomerName - CardType - BankName - Country**

1)        Tony - VISA - CITI - USA

2)        Anthony - VISA - BOFA - USA

3)        Anthony - MC - BOFA - USA

4)        Anthony - VISA - CITI - USA

5)        Anthony - MC - BOFA - USA

6)        Jess - VISA - AMEX - USA

7)        Jess - VISA - BOFA - USA

8)        Jess - VISA - AMEX - USA

所需的输出以检测规则破坏者,即,一个客户拥有一个以上的CardType或一个国家/地区的一家银行,并且将CustomerName列作为主键和首次记录的值(Cardtype,Bank,Country )的特定CustomerName设为True。

示例输出:

**CustomerName - CardType - BankName - Country**


3)        Anthony - MC - BOFA - USA

4)        Anthony - VISA - CITI - USA

5)        Anthony - MC - BOFA - USA

7)        Jess - VISA - BOFA - USA

谢谢,

注意:我已经通过使用主列与单个列进行分组(即,将CustomerName和任何其他列分组)来获得使用计数大于1的规则破坏程序来使用熊猫进行分析。 但是,有什么方法可以检测这些规则破坏者,而不是单独分析它们吗?

我要检测18个不同的列,因此使用模型/算法来推荐/启发我真的很有帮助。

2 个答案:

答案 0 :(得分:0)

我想您需要df.drop_duplicates(subset=['column_names',..]) 检查docs。这可能会对您有所帮助。

答案 1 :(得分:0)

我不确定这是否会对您有所帮助。但是,您可以使用任何全局词典为每一行存储一个值吗?

例如,您具有以下规则“数据集规则:每个客户在一个国家/地区内只有一张银行的一张卡”,并考虑此行“ Tony-VISA-CITI-USA”。通过将规则所需的该行的列的所有值串联起来,创建一个字符串“ TonyCITIUSA”。

s = "TonyCITIUSA" globalDict = {}

现在检查全局字典中是否存在该字符串,以及是否存在该字符串,这意味着如果字典中不存在任何字符串,则该行将成为规则破坏者。然后将字符串添加到字典中以备将来使用。

if s in globalDict: //Rule breaker found else: globalDict.add(s)

如果可以的话,请让我来!