如何使用Featuretools为没有即时功能的单个表创建功能?

时间:2019-03-14 05:14:04

标签: python featuretools

我使用了@willk的答案,但它弹出一个错误。 在这里查看willk的答案。 willk's anser我无法在他的回答中发表评论,因为我没有足够的声誉(超过50岁)。

所以我的问题是如何使以下代码正常工作?或者,请提供一个解决方案,该解决方案使用Featuretools为单个表应用自动要素工程(以iris为例),并且不对其进行归一化的即时要素(从现有表中创建新表)。

from sklearn.datasets import load_iris
import pandas as pd 
import featuretools as ft

# Load data and put into dataframe
iris = load_iris()
df = pd.DataFrame(iris.data, columns = iris.feature_names)
df['species'] = iris.target
df['species'] = df['species'].map({0: 'setosa', 1: 'versicolor', 2: 'virginica'})

# Make an entityset and add the entity
es = ft.EntitySet(id = 'iris')
es.entity_from_dataframe(entity_id = 'data', dataframe = df, 
                     make_index = True, index = 'index')

# Run deep feature synthesis with transformation primitives
feature_matrix, feature_defs = ft.dfs(entityset = es, target_entity = 'data',
                                  trans_primitives = ['add', 'multiply'])
feature_matrix.head()

ValueError :(“未知的转换基元添加。”,“调用ft.primitives.list_primitives()获取”,“可用基元列表”)

1 个答案:

答案 0 :(得分:1)

Featuretools的0.6.1版本更改了一些原始名称。以下代码应为您运行

from sklearn.datasets import load_iris
import pandas as pd 
import featuretools as ft

# Load data and put into dataframe
iris = load_iris()
df = pd.DataFrame(iris.data, columns = iris.feature_names)
df['species'] = iris.target
df['species'] = df['species'].map({0: 'setosa', 1: 'versicolor', 2: 'virginica'})

# Make an entityset and add the entity
es = ft.EntitySet(id = 'iris')
es.entity_from_dataframe(entity_id = 'data', dataframe = df, 
                     make_index = True, index = 'index')

# Run deep feature synthesis with transformation primitives
feature_matrix, feature_defs = ft.dfs(entityset = es, target_entity = 'data',
                                  trans_primitives = ['add_numeric', 'multiply_numeric'])
feature_matrix.head()