首页/默认分类/正文
提高数据科学效率的Python库推荐:Optuna超参数优化框架详解

 2025年03月26日  阅读 7

摘要:˂p[id_[]]]在进行数据科学的过程中,可能会耗费大量的时间去进行编码以及等待计算机运行某些事物。因此,我挑选了一些库,这些库能够帮助你节省那些宝贵的时间。1、它是一个开源的框架,能够自动为机器学习模型找到最佳超参数。最基本的替代方案或许是广为人知的...

1、

它是一个开源的框架,能够自动为机器学习模型找到最佳超参数。

最基本的替代方案或许是广为人知的那种,它会尝试诸多超参数的组合,并且会依据交叉验证来挑选出最佳的组合。

会在之前定义的空间内进行尝试组合。比如对于随机森林分类器,也许会想要去测试几种不同树的最大深度。会给出每个超参数的所有可能值,并且会查看所有的组合情况。

它会在定义的搜索空间里,利用自己尝试的过往历史,来确定接下来要尝试的数值。它所使用的方法是一种被称作“Tree-”的贝叶斯优化算法。

这种不同的方法意味着它并非随意地尝试每一个值,而是在尝试之前先去寻找最佳候选者。这样做能够节省时间,要是不这样做,这些时间就会被花费在尝试那些没有希望的替代品上,并且还有可能产生更好的结果。

它与框架无关。这表明您能够将它与 、、 或者任何其他的 ML 框架一同使用。

2、

它是一个特征选择库,能够为 ML 模型进行特征选择。观察值越少,就越要谨慎对待过多的特征,防止过度拟合。“谨慎”意味着要规范模型。通常,更简单的模型(特征更少),更易于理解和解释。

算法有 6 个不同的类别。其中包括监督过滤器。还有无监督过滤器。有包装器。有混合。有嵌入式。有集成。并且它主要关注的是监督过滤器。

“监督过滤器”算法的一个简单示例在于依据特征与目标变量的相关性去挑选特征。另外,还可以尝试逐一删除特征,并且确认这些特征对模型预测能力所产生的影响。

这是一个关于如何使用 及其对模型分数的影响的普通示例:

>>> from sklearn.linear_model import SGDClassifier 
>>> from ITMO_FS.embedded import MOS 
 
>>> X, y = make_classification(n_samples=300, n_features=10, random_state=0, n_informative=2) 
>>> sel = MOS() 
>>> trX = sel.fit_transform(X, y, smote=False) 
 
>>> cl1 = SGDClassifier() 
>>> cl1.fit(X, y) 
>>> cl1.score(X, y) 
0.9033333333333333 
 
>>> cl2 = SGDClassifier() 
>>> cl2.fit(trX, y) 
>>> cl2.score(trX, y) 
0.9433333333333334

它是一个相对新的库,所以目前还不是很稳定。不过,我依然建议你去尝试一下。

3、Shap-

我们目前已经看到了用于特征选择的库,也看到了用于超参数调整的库。那么,为什么不能同时使用这两者呢?而这就是 shap- 所起到的作用。

让我们从了解什么是“SHAP”开始:

SHAP 是一种能够用来解释任何机器学习模型输出的方法,它属于博弈论范畴。

SHAP 是其中一个被广泛使用来解释模型的库。它通过产生每个特征对于模型最终预测的重要性来开展工作。

一方面,shap 借助这种方法去挑选最佳特征,并且也会挑选最佳超参数。之所以要将它们合并,是因为如果不考虑它们之间的相互作用,单独挑选特征和调整超参数可能会做出次优的选择。而同时进行这两项操作,既考虑到了这一点,又能节省一些编码时间,不过由于搜索空间的增大,可能会使运行时间增加。

搜索有 3 种完成方式,分别是网格搜索、随机搜索和贝叶斯搜索,并且它可以并行化。然而,shap 只适用于梯度提升模型。

4、

它是一个开源且低代码的机器学习库,能够自动执行机器学习工作流。此库涵盖了探索性数据分析、预处理以及建模(其中包含可解释性)等方面。

让我们看看他们网站上的一些实际示例,看看它是如何工作的:

# load dataset 
from pycaret.datasets import get_data 
diabetes = get_data('diabetes') 
 
# init setup 
from pycaret.classification import * 
clf1 = setup(data = diabetes, target = 'Class variable') 
 
# compare models 
best = compare_models()

python挣钱路子_python 数据处理赚钱_超级赚钱工具python

使用几行代码,就能够尝试多个模型,并且可以在整个主要分类指标里对这些模型进行比较。

它还允许创建一个基本的应用程序来与模型进行交互:

from pycaret.datasets import get_data 
juice = get_data('juice') 
from pycaret.classification import * 
exp_name = setup(data = juice,  target = 'Purchase') 
lr = create_model('lr') 
create_app(lr)

最后,可以轻松地为模型创建 API 和 文件:

from pycaret.datasets import get_data 
juice = get_data('juice') 
from pycaret.classification import * 
exp_name = setup(data = juice,  target = 'Purchase') 
lr = create_model('lr') 
create_api(lr, 'lr_api') 
create_docker('lr_api')

没有比这更容易的了,对吧?

它是一个十分完整的库,在这里难以将所有内容都涵盖其中。建议你现在就下载并开始使用它,以便了解它在实践中的一些能力。

5、

能够从流数据集中制作出桑基图。倘若你不了解桑基图是什么,这里有一个示例:

在展示转化漏斗、营销旅程或预算分配的数据时,这些数据是很有用的(以上例子)。入口数据需采用这样的格式:“源 x 目标 x 值”,仅用一行代码就能够创建出这类图(既非常具体,又非常直观)。

6、

如果你读过敏捷数据科学,就会明白拥有一个能让最终用户从项目伊始就与数据交互的前端界面是很有帮助的。通常在其中最常用的是某种方式,但它对于初学者来说不太友好,因为它需要多个文件以及一些 html、css 等方面的知识。

您可以通过设置输入类型(如文本、复选框等)以及功能和输出,从而创建简单的界面。它虽然似乎不如可定制,但却更为直观。

现在已经加入了,能够在互联网上进行永久托管,并且是免费的,托管的对象是模型。

7、

理解的最佳方式是把它当作“,不过速度更快”。这并不表示要完全替换,也不必重新学习如何使用 df:与具有完全一样的语法。实际上,他们甚至提议“as pd”,并且继续按照之前习惯的方式进行编码。它快多少呢?他们的网站有时会表明它快 30 倍,有时快 10 到 100 倍。

另一个重要的是它可以并行化并且不在本地运行。这表明您的 8GB RAM 笔记本电脑将不会再遇到相关情况。

它背后是如何运作的呢?一个很好的理解比喻是,他们在本地使用兼容的语法,并将其编译成计算操作,然后利用这些操作进行后端的计算。这意味着计算不是在本地运行,而是被提交到了他们的平台上。

有什么问题呢?每月免费处理的数据最多为 1TB。若需要更多数据,就必须每月至少支付 49 美元。1TB 每月对于测试工具和个人项目来说或许是足够的,但要是用于实际公司使用,肯定需要付费。

8、-

如果你是的使用者,可以试试这个库。

它是一个辅助框架。能够把繁琐且重复的训练代码进行抽象处理。这样一来,数据科学家们就可以把精力集中在数据处理、创建模型以及参数优化上,而无需花费时间去编写重复的训练循环代码。使用该框架后,你的代码会变得更加简洁且易于阅读,也能让你的开发任务更加高效。

对训练和推理过程进行了抽象整理与提取,仅需使用几行代码便能实现深度学习管道。并且能够生成完整的训练报告,同时还可以进行集成以实现可视化。

from collections import OrderedDict 
import torch 
from torchhandle.workflow import BaseConpython 
 
 
class Net(torch.nn.Module): 
    def __init__(self, ): 
        super().__init__() 
        self.layer = torch.nn.Sequential(OrderedDict([ 
            ('l1', torch.nn.Linear(10, 20)), 
            ('a1', torch.nn.ReLU()), 
            ('l2', torch.nn.Linear(20, 10)), 
            ('a2', torch.nn.ReLU()), 
            ('l3', torch.nn.Linear(10, 1)) 
        ])) 
 

python挣钱路子_超级赚钱工具python_python 数据处理赚钱

def forward(self, x): x = self.layer(x) return x num_samples, num_features = int(1e4), int(1e1) X, Y = torch.rand(num_samples, num_features), torch.rand(num_samples) dataset = torch.utils.data.TensorDataset(X, Y) trn_loader = torch.utils.data.DataLoader(dataset, batch_size=64, num_workers=0, shuffle=True) loaders = {"train": trn_loader, "valid": trn_loader} device = 'cuda' if torch.cuda.is_available() else 'cpu' model = {"fn": Net} criterion = {"fn": torch.nn.MSELoss} optimizer = {"fn": torch.optim.Adam, "args": {"lr": 0.1}, "params": {"layer.l1.weight": {"lr": 0.01}, "layer.l1.bias": {"lr": 0.02}} } scheduler = {"fn": torch.optim.lr_scheduler.StepLR, "args": {"step_size": 2, "gamma": 0.9} } c = BaseConpython(model=model, criterion=criterion, optimizer=optimizer, scheduler=scheduler, conpython_tag="ex01") train = c.make_train_session(device, dataloader=loaders) train.train(epochs=10)

定义一个模型,接着设置数据集,然后配置优化器和损失函数,这样就能够自动进行训练了,这和 TF 是不是差不多呢?

关于学习指南

学好的话,无论是用于就业还是做副业赚钱都很不错。不过,要学会的话,还是需要有一个学习规划。最后,给大家分享一份完整的学习资料,给那些想要学习的小伙伴们提供一些帮助。

包括激活码和安装包,还有 web 开发、爬虫、数据分析、人工智能以及自动化办公等方面的学习教程。能带你从毫无基础开始,进行系统性的学习并学好。

所有方向的学习路线

常用的技术点会被整理,形成各个领域的知识点汇总,这就是所有方向路线的内容。它的用处是,你能够依据上面的知识点去寻找对应的学习资源,从而保证自己学习得较为全面。(全套教程文末领取)

学习视频600合集

观看零基础学习视频,通过看视频来学习是最为快捷且最有效果的途径。跟着视频里老师的思路,从基础开始逐步深入,是比较容易入门的。

温馨提示:因篇幅有限,已将相关内容打包成文件夹。获取该文件夹的方式位于文末的一个实战练手案例及源码处。

光学理论本身并无实际用处,需要学会动手操作,跟着一起敲代码等。只有通过实际动手,才能将所学知识运用到实际中。在这个过程中,可以找一些实战案例来进行学习。

大厂面试资料

我们学习的目的必然是找到高薪工作。以下这些面试题,它们来自阿里、腾讯、字节等一线互联网大厂,并且是最新的面试资料。同时,有阿里的大佬给出了权威的解答。如果大家把这一套面试资料都刷完,相信都能找到满意的工作。

副业兼职路线&方法

学好的话,无论是用于就业还是做副业赚钱,都很不错。然而,要学会兼职接单,还是需要制定一个学习规划。

这份完整版的全套学习资料已经被上传了。朋友们要是需要的话,就可以去扫描下方 CSDN 官方认证的二维码,或者点击链接来免费领取,并且保证是 100%免费的。

版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;

原文链接:http://wen.bjhwtx.com/post/13066.html

标签:

天狐多媒体CMS

Z-Blog既是博客程序,也是CMS建站系统,已走过十余年风雨的系统,一次购买,永久免费升级更新。
热门标签
关于我们
Zblog应用中心有大量的插件和模板,其功能强大,只要会一点HTML+CSS+JS,就可以轻而易举地制作出美观的模板。集成Z-Blog应用中心功能,可以简单地从后台下载你想要的主题模板和插件。
扫码关注
联系方式
全国服务热线:0755-888866601
Q Q:888866602
Email:wx888866603@qq.com
地址:深圳市南山区海雅缤纷国际大厦04
Copyright 云天市蓝天科技有限公司 版权所有 备案号:粤ICP备98989988号