当前位置:

首页 > 编程开发 > Python库:提高数据科学工作效率的八大利器

Python库:提高数据科学工作效率的八大利器

1、OptunaOptuna是一个开源的超参数优化框架,它可以自动为机器学习模型找到最佳超参数。最基本的(也可能是众所周知的)替代方案是sklearn的GridSearchCV,它将尝试多种超参数组合并根据交叉验证选择最佳组合。GridSearchCV将在先前定义的空间内尝试组合。例如,对于随机森林分类器,可能想要测试几个不同的树的最大深度。GridSearchCV会提供每个超参数的所有可能值,并查看所有组合。Optuna会在定义的搜索空间中使用自己尝试的历史来确定接下来要尝试的值。它使用的方

本文目录

    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_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”开始:

    “SHAP(SHapley 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()

    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 和 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 可以从流数据集中生成桑基图。如果你不知道什么是桑基图,这里有一个例子:

    Python库:提高数据科学工作效率的八大利器

    在显示转化漏斗、营销旅程或预算分配的数据时,它们非常有用(上例)。入口数据应采用以下格式:“源 x 目标 x 值”,只需一行代码即可创建此类图(非常具体,但也非常直观)。

    6、Gradio

    如果你阅读过敏捷数据科学,就会知道拥有一个让最终用户从项目开始就与数据进行交互的前端界面是多么有帮助。一般情况下在Python中最常用是 Flask,但它对初学者不太友好,它需要多个文件和一些 html、css 等知识。

    Gradio 允许您通过设置输入类型(文本、复选框等)、功能和输出来创建简单的界面。尽管它似乎不如 Flask 可定制,但它更直观。

    由于 Gradio 现在已经加入 Huggingface,可以在互联网上永久托管 Gradio 模型,而且是免费的!

    7、Terality

    理解 Terality 的最佳方式是将其视为“Pandas ,但速度更快”。这并不意味着完全替换 pandas 并且必须重新学习如何使用df:Terality 与 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_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差不多了。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 数据科学 Python
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    Windows 安装 Python:从官方入口到虚拟环境的可复现实践
    Windows 安装 Python:从官方入口到虚拟环境的可复现实践

    面向后端开发者,基于 Python 官方文档说明如何在 Windows 上安装 Python、创建 venv 虚拟环境及使用 pip 管理依赖。包含可复制命令、验证方法及工具选择边界,避免常见配置误区。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。