提升效率的神器:OpenFE Python 库


今天我要向大家介绍一个强大的 Python 库:OpenFE。

https://github.com/IIIS-Li-Group/OpenFE

OpenFE 是一个开源库,旨在自动化地处理特征,提升机器学习模型的性能和效率。

图片[1]-提升效率的神器:OpenFE Python 库-山海云端论坛

OpenFE 具有以下优点:

  • 发现有效的候选特征,提升 GBDT 和神经网络的学习性能。
  • 高效并支持并行计算。
  • 涵盖 23 种有用且有效的运算符,用于生成候选特征。
  • 支持二分类、多分类和回归任务。
  • 自动处理缺失值和分类特征。

OpenFE 的特征生成过程采用了扩展和缩减框架:

  1. 扩展步骤使用预定义的运算符对基本特征进行转换,生成候选特征池。
  2. 缩减步骤采用两阶段修剪算法,有效地从候选池中识别有效特征。

初次体验:

<code>import pandas as pd from sklearn.datasets import fetch_california_housing from openfe import OpenFE, tree_to_formula, transform from sklearn.model_selection import train_test_split import lightgbm as lgb from sklearn.metrics import mean_squared_error def get_score(train_x, test_x, train_y, test_y): # 省略部分代码 return score data = fetch_california_housing(as_frame=True).frame label = data[['MedHouseVal']] del data['MedHouseVal'] train_x, test_x, train_y, test_y = train_test_split(data, label, test_size=0.2, random_state=1) # 获取基准分数 score = get_score(train_x, test_x, train_y, test_y) print("特征生成前的均方误差(MSE)为:", score) # 特征生成 ofe = OpenFE() ofe.fit(data=train_x, label=train_y, n_jobs=1) train_x, test_x = transform(train_x, test_x, ofe.new_features_list[:10], n_jobs=n_jobs) # 获取生成特征后的分数 score = get_score(train_x, test_x, train_y, test_y) print("特征生成后的均方误差(MSE)为:", score) print("前十个生成的特征为:") for feature in ofe.new_features_list[:10]: print(tree_to_formula(feature))</code>
图片[2]-提升效率的神器:OpenFE Python 库-山海云端论坛

通过对比可以看出,使用 OpenFE 进行自动化特征处理后,MSE 有了显著的降低。

这个强大的 Python 库可以在特征处理中为您节省大量时间和精力,快来体验吧!

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容