Наука о данных - Рекомендация по модели - PullRequest
0 голосов
/ 03 февраля 2019

Может ли кто-нибудь помочь мне с рекомендацией стратегии обнаружения нарушителей правил из набора данных.

Например:

Если у меня есть набор данных с 4 столбцами - [CustomerName, CardType, BankName, Страна]

Таким образом, как правило набора данных: каждый клиент должен иметь только одну карту из одного банка в пределах одной страны.

Идеально Набор данных :

**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 и любой другой столбец, чтобы получить средства разбиения по правилам, число которых большеn 1. Но есть ли способ обнаружить эти нарушители правил, а не анализировать их по отдельности?

У меня есть 18 различных столбцов для обнаружения, поэтому было бы очень полезно рекомендовать / просветить меня с помощью модели / алгоритма.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Я не уверен, поможет ли это вам.Но можете ли вы использовать любой глобальный словарь для хранения значения для каждой строки?

Например, у вас есть это правило «Правило DataSet: каждый клиент должен иметь только одну карту из одного банка в пределах одной страны» и рассматривать эту строку «Tony - VISA - CITI - USA».Создайте строку «TonyCITIUSA», объединив все значения столбца для этой строки, требуемой для правила.

s = "TonyCITIUSA" globalDict = {}

Теперь проверьте, присутствует ли строка в Глобальном словаре и, еслиэто означает, что строка является нарушителем правил, если в словаре нет строки.Затем добавьте строку в словарь для дальнейшего использования.

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

Пожалуйста, дайте мне знать, если это работает!

0 голосов
/ 03 февраля 2019

Полагаю, вам нужно df.drop_duplicates(subset=['column_names',..]) проверить документы .Это может помочь вам.

...