Я застрял. Все, что я хочу сделать с помощью Featuretools, - это создать новый столбец, который суммирует два столбца из моего набора данных, создавая своего рода «сложенную» функцию. Сделайте это для всех столбцов в моем наборе данных.
Мой код выглядит так:
# Define the function
def feature_engineering_dataset(df):
es = ft.EntitySet(id = 'stockdata')
# Make the "Date" index an actual column cuz defining it as the index below throws
# a "can't find Date in index" error for some reason.
df = df.reset_index()
# Save some columns not used in Featuretools to concat back later
dates = df['Date']
tickers = df['Ticker']
dailychange = df['DailyChange']
classes = df['class']
dataframe = df.drop(['Date', 'Ticker', 'DailyChange', 'class'],axis=1)
# Define the entity
es.entity_from_dataframe(entity_id='data', dataframe=dataframe, index='Date') # Won't find Date so uses a numbered index. We'll re-define date as index later
# Pesky warnings
warnings.filterwarnings("ignore", category=RuntimeWarning)
warnings.filterwarnings("once", category=ImportWarning)
# Run deep feature synthesis
feature_matrix, feature_defs = ft.dfs(n_jobs=-2,entityset=es, target_entity='data',
chunk_size=0.015,max_depth=2,verbose=True,
agg_primitives = ['sum'],
trans_primitives = []
)
# Now re-add previous columnes because featuretools...
df = pd.concat([dates, tickers, feature_matrix, dailychange, classes], axis=1)
df = df.set_index(['Date'])
# Return our new dataset!
return(df)
# Now run that defined function
df = feature_engineering_dataset(df)
Я не уверен, что здесь происходит на самом деле, но я определил глубину 2, поэтому я понимаю, что для каждой комбинации пар столбцов в моем наборе данных он создаст новый столбец, который суммирует два вместе? говорит Built 3098 features
, а окончательный df имеет 3098 столбцов после объединения, что неправильно, в нем должны быть все мои оригинальные функции, ПЛЮС спроектированные.
Как я могу достичь того, что я ' м после? Примеры на странице инструментов функций и в документации по API очень запутаны и имеют дело с устаревшими примерами, такими как примитивы "time_since_last" и другие вещи, которые, похоже, здесь не применимы. Спасибо!