`normalize_entity()`、`add_relationships()` 在特征工具中逻辑上相同吗?
Do `normalize_entity()`, `add_relationships()` are logically same in featuretools?
示例:
buy_log_df = pd.DataFrame(
[
["2020-01-01", 0, 1, 2, 2, 200],
["2020-01-02", 1, 1, 1, 3, 100],
["2020-01-02", 2, 2, 1, 1, 100],
["2020-01-03", 3, 3, 3, 1, 300],
],
columns=['date', 'sale_id', 'customer_id', "item_id", "quantity", "price"]
)
es = ft.EntitySet(id="sale_set")
es = es.entity_from_dataframe(
"sales",
dataframe=buy_log_df,
index="sale_id",
time_index='date'
)
es = es.normalize_entity(
new_entity_id="items",
base_entity_id="sales",
index="item_id",
additional_variables=["price"],
)
buy_log_df = pd.DataFrame(
[
["2020-01-01", 0, 1, 2, 2],
["2020-01-02", 1, 1, 1, 3],
["2020-01-02", 2, 2, 1, 1],
["2020-01-03", 3, 3, 3, 1],
],
columns=['date', 'sale_id', 'customer_id', "item_id", "quantity",]
)
item_df = pd.DataFrame(
[
[1, 100],
[2, 200],
[3, 300],
],
columns=['item_id', 'price']
)
es = ft.EntitySet(id="sale_set")
es = es.entity_from_dataframe(
"sales",
dataframe=buy_log_df,
index="sale_id",
time_index='date'
)
es = es.entity_from_dataframe(
"items",
dataframe=item_df,
index="item_id",
)
from featuretools import Relationship
es = es.add_relationships(
[Relationship(es['items']['item_id'], es['sales']['item_id'])],
)
上面两个的es
好像是一样的
我想知道是否存在只允许 normalize_entity()
左右的特定情况。
感谢提问。这是正确的。两个实体集是一样的。没有只能使用 normalize_entity()
的情况。通过此方法进行的更改(例如添加关系)也可以手动完成。
示例:
buy_log_df = pd.DataFrame(
[
["2020-01-01", 0, 1, 2, 2, 200],
["2020-01-02", 1, 1, 1, 3, 100],
["2020-01-02", 2, 2, 1, 1, 100],
["2020-01-03", 3, 3, 3, 1, 300],
],
columns=['date', 'sale_id', 'customer_id', "item_id", "quantity", "price"]
)
es = ft.EntitySet(id="sale_set")
es = es.entity_from_dataframe(
"sales",
dataframe=buy_log_df,
index="sale_id",
time_index='date'
)
es = es.normalize_entity(
new_entity_id="items",
base_entity_id="sales",
index="item_id",
additional_variables=["price"],
)
buy_log_df = pd.DataFrame(
[
["2020-01-01", 0, 1, 2, 2],
["2020-01-02", 1, 1, 1, 3],
["2020-01-02", 2, 2, 1, 1],
["2020-01-03", 3, 3, 3, 1],
],
columns=['date', 'sale_id', 'customer_id', "item_id", "quantity",]
)
item_df = pd.DataFrame(
[
[1, 100],
[2, 200],
[3, 300],
],
columns=['item_id', 'price']
)
es = ft.EntitySet(id="sale_set")
es = es.entity_from_dataframe(
"sales",
dataframe=buy_log_df,
index="sale_id",
time_index='date'
)
es = es.entity_from_dataframe(
"items",
dataframe=item_df,
index="item_id",
)
from featuretools import Relationship
es = es.add_relationships(
[Relationship(es['items']['item_id'], es['sales']['item_id'])],
)
上面两个的es
好像是一样的
我想知道是否存在只允许 normalize_entity()
左右的特定情况。
感谢提问。这是正确的。两个实体集是一样的。没有只能使用 normalize_entity()
的情况。通过此方法进行的更改(例如添加关系)也可以手动完成。