Как использовать Featuretools для создания функций для одной таблицы без непосредственных функций? - PullRequest
1 голос
/ 14 марта 2019

Я использовал ответ от @willk, но появляется сообщение об ошибке. см ответ Уилк здесь. anser Вилка Я не могу комментировать его ответ, потому что мне не хватает репутации (более 50).

Итак, мой вопрос, как заставить код ниже работать? Или, пожалуйста, предоставьте решение, которое использует featuretools для применения автоматического конструирования объектов для одной таблицы (используйте радужную оболочку в качестве примера) и не содержит непосредственных функций для нормализации (создание новой таблицы из существующей таблицы).

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 Ответ

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

В версии 0.6.1 featuretools изменились некоторые примитивные имена. Следующий код должен работать для вас

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()
...