前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >互联网公司加班时长最新排名出炉...

互联网公司加班时长最新排名出炉...

作者头像
数据STUDIO
发布2024-02-26 16:48:52
1460
发布2024-02-26 16:48:52
举报
文章被收录于专栏:数据STUDIO数据STUDIO

我们在选择一家公司时,不仅需要考虑总包收入待遇,还要关注公司的工作时长是否合理。大约一年前,职级对标网站(https://duibiao.info)增加了提交薪酬表单的工作时长功能,因为这是决定薪酬的关键因素之一。

这里的工作时长是指每周工作小时数。法定工作时间是40小时,大小周通常折算为60小时,996工作制通常折算为65小时,以此类推。该排名基于过去一年公司薪酬数据中工作时长的平均数。

如今一年过去了,该网站已经积累到了一些数据。以下是职级对标网站上更新的一份互联网公司工作时长排行榜,数据仅供大家参考。

总的来说,尽管在互联网大厂里,拼多多和小红书占据了平均工作时长最长的位置,分别为62.4小时和57.2小时,但是华为、字节、快手等公司对于工作时长一直在不断进行优化。然而,在实现反内卷的目标方面,需要国家出台相应政策的支持。在互联网公司,想要真正贯彻不加班的政策,仍然面临着重重挑战。


回归主线,要想提供工作效率,减少因效率低下的加班时长,下面介绍8 个提高数据科学工作效率的 Python库。 在进行数据科学时,可能会浪费大量时间编码并等待计算机运行某些东西。所以我选择了一些 Python 库,可以帮助你节省宝贵的时间。

1、Optuna

Optuna是一款功能强大的开源超参数优化框架,它采用一种被称为“Tree-structured Parzen Estimator”的贝叶斯优化算法,来自动寻找机器学习模型的最佳超参数。相比于sklearn的GridSearchCV,Optuna使用历史尝试结果来确定下一步尝试的值,这意味着它可以在尝试之前确定最佳候选者,从而节省时间和努力,并可能产生更好的结果。同时,Optuna的搜索空间更加灵活,并支持更多的超参数类型和分布,这使得它成为了一款值得推荐的优化工具。

最后,它与框架无关,这意味着您可以将它与 TensorFlow、Keras、PyTorch 或任何其他 ML 框架一起使用。

2、ITMO_FS

ITMO_FS 是一款强大的特征选择库,能够帮助机器学习模型选择最具有代表性的特征。在数据样本数量较少的情况下,过多的特征会增加模型复杂度,导致过度拟合,因此谨慎处理是非常重要的。这也是规范化模型所必需的。通常来说,更简单的模型(即更少的特征)更容易理解和解释。

ITMO_FS 算法被分为 6 个不同的类别,包括监督过滤器、无监督过滤器、包装器、混合、嵌入式和集成(尽管监督过滤器是主要关注的)。其中,“监督过滤器”算法是一个简单的示例,它根据特征与目标变量的相关性来选择特征。例如,“backward selection”算法逐个删除特征,然后确认这些特征如何影响模型的预测能力。

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

代码语言:javascript
复制
>>> 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

ITMO_FS是一个相对较新的库,因此它仍然有点不稳定,但我仍然建议尝试一下。

3、shap-hypetune

迄今为止,我们已经了解了一些用于特征选择和超参数调整的库,但是为什么不能同时使用这两者呢?这就是 shap-hypetune 库的作用。它的目的是利用 SHAP(SHapley Additive exPlanations)方法来同时选择最佳的特征和超参数。

SHAP 方法是一种博弈论方法,它可以解释任何机器学习模型的输出。它通过生成每个特征对模型最终预测的重要性来工作。这使得 SHAP 成为最广泛使用的解释模型的库之一。

与此同时,shap-hypertune 利用 SHAP 方法来选择最佳的特征和最佳的超参数。为什么要将它们合并起来呢?这是因为独立地选择特征和调整超参数可能会导致次优选择,而没有考虑它们之间的相互作用。同时执行这两项工作不仅考虑到了这一点,而且还可以节省编码时间。尽管可能需要更多的搜索空间,但是同时执行它们可以提高选择的准确性和效率。

搜索可以通过 3 种方式完成:网格搜索、随机搜索或贝叶斯搜索(另外,它可以并行化)。

但是,shap-hypertune 仅适用于梯度提升模型!

4、PyCaret

PyCaret 是一款非常出色的开源和低代码机器学习库,其能够自动执行整个机器学习工作流程。该库包含探索性数据分析、预处理、可解释性建模以及MLOps等功能。这些功能涵盖了整个机器学习流程,能够大大缩短开发人员的工作时间,并且提高了整个项目的效率。通过使用PyCaret,开发人员不再需要手动编写重复的代码,减少了出错的机会,让他们专注于核心业务。简而言之,PyCaret 是一款强大、易于使用的机器学习库,能够提高程序员的生产力,让他们更专注于创新和改进算法。

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

代码语言:javascript
复制
# 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()

优秀代码只需要几行,就能轻松尝试多个模型,并在主要分类指标上进行比较。

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

代码语言:javascript
复制
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 文件:

代码语言:javascript
复制
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是一个功能非常齐全的库,它涵盖了非常广泛的内容,但是在这篇文章中我们无法涵盖所有的内容。因此,我们建议你立即下载并开始使用PyCaret库,以便更好地了解它在实践中的能力。通过实际操作,你会发现PyCaret确实可以大大提升你的开发效率,使你更快地开发出高质量的机器学习模型。

5、floWeaver

FloWeaver 可以从流数据集中生成桑基图。如果你不知道什么是桑基图,这里有一个例子:

在展现转化漏斗、销售旅程或预算分配的数据时,这些图表非常有用(正如上面的例子所示)。可以采用以下格式输入源数据和目标数据及其对应的值:“源 x 目标 x 值”。而且,只要一行代码就可以轻松创建这些图表,极具具体性和直观性。

6、Gradio

如果你熟悉敏捷数据科学,你就知道拥有一个前端界面,让最终用户在项目开始时就能与数据进行交互是多么有帮助。虽然 Flask 是 Python 中最常用的前端界面工具,但对于初学者来说,Flask 可能不太友好,需要多个文件以及对 HTML、CSS 等知识的了解。

但是 Gradio 能够通过设置输入类型(比如文本、复选框)以及功能和输出来创建简单的界面。尽管它似乎不如 Flask 可以进行自定义,但它更加直观。

现在,Gradio 已经加入 Huggingface,意味着可以在互联网上永久托管 Gradio 模型,而且完全免费!

7、Terality

Terality是一个速度更快的类似于Pandas的库,理解它最佳的方式就是把它看作是“Pandas,但速度更快”。与Pandas相比,Terality的速度快多了。不过这并不意味着你需要完全替换Pandas,并重新学习如何使用它的df。实际上,Terality与Pandas具有完全相同的语法,他们甚至建议你使用“import Terality as pd”,并且可以像以前一样使用它编码。

Terality网站上有时会说它比Pandas快30倍,有时快10至100倍。另一个重要的优点是,Terality支持并行处理,并且不在本地运行,这意味着你不会再遇到内存错误。

那么它是如何运作的呢?一个很好的比喻是认为Terality使用和Pandas兼容的语法在本地进行编译,然后将计算操作提交到其后端平台Spark上进行处理。因此,计算不是在本地运行,而是在他们的平台上处理。

但如果你需要处理超过1TB的数据,那么就需要每月支付至少49美元的费用。对于测试工具和个人项目,1TB/月的限制可能已经足够,但如果使用在公司中,那么可能需要付费。

8、torch-handle

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

torchhandle是一个专门为PyTorch设计的辅助框架。它的作用在于将PyTorch繁琐和重复的训练代码抽象出来,使得数据科学家们可以专注于数据处理、模型构建和参数优化,而不是编写重复的训练循环代码。使用torchhandle,你可以让代码更加简洁易读,提高开发效率。

torchhandle通过对PyTorch训练和推理过程进行抽象和整理,仅需几行代码即可实现完整的深度学习管道。此外,它还可以生成完整的训练报告,并集成了tensorboard进行可视化操作,使得训练过程更加直观和可控。

代码语言:javascript
复制
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_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差不多了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据STUDIO 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 总的来说,尽管在互联网大厂里,拼多多和小红书占据了平均工作时长最长的位置,分别为62.4小时和57.2小时,但是华为、字节、快手等公司对于工作时长一直在不断进行优化。然而,在实现反内卷的目标方面,需要国家出台相应政策的支持。在互联网公司,想要真正贯彻不加班的政策,仍然面临着重重挑战。
  • 1、Optuna
  • 2、ITMO_FS
  • 3、shap-hypetune
  • 4、PyCaret
  • 5、floWeaver
  • 6、Gradio
  • 7、Terality
  • 8、torch-handle
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档