千家信息网

数据科学家该了解的Python自动库有哪些

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容主要讲解"数据科学家该了解的Python自动库有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"数据科学家该了解的Python自动库有哪些"吧!
千家信息网最后更新 2025年11月13日数据科学家该了解的Python自动库有哪些

本篇内容主要讲解"数据科学家该了解的Python自动库有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"数据科学家该了解的Python自动库有哪些"吧!

1.auto-sklearn

auto-sklearn是一个自动机器学习工具包,无缝集成业内许多人都熟悉的标准sklearn界面。通过使用贝叶斯优化等最新方法,构建库来导航可能的模型空间,并学习推断特定的配置是否能很好地完成给定任务。

这个库是由Matthias Feurer等人创建,其技术细节在一篇名为《高效和鲁棒机器学习》的论文中进行了描述。Feurer写道:"我们引入了一个基于scikit-learn的新鲁棒性自动系统——使用15个分类器、14个特征预处理方法和4个数据预处理方法生成110个超参数的结构化假设空间。"

auto-sklearn可能是入门AutoML的最佳库。除了挖掘数据集的数据准备和模型选择之外,它还能学习类似数据集上性能良好的模型。

图源:Efficient and Robust Automated Machine Learning(2015)

在有效实施的基础上,auto-sklearn将所需用户交互降至最低。可以使用pip install auto-sklearn来安装库。

可以使用的两大类是Auto Sklearn Classifier和Auto Sklearn Regressor,分别用于分类和回归任务。两者都有相同的用户指定参数,其中最重要的是时间限制和集成大小。

import autosklearn as ask             #ask.regression.AutoSklearnRegressor()for regression tasks             model =ask.classification.AutoSklearnClassifier(ensemble_size=10, #size of the endensemble (minimum is 1)                                                             time_left_for_this_task=120, #the number ofseconds the process runs for                                                             per_run_time_limit=30) #maximum secondsallocated per model             model.fit(X_train, y_train) #begin fittingthe search model             print(model.sprint_statistics()) #printstatistics for the search             y_predictions = model.predict(X_test) #get predictionsfrom the model

2.TPOT

TPOT是另一个自动化建模管道的Python库,它更强调数据准备、建模算法和模型超参数。它通过一种进化的基于树结构自动化特征选择、预处理和构造,"该结构称为基于树管道优化工具(TPOT),可以自动设计和优化机器学习管道。"

图源:数据科学自动化中基于树的流水线优化工具的评价(2016)

程序或管道以树状图呈现。遗传程序选择并进化某些程序,以最大化每个自动机器学习管道的最终结果。

正如Pedro Domingos所说:"一个拥有大量数据的愚蠢算法胜过一个拥有有限数据的聪明算法。"事实确实如此,TPOT可以生成复杂的数据预处理管道。

图源:TPOT documentation

就像许多AutoML算法一样,TPOT管道优化器可能要花几个小时才能产生好的结果,你可以在Kaggle commits或者谷歌Colab中运行这些长时间的程序。

import tpot       pipeline_optimizer = tpot.TPOTClassifier(generations=5, #number ofiterations to run the training                                               population_size=20, #number ofindividuals to train                                                cv=5) #number of foldsin StratifiedKFold       pipeline_optimizer.fit(X_train, y_train) #fit thepipeline optimizer - can take a long time       print(pipeline_optimizer.score(X_test, y_test)) #print scoringfor the pipeline       pipeline_optimizer.export( tpot_exported_pipeline.py ) #export thepipeline - in Python code!

也许TPOT的最佳特性是可以将模型导出为Python代码文件,方便以后使用。

3.HyperOpt

由James Bergstra开发的HyperOpt是一个用于贝叶斯优化的Python库。为大规模优化具有数百个参数的模型而设计,该库明确用于优化机器学习管道,并具有在多个核和机器之间扩展优化过程的选项。

"我们的方法是公开一个性能度量(例如验证示例上的分类精度)如何从超参数计算的底层表达式图,这些超参数不仅控制单个处理步骤的应用,而且甚至控制包含哪些处理步骤。"

然而,HyperOpt很难直接使用,因为它存在技术壁垒,需要仔细指定优化过程和参数。我建议使用HyperOpt-sklearn,这是一个包含sklearn库的HyperOpt包装器。

具体来说,尽管HyperOpt支持预处理,但其主要关注几十个进入特定模型的超参数。考虑一次HyperOpt-sklearn搜索的结果,在没有进行预处理的情况下,得到了一个梯度增强分类器:

{ learner : GradientBoostingClassifier(ccp_alpha=0.0, criterion= friedman_mse , init=None,     learning_rate=0.009132299586303643, loss= deviance ,     max_depth=None, max_features= sqrt ,     max_leaf_nodes=None, min_impurity_decrease=0.0,     min_impurity_split=None, min_samples_leaf=1,     min_samples_split=2, min_weight_fraction_leaf=0.0,     n_estimators=342, n_iter_no_change=None,     presort= auto , random_state=2,     subsample=0.6844206624548879, tol=0.0001,     validation_fraction=0.1, verbose=0,     warm_start=False),  preprocs : (),  ex_preprocs : ()}

构建HyperOpt-sklearn模型的文档提到,它比auto-sklearn要复杂得多,比TPOT稍微复杂一点。但如果超参数的作用很重要,那么多余的繁琐工作也是值得的。

4.AutoKeras

与标准的机器学习库相比,神经网络和深度学习要强大得多,因此也更难实现自动化。

  • 使用AutoKeras,神经结构搜索算法会找到最好的结构,比如一层中的神经元数量,层的数量,要合并的层,层的特定参数,比如过滤器的大小或Dropout中丢失的神经元的百分比等等。一旦搜索完成,就可以将其当作一个普通的TensorFlow/Keras模型来使用这个模型。

  • 通过使用AutoKeras,你可以构建一个包含复杂元素的模型,比如嵌入和空间缩减,否则那些仍在摸索深度学习的人将很难获得这些元素。

  • 当AutoKeras创建模型时,已完成并优化许多预处理,如向量化或清理文本数据。

  • 启动和训练搜索只需要两行代码。而AutoKeras拥有一个类似于keras的界面,所以它易于记忆和使用。

AutoKeras支持文本、图像和结构化数据,并为初学者和那些希望深入技术知识的人提供接口,AutoKeras使用进化神经结构搜索方法来消除困难和歧义。尽管AutoKeras运行的时间很长,但有许多用户指定的参数可用来控制运行时间、探索的模型数量、搜索空间大小等。

Hyperparameter      |Value     |BestValueSoFar                  text_block_1/block_type|transformer|transformer                        classification_head_1/dropout|0         |0                                  optimizer           |adam      |adam                               learning_rate       |0.001     |0.001                              text_block_1/max_tokens|20000     |20000                              text_block_1/text_to_int_sequence_1/output_sequence_length|200       |200                                text_block_1/transformer_1/pretraining|none     |none                               text_block_1/transformer_1/embedding_dim|32        |32                                 text_block_1/transformer_1/num_heads|2         |2                                  text_block_1/transformer_1/dense_dim|32        |32                                 text_block_1/transformer_1/dropout|0.25      |0.25                               text_block_1/spatial_reduction_1/reduction_type|global_avg|global_avg                         text_block_1/dense_block_1/num_layers|1         |1                                  text_block_1/dense_block_1/use_batchnorm|False     |False                              text_block_1/dense_block_1/dropout|0.5       |0.5                                text_block_1/dense_block_1/units_0|20        |20

应该使用哪一个自动库呢?

  • 如果你首选整洁、简单的界面和相对快速的结果,请使用auto-sklearn。可以与sklearn的自然集成,与常用的模型和方法一起使用。

  • 如果注重的是高精确度而不介意训练所需消耗时间较长,可以使用TPOT。可通过用树状结构代表管道而达成其强调的先进预处理方法,它还能额外输出最佳模型的Python代码。

  • 如果注重高精确度而不介意潜在的较长训练时间,则使用HyperOpt-sklearn,强调模型的超参数优化是否有成效取决于数据集和算法。

  • 如果你的问题涉及神经网络,特别是文本或图像形式的问题,请使用AutoKeras。其训练确实需要很长时间,但有大量的措施可以控制时间和搜索空间的大小。

想实现自动化,千万不要错过这四个库。

到此,相信大家对"数据科学家该了解的Python自动库有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

模型 数据 参数 学习 管道 方法 结构 预处理 机器 搜索 时间 神经 算法 空间 自动化 科学 复杂 大小 程序 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云丰虚拟主机和云服务器 网络安全模式无法使用百度输入法 打车平台网络安全问题 金山区银联软件开发参考价格 软件c和服务器d有什么区别 税控服务器管理系统怎么搭建 北京积分互联网科技有限公司 方舟服务器怎么推广 计算机网络技术形考作业5 仁寿租房软件开发 华为招不招收软件开发人员 互联网科技类新闻 uniapp连接数据库方法 我的世界肝帝很能进的服务器 批量excel导入数据库 网络安全教育内容内容 软件开发模型增量模型 药库数据库报告 跑跑卡丁车手游杯王争霸赛服务器 软件开发程序设计员考证 云计算下的网络安全问题开题报告 宁波数据库安全审计 华为网络技术大赛中级训练题 全县网络安全建设发言材料 科学利用网络技术达到什么 cognos如何连接数据库 sql输入命令建立数据库 愤怒的小鸟服务器有几个 redis存入数据库 ftp服务器开启不了
0