Можно ли пропустить обработку одного столбца? - PullRequest
0 голосов
/ 07 февраля 2019

Я хочу сохранить один столбец моего информационного кадра в его первоначальном состоянии, не применяя к нему никакого примитива, возможно ли это?

1 Ответ

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

Да, вы можете сделать это с параметром ignore_variables для ft.dfs.Вот пример набора демонстрационных сущностей.

import featuretools as ft
es = ft.demo.load_mock_customer(return_entityset=True)
es.plot()

example entity set

, если мы хотим построить объекты для сущности сеансов, но игнорируем deviceпеременная, которую мы можем запустить

feature_defs = ft.dfs(target_entity="sessions",
                      entityset=es, 
                      agg_primitives=["count", "mode"],
                      trans_primitives=[],
                      ignore_variables={"sessions": ["device"]},
                      features_only=True)

feature_defs имеет следующие функции

[<Feature: customer_id>,
 <Feature: COUNT(transactions)>,
 <Feature: MODE(transactions.product_id)>,
 <Feature: customers.zip_code>,
 <Feature: MODE(transactions.products.brand)>,
 <Feature: customers.COUNT(sessions)>,
 <Feature: customers.COUNT(transactions)>,
 <Feature: customers.MODE(transactions.product_id)>]

, которая создает функции с использованием примитивов count и mode, но игнорирует переменную устройства всущность сессий.если мы хотим включить переменную устройства в исходное состояние, мы можем добавить ее обратно следующим образом:

feature_defs += [ft.Feature(es["sessions"]["device"])]

Теперь мы можем вычислить матрицу объектов.device сейчас в конце

fm = ft.calculate_feature_matrix(features=feature_defs, entityset=es)
fm

            customer_id  COUNT(transactions)  MODE(transactions.product_id) customers.zip_code   ...    customers.COUNT(sessions)  customers.COUNT(transactions)  customers.MODE(transactions.product_id)   device
session_id                                                                                       ...                                                                                                              
1                     2                   16                              3              13244   ...                            7                             93                                        4  desktop
2                     5                   10                              5              60091   ...                            6                             79                                        5   mobile
3                     4                   15                              1              60091   ...                            8                            109                                        2   mobile
4                     1                   25                              5              60091   ...                            8                            126                                        4   mobile
5                     4                   11                              5              60091   ...                            8                            109                                        2   mobile
6                     1                   15                              4              60091   ...                            8                            126                                        4   tablet
7                     3                   15                              1              13244   ...                            6                             93                                        1   tablet
8                     4                   18                              1              60091   ...                            8                            109                                        2   tablet
9                     1                   15                              1              60091   ...                            8                            126                                        4  desktop
10                    2                   15                              2              13244   ...                            7                             93                                        4   tablet
11                    4                   15                              3              60091   ...                            8                            109                                        2   mobile
12                    4                   10                              4              60091   ...                            8                            109                                        2  desktop
13                    4                   12                              2              60091   ...                            8                            109                                        2   mobile
14                    1                   12                              4              60091   ...                            8                            126                                        4   tablet
15                    2                    8                              2              13244   ...                            7                             93                                        4  desktop
16                    2                   10                              4              13244   ...                            7                             93                                        4  desktop
17                    2                   13                              1              13244   ...                            7                             93                                        4   tablet
18                    1                   12                              2              60091   ...                            8                            126                                        4  desktop
19                    3                   17                              1              13244   ...                            6                             93                                        1  desktop
20                    5                   15                              1              60091   ...                            6                             79                                        5  desktop
21                    4                   18                              5              60091   ...                            8                            109                                        2  desktop
22                    4                   10                              2              60091   ...                            8                            109                                        2  desktop
23                    3                   11                              3              13244   ...                            6                             93                                        1  desktop
24                    5                   14                              4              60091   ...                            6                             79                                        5   tablet
25                    3                   16                              1              13244   ...                            6                             93                                        1  desktop
26                    1                   16                              1              60091   ...                            8                            126                                        4   tablet
27                    1                   15                              5              60091   ...                            8                            126                                        4   mobile
28                    5                   18                              2              60091   ...                            6                             79                                        5   mobile
29                    1                   16                              4              60091   ...                            8                            126                                        4   mobile
30                    5                   14                              3              60091   ...                            6                             79                                        5  desktop
31                    2                   18                              3              13244   ...                            7                             93                                        4   mobile
32                    5                    8                              3              60091   ...                            6                             79                                        5   mobile
33                    2                   13                              3              13244   ...                            7                             93                                        4   mobile
34                    3                   18                              4              13244   ...                            6                             93                                        1  desktop
35                    3                   16                              5              13244   ...                            6                             93                                        1   mobile

В качестве проверки работоспособности это вывод, если мы не используем ignore_variables

feature_defs = ft.dfs(target_entity="sessions",
                      entityset=es, 
                      agg_primitives=["count", "mode"],
                      trans_primitives=[],
                      features_only=True)

, вы можете увидеть<Feature: customers.MODE(sessions.device)> создается сейчас

[<Feature: customer_id>,
 <Feature: device>,
 <Feature: COUNT(transactions)>,
 <Feature: MODE(transactions.product_id)>,
 <Feature: customers.zip_code>,
 <Feature: MODE(transactions.products.brand)>,
 <Feature: customers.COUNT(sessions)>,
 <Feature: customers.MODE(sessions.device)>,
 <Feature: customers.COUNT(transactions)>,
 <Feature: customers.MODE(transactions.product_id)>]
...