自动特征工程和选择线性预测模型
项目描述
autofeat图书馆
具有自动特征工程和选择的线性预测模型
该库包含AutoFeatRegressor和AutoFeatClassifier具有与模型类似的接口的scikit-learn模型:
fit()拟合模型参数的函数predict()给定输入预测目标变量的函数score()计算拟合优度的函数(R^2/准确度)fit_transform()和transform()函数,通过模型设计和选择的附加特征扩展给定数据
调用该fit()函数时,将在内部调用该函数fit_transform(),因此如果您打算调用transform()相同的数据,请fit_transform()立即调用。transform()如果您已将数据拆分为训练数据和测试数据并且没有调用fit_transform()整个数据集,则该方法最有用。和函数可以以调用/时使用的原始数据帧的格式提供数据predict(),也可以给它们一个已经转换的数据帧。score()fit()fit_transform()
此外,模型中也只有特征选择部分FeatureSelector。
AutoFeatLight此外(从 2.0.0 版开始),模型中还提供最小特征选择(去除零方差和冗余特征)、工程(简单乘积和特征比率)和缩放(功率变换以使特征更正态分布).
、和模型需要适合没有 NaN 的数据AutoFeatRegressor,因为它们在内部调用 sklearn模型,它不能处理 NaN。调用 时,NaN(但不是)是可以的。AutoFeatClassifierFeatureSelectorLassoLarsCVtransform()np.inf
autofeat示例笔记本包含一个简单的使用示例 - 试试吧!:) 其他示例可以在回归的 autofeat 基准笔记本中找到(其中还包含从下面提到的论文中重现结果的代码)和分类,以及测试脚本。
请记住,由于AutoFeatRegressor和AutoFeatClassifier模型可以生成非常复杂的特征,它们可能会过度拟合数据集中的噪声,即,找到一些新特征会导致对训练集的良好预测,但会导致在新测试样本上的表现不佳。虽然这通常只发生在样本很少的数据集上,但我们建议您仔细检查发现的特征,autofeat并使用对您有意义的特征来训练自己的模型。
根据feateng_steps输入特征的数量(默认为 2)和数量,autofeat可以生成一个非常巨大的特征矩阵(在从这个庞大的特征池中选择最合适的特征之前)。通过在feateng_cols那些列中指定您希望在特征工程部分中最有价值的列,可以大大减少特征的数量。此外,transformations可以仅限于那些对您的数据有意义的特征转换。最后但同样重要的是,您可以对用于训练模型的数据进行二次抽样以限制内存需求。模型拟合后,您可以调用transform()整个数据集以仅生成在fit()/期间选择的少数特征fit_transform()。
安装
您可以从此处下载代码并将 autofeat 文件夹包含在您的$PYTHONPATH或通过 pip 安装(仅限库组件):
$ pip install autofeat
该库需要 Python 3!其他依赖项:numpy, pandas, scikit-learn, sympy, joblib,pint和numba.
纸
有关模型和实现的更多详细信息,请参阅论文 ——当然,如果此代码中的任何一个对您的研究有帮助,请考虑引用它:
@inproceedings{horn2019autofeat,
title={The autofeat Python Library for Automated Feature Engineering and Selection},
author={Horn, Franziska and Pack, Robert and Rieger, Michael},
booktitle={Joint European Conference on Machine Learning and Knowledge Discovery in Databases},
pages={111--120},
year={2019},
organization={Springer}
}
如果你不喜欢阅读,你也可以观看我在 PyData 会议上关于自动化特征工程和选择的演讲视频autofeat。
该代码旨在用于研究目的。
如果您有任何问题,请随时给我发送电子邮件,当然,如果您发现任何错误或想贡献其他改进,非常欢迎拉取请求!
致谢
得益于巴斯夫的支持,该项目得以实现。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。