2022年Python顶级自动化特征工程框架?( 二 )


dataframes = {"customers": (customers_df, "customer_id"),"sessions": (sessions_df, "session_id", "session_start"),"transactions": (transactions_df, "transaction_id", "transaction_time"),}接下来我们定义 DataFrame 之间的连接 。在这个例子中,我们有两个关系:
relationships = [("sessions", "session_id", "transactions", "session_id"),("customers", "customer_id", "sessions", "customer_id"),]② 深度特征合成接下来我们可以通过DFS生成特征了,它需要『DataFrame 的字典』、『Dataframe关系列表』和『目标 DataFrame 名称』3个基本输入 。
feature_matrix_customers, features_defs = ft.dfs(dataframes=dataframes,relationships=relationships,target_dataframe_name="customers",)feature_matrix_customers

2022年Python顶级自动化特征工程框架?

文章插图
比如我们也可以以sessions为目标dataframe构建新特征 。
feature_matrix_sessions, features_defs = ft.dfs( dataframes=dataframes, relationships=relationships, target_dataframe_name="sessions")feature_matrix_sessions.head(5)
2022年Python顶级自动化特征工程框架?

文章插图
③ 特征输出Featuretools不仅可以完成自动化特征生成,它还可以对生成的特征可视化,并说明Featuretools 生成它的方法 。
feature = features_defs[18]feature
2022年Python顶级自动化特征工程框架?

文章插图
TSFresh简介TSFresh 是一个开源 Python 工具库,有着强大的时间序列数据特征抽取功能,它应用统计学、时间序列分析、信号处理和非线性动力学的典型算法与可靠的特征选择方法,完成时间序列特征提取 。
2022年Python顶级自动化特征工程框架?

文章插图
TSFresh 自动从时间序列中提取 100 个特征 。这些特征描述了时间序列的基本特征,例如峰值数量、平均值或最大值或更复杂的特征,例如时间反转对称统计量 。
2022年Python顶级自动化特征工程框架?

文章插图
使用示例# 安装# pip install tsfresh# 数据下载from tsfresh.examples.robot_execution_failures import download_robot_execution_failures, load_robot_execution_failuresdownload_robot_execution_failures()timeseries, y = load_robot_execution_failures()# 特征抽取from tsfresh import extract_featuresextracted_features = extract_features(timeseries, column_id="id", column_sort="time")Featurewiz简介Featurewiz 是另外一个非常强大的自动化特征工程工具库,它结合两种不同的技术,共同帮助找出最佳特性:
2022年Python顶级自动化特征工程框架?

文章插图
① SULOVSearching for the uncorrelated list of variables:这个方法会搜索不相关的变量列表来识别有效的变量对,它考虑具有最低相关性和最大 MIS(互信息分数)评级的变量对并进一步处理 。
2022年Python顶级自动化特征工程框架?

文章插图
2022年Python顶级自动化特征工程框架?

文章插图
② 递归 XGBoost上一步SULOV中识别的变量递归地传递给 XGBoost,通过xgboost选择和目标列最相关的特征,并组合它们,作为新的特征加入,不断迭代这个过程,直到生成所有有效特征 。
2022年Python顶级自动化特征工程框架?

文章插图
使用示例简单的使用方法示例代码如下:
from featurewiz import FeatureWizfeatures = FeatureWiz(corr_limit=0.70, feature_engg='', category_encoders='', dask_xgboost_flag=False, nrows=None, verbose=2)X_train_selected = features.fit_transform(X_train, y_train)X_test_selected = features.transform(X_test)features.features# 选出的特征列表 ## 自动化特征工程构建特征import featurewiz as FWoutputs = FW.featurewiz(dataname=train, target=target, corr_limit=0.70, verbose=2, sep=',',header=0, test_data='',feature_engg='', category_encoders='',dask_xgboost_flag=False, nrows=None)

经验总结扩展阅读