【发布时间】:2023-01-05 17:18:03
【问题描述】:
我试图弄清楚 Featuretools 是如何工作的,我正在 Kaggle 上的房价数据集上测试它。因为数据集很大,我在这里只使用其中的一组。
数据框是:
train=pd.DataFrame({
'Id': {0: 1, 1: 2, 2: 3, 3: 4, 4: 5},
'MSSubClass': {0: 60, 1: 20, 2: 60, 3: 70, 4: 60},
'MSZoning': {0: 'RL', 1: 'RL', 2: 'RL', 3: 'RL', 4: 'RL'},
'LotFrontage': {0: 65.0, 1: 80.0, 2: 68.0, 3: 60.0, 4: 84.0},
'LotArea': {0: 8450, 1: 9600, 2: 11250, 3: 9550, 4: 14260}
})
我设置了数据框属性:
dataframes = {'train': (train, 'Id')}
然后调用dfs方法:
train_feature_matrix, train_feature_names = ft.dfs(dataframes=dataframes, target_dataframe_name='train', max_depth=10, agg_primitives=["mean", "sum", "mode"])
我收到以下警告:
UnusedPrimitiveWarning:在 DFS 期间未使用某些指定的原语: agg_primitives:['平均','模式','总和'] 这可能是由于使用的 max_depth 值太小,没有设置有趣的值,或者它可能表明在数据中找不到原语的兼容列。如果 DFS 调用包含上面列表中某个原语的多个实例,则不会使用它们中的任何一个。 warnings.warn(warning_msg, UnusedPrimitiveWarning)
train_feature_matrix与原始的train数据框完全一样。起初,我说这是因为我的数据框很小,无法提取任何有用的信息。但是我对整个数据框(80 列和 1460 行)得到了相同的行为。
我在 Featuretools 页面上看到的每个示例都有 2 个以上的数据框,但我只有一个。
你能在这里阐明一下吗?我究竟做错了什么?
【问题讨论】:
标签: python pandas feature-extraction featuretools