Featuretools:即使没有与日期时间相关的列,它是否可以应用于单个表来生成特性?

2024-04-29 05:55:50 发布

您现在位置:Python中文网/ 问答频道 /正文

featuretools文档在其第一句话中声明:

“Featuretools是一个执行自动化功能工程的框架。它擅长将时间和关系数据集转换为用于机器学习的特征矩阵。”

这似乎意味着dataset必须有一个datetime列。我只想确认一下事实是这样。例如,我不能在“iris”数据集上使用它来生成新的特征?如果数据集不需要时间变量,我将如何使用它在“iris”数据集上生成特征。如蒙答复,我将不胜感激。谢谢。在


Tags: 数据文档功能机器框架声明iris时间
1条回答
网友
1楼 · 发布于 2024-04-29 05:55:50

Featuretools适用于带有没有日期时间的关系数据集,为了回答您的问题,Featuretools可以为没有日期时间的单个表创建功能。对于iris数据集,只有一个表,没有要规范化的直接特征(从现有表生成一个新表),因此您将使用转换原语来生成新的特征。在

  1. 生成一个EntitySet
  2. 添加一个entity
  3. 使用您想要的transform原语运行深度特征合成。在

下面是一个完整的工作示例:

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

特征矩阵的前五行:

^{pr2}$

有关原语的更多信息,请参见here,有关所有变换原语的列表,请参见here。在

Featuretools最适用于具有多个表的关系数据集,但也可以很好地用于单个表。有several demos从一个表工作,其中一个实体被规范化,以便创建多个表。taxi trip duration项目就是这种方法的一个很好的例子。在

在iris数据集中,只有4个数字特征——假设你是在预测物种——而且这些特征不能直接产生你可以标准化的数值。但是,您可以将一种集群技术(如KMeans集群)应用于数值特征,然后根据集群分配创建一个实体。predict remaining useful life项目有一个这种技术的例子。在

相关问题 更多 >