一个Python AutoML工具,用于快速探索和实验有监督的机器学习管道。
atom-ml的Python项目详细描述
在
优化建模的自动化工具
作者:tvdboom电子邮件:m.524687@gmail.com
存储库:
发布信息:
生成状态:
代码分析:
说明
在数据科学中没有一个神奇的公式可以告诉我们哪种类型的机器 学习算法在特定的用例中表现最好。不同型号 更适合于不同类型的数据和不同的问题。充其量, 你可以跟着一些rough guide 关于如何处理关于在数据上使用哪个模型的问题,但是 这些往往更令人困惑,而不是有益的。最佳实践表明 我们从一个简单的模型(例如线性回归)开始,然后逐步建立更多 复杂模型(如logistic回归->随机森林->多层感知器) 如果你对结果不满意。不幸的是,不同的模型需要 不同的数据清理步骤、不同类型/数量的功能、调整新设置 为了这个目的重构代码会很无聊 而且很费时。正因为如此,许多数据科学家最终只能使用这个模型 他们最为人所知,并且在没有尝试过不同的情况下对这个特定的模型进行微调 一个。这可能导致性能不佳(因为模型不是正确的) 或者时间管理不善(因为你本可以取得类似的成绩) 性能更简单/更快的型号)。在
ATOM是来帮助我们解决这些问题的。只需几行代码,就可以 执行基本数据清理步骤,选择相关功能并比较性能 一个给定数据集上的多个模型。ATOM应该能够提供快速的洞察力 哪种算法最适合手头的任务,并提供 ML方案的可行性。在
重要的是要认识到ATOM并不是用来代替数据的所有工作 科学家在把他的模型投入生产前必须做些什么。原子不会吐出来 只需在API中调整一些参数,即可生产就绪的模型。帮了你之后 要确定正确的模型,您很可能需要使用 使用特定于用例的特性和数据清理步骤,以实现最大性能。在
这听起来有点像AutoML,ATOM和AutoML有什么不同 auto-sklearn还是{a18}? 好吧,ATOM做AutoML是因为它可以帮助您找到 具体任务,但与上述包相反,它并不积极 寻找最佳型号。它只需运行所有这些,然后让您选择一个 你觉得最适合你。AutoML包通常是黑盒:如果您提供 数据,它将神奇地返回一个工作模型。虽然效果很好,但他们经常 生产复杂的管道,解释性低,难以销售给企业。 在这方面,ATOM表现出色。对管道的每一步都进行了说明,并使用 提供了绘图方法,很容易证明为什么模型比 其他的。在
ATOM管道采取的步骤示例:
- 数据清理
- 缺少句柄值
- 分类特征编码
- 删除异常值
- 平衡数据集
- 特征工程
- 创建新的非线性特征
- 删除多共线特征
- 删除差异太小的功能
- 根据统计测试选择最有希望的特征
- 培训和验证多个模型
- 用贝叶斯优化方法选择超参数
- 根据提供的数据训练和测试模型
- 进行装袋,以评估输出的稳健性
- 分析结果
- 获取各种指标的模型分数
- 制造比较模型性能的图
在
安装
NOTE: Since atom was already taken, download the package under the name ^{ |
---|
通过pip
轻松安装ATOM的最新版本:
$pipinstall-Uatom-ml
或通过conda
:
使用
调用ATOMClassifier
或ATOMRegressor
类并提供要使用的数据:
from sklearn.datasets import load_breast_cancer
from atom import ATOMClassifier
X, y = load_breast_cancer(return_X_y)
atom = ATOMClassifier(X, y, logger='auto', n_jobs=2, verbose=2)
有多种ATOM清理方法可帮助您准备数据:
atom.impute(strat_num='knn', strat_cat='most_frequent', min_frac_rows=0.1)
atom.encode(strategy='Target', max_onehot=8, frac_to_other=0.05)
atom.feature_selection(strategy='PCA', n_features=12)
使用要比较的模型运行管道:
atom.run(
models=['LR', 'LDA', 'XGB', 'lSVM'],
metric='f1',
n_calls=25,
n_initial_points=10,
bagging=4
)
分析结果:
atom.plot_bagging(figsize=(9, 6), filename='bagging_results.png')
atom.LDA.plot_confusion_matrix(normalize=True, filename='cm.png')
文件
有关ATOM的更多信息,请参见项目的documentation。在
- 项目
标签: