在线表情包制作网站,wordpress做表格查询,做网站图结构,wordpress 用户 插件在进行数据科学时#xff0c;可能会浪费大量时间编码并等待计算机运行某些东西。所以我选择了一些 Python 库#xff0c;可以帮助你节省宝贵的时间。
喜欢记得收藏、关注、点赞#xff0c;文末送技术交流和资料
1、Optuna
Optuna 是一个开源的超参数优化框架#xff0c;…在进行数据科学时可能会浪费大量时间编码并等待计算机运行某些东西。所以我选择了一些 Python 库可以帮助你节省宝贵的时间。
喜欢记得收藏、关注、点赞文末送技术交流和资料
1、Optuna
Optuna 是一个开源的超参数优化框架它可以自动为机器学习模型找到最佳超参数。
最基本的也可能是众所周知的替代方案是 sklearn 的 GridSearchCV它将尝试多种超参数组合并根据交叉验证选择最佳组合。
GridSearchCV 将在先前定义的空间内尝试组合。例如对于随机森林分类器可能想要测试几个不同的树的最大深度。GridSearchCV 会提供每个超参数的所有可能值并查看所有组合。
Optuna会在定义的搜索空间中使用自己尝试的历史来确定接下来要尝试的值。它使用的方法是一种称为“Tree-structured Parzen Estimator”的贝叶斯优化算法。
这种不同的方法意味着它不是无意义的地尝试每一个值而是在尝试之前寻找最佳候选者这样可以节省时间否则这些时间会花在尝试没有希望的替代品上并且可能也会产生更好的结果。
最后它与框架无关这意味着您可以将它与 TensorFlow、Keras、PyTorch 或任何其他 ML 框架一起使用。
2、ITMO_FS
ITMO_FS 是一个特征选择库它可以为 ML 模型进行特征选择。拥有的观察值越少就越需要谨慎处理过多的特征以避免过度拟合。所谓“谨慎”意思是应该规范你的模型。通常一个更简单的模型更少的特征更容易理解和解释。
ITMO_FS 算法分为 6 个不同的类别监督过滤器、无监督过滤器、包装器、混合、嵌入式、集成尽管它主要关注监督过滤器。
“监督过滤器”算法的一个简单示例是根据特征与目标变量的相关性来选择特征。“backward selection”可以尝试逐个删除特征并确认这些特征如何影响模型预测能力。
这是一个关于如何使用 ITMO_FS 及其对模型分数的影响的普通示例 from sklearn.linear_model import SGDClassifier from ITMO_FS.embedded import MOS X, y make_classification(n_samples300, n_features10, random_state0, n_informative2) sel MOS() trX sel.fit_transform(X, y, smoteFalse) cl1 SGDClassifier() cl1.fit(X, y) cl1.score(X, y)
0.9033333333333333 cl2 SGDClassifier() cl2.fit(trX, y) cl2.score(trX, y)
0.9433333333333334ITMO_FS是一个相对较新的库因此它仍然有点不稳定但我仍然建议尝试一下。
3、shap-hypetune
到目前为止我们已经看到了用于特征选择和超参数调整的库但为什么不能同时使用两者呢这就是 shap-hypetune 的作用。
让我们从了解什么是“SHAP”开始
“SHAPSHapley Additive exPlanations是一种博弈论方法用于解释任何机器学习模型的输出。”
SHAP 是用于解释模型的最广泛使用的库之一它通过产生每个特征对模型最终预测的重要性来工作。
另一方面shap-hypertune 受益于这种方法来选择最佳特征同时也选择最佳超参数。你为什么要合并在一起因为没有考虑它们之间的相互作用独立地选择特征和调整超参数可能会导致次优选择。同时执行这两项不仅考虑到了这一点而且还节省了一些编码时间尽管由于搜索空间的增加可能会增加运行时间。
搜索可以通过 3 种方式完成网格搜索、随机搜索或贝叶斯搜索另外它可以并行化。
但是shap-hypertune 仅适用于梯度提升模型
4、PyCaret
PyCaret 是一个开源、低代码的机器学习库可自动执行机器学习工作流。它涵盖探索性数据分析、预处理、建模包括可解释性和 MLOps。
让我们看看他们网站上的一些实际示例看看它是如何工作的
# 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()只需几行代码就可以尝试多个模型并在整个主要分类指标中对它们进行了比较。
它还允许创建一个基本的应用程序来与模型进行交互
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 和 Docker 文件
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)没有比这更容易的了对吧
PyCaret是一个非常完整的库在这里很难涵盖所有内容建议你现在下载并开始使用它来了解一些 其在实践中的能力。
5、floWeaver
FloWeaver 可以从流数据集中生成桑基图。如果你不知道什么是桑基图这里有一个例子 在显示转化漏斗、营销旅程或预算分配的数据时它们非常有用上例。入口数据应采用以下格式“源 x 目标 x 值”只需一行代码即可创建此类图非常具体但也非常直观。
6、Gradio
如果你阅读过敏捷数据科学就会知道拥有一个让最终用户从项目开始就与数据进行交互的前端界面是多么有帮助。一般情况下在Python中最常用是 Flask但它对初学者不太友好它需要多个文件和一些 html、css 等知识。
Gradio 允许您通过设置输入类型文本、复选框等、功能和输出来创建简单的界面。尽管它似乎不如 Flask 可定制但它更直观。
由于 Gradio 现在已经加入 Huggingface可以在互联网上永久托管 Gradio 模型而且是免费的
7、Terality
理解 Terality 的最佳方式是将其视为“Pandas 但速度更快”。这并不意味着完全替换 pandas 并且必须重新学习如何使用dfTerality 与 Pandas 具有完全相同的语法。实际上他们甚至建议“import Terality as pd”并继续按照以前的习惯的方式进行编码。
它快多少他们的网站有时会说它快 30 倍有时快 10 到 100 倍。
另一个重要是 Terality 允许并行化并且它不在本地运行这意味着您的 8GB RAM 笔记本电脑将不会再出现 MemoryErrors
但它在背后是如何运作的呢理解 Terality 的一个很好的比喻是可以认为他们在本地使用的 Pandas 兼容的语法并编译成 Spark 的计算操作使用Spark进行后端的计算。所以计算不是在本地运行而是将计算任务提交到了他们的平台上。
那有什么问题呢每月最多只能免费处理 1TB 的数据。如果需要更多则必须每月至少支付 49 美元。1TB/月对于测试工具和个人项目可能绰绰有余但如果你需要它来实际公司使用肯定是要付费的。
8、torch-handle
如果你是 Pytorch 的使用者可以试试这个库。
torchhandle是一个PyTorch的辅助框架。它将PyTorch繁琐和重复的训练代码抽象出来使得数据科学家们能够将精力放在数据处理、创建模型和参数优化而不是编写重复的训练循环代码。使用torchhandle可以让你的代码更加简洁易读让你的开发任务更加高效。
torchhandle将Pytorch的训练和推理过程进行了抽象整理和提取只要使用几行代码就可以实现PyTorch的深度学习管道。并可以生成完整训练报告还可以集成tensorboard进行可视化。
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)) ])) 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_size64, num_workers0, shuffleTrue)
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(modelmodel, criterioncriterion, optimizeroptimizer, schedulerscheduler, conpython_tagex01)
train c.make_train_session(device, dataloaderloaders)
train.train(epochs10)定义一个模型设置数据集配置优化器、损失函数就可以自动训练了是不是和TF差不多了。
技术交流
独学而无优则孤陋而寡闻技术要学会交流、分享不建议闭门造车。
技术交流与答疑、源码获取均可加交流群获取群友已超过2000人添加时最好的备注方式为来源兴趣方向方便找到志同道合的朋友。 方式①、微信搜索公众号Python学习与数据挖掘后台回复资料 方式②、添加微信号dkl88194备注资料 资料1 资料2 我们打造了《数据分析实战案例宝典》特点从0到1轻松学习方法论及原理、代码、案例应有尽有所有案例都是按照这样的节奏进行表述。