首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据科学-模型推荐

数据科学-模型推荐
EN

Stack Overflow用户
提问于 2019-02-03 05:45:53
回答 2查看 88关注 0票数 0

有谁能帮我推荐一种策略,从数据集中检测规则违背者。

例如:

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

因此,正如DataSet规则:每个客户应该只有一张卡来自一个国家的一家银行。

理想数据集

代码语言:javascript
复制
**CustomerName - CardType - BankName - Country**

1)        Tony - VISA - CITI - USA

如何检测规则断路器?

代码语言:javascript
复制
**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视为该特定CustomerName的主键和第一个记录值(卡片类型、银行、国家)为True。

示例输出:

代码语言:javascript
复制
**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种不同的列要检测,所以用模型/算法来推荐/启发我是非常有帮助的。

EN

回答 2

Stack Overflow用户

发布于 2019-02-03 07:35:15

我想你需要df.drop_duplicates(subset=['column_names',..])检查文档。这可能对你有帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-02-05 17:21:11

我不确定这能不能帮到你。但是,您可以使用任何全局字典来存储每一行的值吗?

例如,您有“所以DataSet规则:每个客户应该只有一张卡从一个国家的一家银行”,并考虑这一行“托尼-签证-花旗-美国”。通过连接该规则所需的该行的列的所有值来创建一个字符串"TonyCITIUSA“。

s = "TonyCITIUSA" globalDict = {}

现在检查全局字典中是否存在字符串,如果字典中没有字符串,这意味着行是规则断路器。然后将字符串添加到字典中以供以后使用。

代码语言:javascript
复制
`if s in globalDict:        //Rule breaker found    else:       globalDict.add(s)` 

如果这行得通,请让我来吧!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54500317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档