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
文章插图
比如我们也可以以sessions为目标dataframe构建新特征 。
feature_matrix_sessions, features_defs = ft.dfs( dataframes=dataframes, relationships=relationships, target_dataframe_name="sessions")feature_matrix_sessions.head(5)
文章插图
③ 特征输出Featuretools不仅可以完成自动化特征生成,它还可以对生成的特征可视化,并说明Featuretools 生成它的方法 。
feature = features_defs[18]feature
文章插图
TSFresh简介TSFresh 是一个开源 Python 工具库,有着强大的时间序列数据特征抽取功能,它应用统计学、时间序列分析、信号处理和非线性动力学的典型算法与可靠的特征选择方法,完成时间序列特征提取 。
文章插图
TSFresh 自动从时间序列中提取 100 个特征 。这些特征描述了时间序列的基本特征,例如峰值数量、平均值或最大值或更复杂的特征,例如时间反转对称统计量 。
文章插图
使用示例
# 安装# 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 是另外一个非常强大的自动化特征工程工具库,它结合两种不同的技术,共同帮助找出最佳特性:文章插图
① SULOVSearching for the uncorrelated list of variables:这个方法会搜索不相关的变量列表来识别有效的变量对,它考虑具有最低相关性和最大 MIS(互信息分数)评级的变量对并进一步处理 。
文章插图
文章插图
② 递归 XGBoost上一步SULOV中识别的变量递归地传递给 XGBoost,通过xgboost选择和目标列最相关的特征,并组合它们,作为新的特征加入,不断迭代这个过程,直到生成所有有效特征 。
文章插图
使用示例简单的使用方法示例代码如下:
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)
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 万圣节2022年是几月几日
- 2022年万圣夜是哪一天
- 2022年立冬时间几月几号几点
- 2022年12月1日可以搬家吗
- 2022年12月4日搬家日子好吗
- 2022年12月3日宜搬家吗 是不是吉利的搬新家吉日
- 2022年12月2日搬家好吗
- 2022年11月15日是搬家黄道吉日吗
- 2022年11月16日是乔迁搬家的好日子吗
- 2022年农历十月二十七搬家日子好不好