рассчитать условную вероятность - PullRequest
0 голосов
/ 15 марта 2020

Ввод

cust_Id  category  product  purchased
1        Elec      light    0    
1        Elec      light    1
1        Elec      light    0
1        HA        Table    1
1        HH        Pen      1
2        Elec      light    0
2        HA        Table    1
3        HH        Pen      0
3        Elec      light    1

Я хочу знать лучшего клиента, категорию, продукт на основе максимального значения вероятности

Ответы [ 2 ]

1 голос
/ 15 марта 2020

Если хотите разделить sum с count, это определение mean, поэтому используйте:

out1 = df.groupby(['cust_Id', 'category', 'product'], as_index=False)['purchased'].mean()

out1 = (df.assign(zero = df['purchased'].eq(1))
          .groupby(['cust_Id', 'category', 'product'], as_index=False)['purchased'].mean())

Если хотите подсчитать 0 значения:

out0 = (df.assign(zero = df['purchased'].eq(0))
          .groupby(['cust_Id', 'category', 'product'], as_index=False)['purchased'].mean())
1 голос
/ 15 марта 2020

Попробуйте это:

grp = df.groupby(['cust_Id', 'category', 'product'])
prob = grp.sum() / grp.count()

Результатом является вероятность того, что определенная комбинация из 3 атрибутов что-то приобретет:

                          purchased
cust_Id category product           
1       Elec     light     0.333333
        HA       Table     1.000000
        HH       Pen       1.000000
2       Elec     light     0.000000
        HA       Table     1.000000
3       Elec     light     1.000000
        HH       Pen       0.000000

Вероятность их не покупка чего-либо - просто дополнение этого (то есть 1 - prob)

...