Python 8 库可提高数据科学性能!
当您从事数据科学时,您可能会花费大量时间编码并等待计算机运行。所以我选择了一个可以帮助你节省宝贵时间的Python库。
1。
Optuna是一个开源的超参数优化框架,可以自动寻找机器学习模型的最优超参数。 最基本(也可能是最著名)的选项是 sklearn 的 GridSearchCV,它将尝试超参数的多种组合,并根据交叉验证选择最佳组合。 GridSearchCV 将尝试先前定义的范围内的组合。例如,对于随机森林分类,您可以尝试许多不同的树深度。 GridSearchCV为每个超参数提供所有可能的值并扫描所有组合。 Optuna在定义的搜索空间内使用自己的实验历史来确定下一步要尝试的值。他使用的方法是一种名为“树结构Parzen Estimator”的贝叶斯优化算法。 这种不同的方法意味着我们不会徒劳地尝试所有值,而是在尝试之前找到最佳候选值,从而节省了时间,否则将花在尝试无用的选项上(也许还会带来更好的结果)。 最后,它与框架无关,这意味着您可以将它与 TensorFlow、Keras、PyTorch 或任何其他 ML 框架一起使用。2。 ITMO_FS
ITMO_FS 是一个特征选择库,可以对 ML 模型执行特征选择。您拥有的注释越少,您就越需要谨慎使用过多的功能以避免过载。 “谨慎”意味着你应该标准化你的模型。更简单的模型(更少的特征)通常更容易理解和解释。 ITMO_FS 算法分为 6 个不同的类别:控制过滤器、无监督过滤器、包装器、混合、嵌入式、集成(尽管主要集中在控制过滤器)。 “监督过滤”算法的一个简单示例是基于其与目标变量的相关性的特征选择。通过“向后选择”,您可以尝试删除单个特征并检查这些特征如何影响模型的预测能力。以下是使用 ITMO_FS 及其如何影响模型分数的简单示例: >>> from sklearn.linear_model import SGDClassifier>>> from the ITMO_FS.embedded MOS♺>>>>> smote=假)
>>> cl1 = SGDClassifier()
>>> cl1.fit(X, y)
>>> cl1.score (X, y)33 333
3 3,第333章 >>> cl2 = SGDClassifier()
>>> cl2.fit(trX, y)
>>> cl2.score(trX ,y)
0.943333333333334 是一个新 IT库,所以它仍然有点不稳定,但我仍然建议尝试。
3。 shap-hypetune
到目前为止,我们已经看到了用于特征选择和超参数拟合的库,但为什么不一起使用两者呢?这就是形状炒作的作用。 让我们首先了解什么是“SHAP”:“SHAP(SHapley Additive Explanations)是一种用于解释机器学习模型结果的博弈论方法。” SHAP 旨在翻译使用最广泛的模型库之一,致力于创建模型最终预测中每个特征的重要性。 另一方面,shap-hypertune 通过选择最佳特征以及最佳超参数而受益于这种方法。为什么要把它们结合起来?独立选择特征和设置超参数可能会导致次优选择,因为没有考虑它们的相关性。同时执行这两项操作不仅考虑到了这一点,而且还节省了编码时间(尽管由于搜索空间的增加,运行时间可能会增加)。 搜索可以通过3种方式完成:网格搜索、随机搜索或贝叶斯搜索(加号、可匹配)。 但是,shap-hypertune 仅适用于梯度驱动模型!4。 PyCaret
PyCaret 是一个开源、低代码的机器学习库,可自动执行机器学习过程。它涵盖探索性数据分析、预处理、建模(包括解释功能)和 MLOps。 让我们看一下他们网站上的实际示例,看看它是如何工作的: # load datasetfrom pycaret.datasets import get_data
diabetes = get_data('diabetes')# ❀ init
from pycaret.classification import *
clf1 = setup(data=diabetes, target='Classvariable')
#比较模型
best=compare_models()on行代码,可测试多个模型并与关键分类指标进行比较。还允许创建一个基本应用程序来与模型交互:from pycaret.datasets import get_data
juice = get_data('juice')
from pycaret.classification import * exp_name = setup( data = Juice, target = 'Buy')
lr = create_model('lr')
create_app(lr)最后可以轻松地为模型创建 API 和 Docker 文件:来自 pycaret。数据集导入get_data
果汁= get_data('果汁')
从pycaret.classification导入*
exp_name =设置(数据=果汁,目标='购买')create_model('lr')
create_api(lr, 'lr_api')
create_docker('lr_api') 没有比这更容易的了,不是吗? PyCaret 是一个非常全面的库,在这里很难涵盖所有内容,我们建议您立即下载它并开始使用它来在实践中了解它的一些功能。
5、floWeaver
FloWeaver 可以根据实时数据生成桑基图。如果您不知道桑基图是什么,这里有一个示例:
6。 Gradio
如果您曾经阅读过敏捷数据科学,您就会知道拥有一个允许最终用户从项目一开始就与数据交互的前端界面有多么有用。一般来说,Flask 经常与 Python 一起使用,但它对初学者不太友好。它需要大量的文件和一些html、css等知识。 Gradio 允许您通过设置输入类型(文本、框等)、功能和输出来创建简单的界面。虽然它看起来比 Flask 的可定制性差一些,但它更直观。由于 Gradio 现已与 Huggingface 集成,因此可以免费在线托管永久 Gradio 模型!7。 Terality
理解 Terality 的最佳方式是将其视为“熊猫,但速度更快”。这并不意味着完全取代 pandas 并必须重新学习如何使用 df:Terality 与 Pandas 具有相同的语法。事实上,他们甚至建议“将 Terality 导入为 pd”并继续按照以前的方式进行编码。 快吗?他们的网站有时说速度快了 30 倍,有时说快了 10 到 100 倍。 另一个重要的事情是 Terality 允许同步并且不本地运行,这意味着您的 8GB RAM 计算机上不会再出现内存错误! 但是它在幕后是如何运作的呢?理解Terality的一个很好的比喻是,他们以自然的方式使用与Pandas兼容的语法,并将其编译成Spark计算操作,使用Spark进行后端计算。因此,计算不是在本地进行,而是在各自的域内进行计算。 那么问题出在哪里呢?您每月最多可以免费传输 1TB 的数据。如果你想要更多,你必须每月支付至少 49 美元。每月 1TB 可能足以用于测试设备和个人项目,但如果您需要用于实际业务,则必须付费。8。 torch-handle
如果你是 Pytorch 用户,你可以尝试这个库。 torchhandle 是一个 PyTorch 辅助系统。它去掉了PyTorch繁琐、重复的训练代码,让数据科学家能够专注于数据处理、模型创建和参数优化,而不是编写重复的训练代码。使用torchhandle可以让代码更短、更容易阅读,让开发工作更加高效。 torchhandle 提取并捕获 Pytorch 的训练和推理过程,您只需几行代码即可实现 PyTorch 的深度学习管道。它可以生成全面的培训报告,并包括用于可视化的张量板。from collection import OrderedDictimport torch
from torchhandle.workflow import BaseConpython
class Net(torch.nn.Module):):::: : : : : :
) .__init__()
self.layer = torch.nn.Sequential(OrderedDict([
('l1', torch.nn.Line)阿尔( 10, 20)),
('a1', torch.nn.ReLU()),
('l2', torch.nn.Linear(20, 10)),
('a2' , torch.nn.ReLU()),
('l3', torch.nn.Linear(10, 1))
]))
def 向前(self, x ):
x = self.layer(x)
返回 xsample , num_features = int(1e4), int(1e1)
)
trn_loader = torch.utils.data.DataLoader(dataset , batch_size=64, num_workers =0, shuffle=” = ‿ loader) train”: trn_loader, “valid”: trn_loader}
device = 'cuda' if torch.cuda.is_available() else 'cpu'
model = {"fn ": Net}
标准 = {"fn": torch.nn.MSELoss}
优化器 = { "fn": torch.optim.Adam,
"args": {"lr": 0.1},
"params": {"layer.l1.weight": {"lr": 0.01},
"layer.l1 .bias": {"lr": 0.02}}
}
调度程序 = {"fn": torch.optim.lr_scheduler.StepLR,
"args": {"step_size": . “:0.9}
}
c = BaseConpython(模型=模型,
标准=标准,
优化器=优化器, =“ex01”)
火车= c.make_火车会话( tools, dataloader=loaders)
train.train(epochs=10)定义模型,加载数据,配置优化器和丢失函数就可以自动训练了,对吧?几乎和TF一样
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。