• 7个数据科学Python库将为您节省大量时间


    7个数据科学Python库将为您节省大量时间

    在进行数据科学时,您可能会花费大量时间编写代码并等待计算机运行某些操作。我挑选了一些可以在这两种情况下节省您时间的Python库。即使您只将其中一个库纳入您的工具库,您仍然可以在下次项目工作时节省宝贵的时间。

    Optuna

    Optuna是一个开源的超参数优化框架。这意味着它可以帮助您找到机器学习模型的最佳超参数。

    最基本(也可能是最知名的)的替代方案是sklearn的GridSearchCV,它将尝试多个超参数组合并根据交叉验证选择最佳超参数。

    GridSearchCV将在您之前定义的空间内尝试组合。例如,对于随机森林分类器,您可能希望测试不同的估计器数量和树的最大深度的值。

    因此,您将为每个这些超参数提供所有可能的值,然后GridSearchCV将查看所有组合。

    与此不同,Optuna首先建议一个搜索空间,然后开始搜索。然后,它使用自己的尝试历史来确定要尝试的值。它用于此的方法是一种称为“树状帕森估计器”的贝叶斯优化算法。

    这种不同的方法意味着,它不是简单地尝试任意值,而是在尝试之前寻找最佳候选项,这节省了本应用于尝试不太有前途的替代项的时间(并且可能还会产生更好的结果)。

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

    ITMO_FS

    ITMO_FS是一个特征选择库,它帮助您为您的ML模型选择特征。观测次数越少,您就越需要谨慎使用过多的特征,以避免过度拟合。

    通过“谨慎”,我是指您应该对模型进行正则化。通常来说,拥有一个更简单的模型(更少的特征)更好,因为它更容易理解和解释。

    ITMO_FS可以帮助您完成这一点,其算法分为6个不同的类别:有监督的过滤器、无监督的过滤器、包装器、混合、嵌入和集成(尽管它主要侧重于有监督的过滤器)。

    “有监督过滤器”算法的一个简单示例是根据它们与目标变量的相关性来选择特征。一个众所周知的“包装器”的示例是逆序选择,您可以尝试逐个删除特征,以查看它如何影响模型的预测能力。

    以下是如何使用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
    • 1

    ITMO_FS是一个相对较新的库,因此它仍然有点不稳定,其文档可能需要改进,但我仍建议您尝试一下。

    shap-hypetune

    到目前为止,我们已经看到了用于特征选择和超参数调整的库,但为什么不同时进行这两项操作呢?

    这就是shap-hypetune的承诺。首先,让我们了解一下“SHAP”是什么:

    “SHAP(SHapley Additive exPlanations)是一种解释任何机器学习模型输出的博弈论方法。”

    SHAP是用于解释模型的输出最广泛使用的库之一,它通过提供每个特征对模型最终预测的重要性来工作。

    shap-hypertune则从该方法中受益,它可以在选择最佳特征的同时选择最佳超参数。为什么要这样做?

    独立选择特征和调整超参数可能会导致次优选择,因为您没有考虑它们之间的交互作用。

    同时进行这两项操作不仅会考虑到这一点,还会节省一些编码时间(尽管可能会增加运行时间,因为搜索空间增加)。

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

    但需要注意的一点是,shap-hypertune仅适用于梯度提升模型!

    PyCaret

    PyCaret是一个开源的、低代码的机器学习库,可以自动化机器学习工作流程。它包括探索性数据分析、预处理、建模(包括可解释性)和MLOps。 让我们从他们的网站上的一些实际示例来看看它的工作原理:

    # 加载数据集
    from pycaret.datasets import get_data
    diabetes = get_data('diabetes')
    # 初始化设置
    from pycaret.classification import *
    clf1 = setup(data = diabetes, target = 'Class variable')
    # 比较模型
    best = compare_models()
    • 1

    在几行代码中,您尝试了多个模型并比较了它们在主要分类指标上的表现。

    alt

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

    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)
    • 1

    最后,您可以轻松创建一个用于您的模型的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')
    • 1

    它几乎没有比这更简单的了,对吧?

    它是如此完整,以至于很难在这里覆盖所有内容,所以我可能会在不久的将来专门写一篇文章来介绍它,但我建议您现在下载它并开始使用它,以了解一些实际应用中的功能。

    floWeaver

    floWeaver从流数据集生成桑基图。如果您不知道什么是桑基图,这里有一个示例:

    alt

    当显示与转化漏斗、营销路径或公司或政府的预算分配相关的数据时,它们可以非常有帮助。

    入口数据应具有以下格式:“源x目标x值”,创建此类型的绘图只需要一行代码(这相当具体,但也非常直观)。

    Gradio

    如果您已经阅读了《敏捷数据科学》,您就知道拥有一个前端界面,让最终用户从项目的开始就与数据进行交互是多么有帮助。

    即使对于您自己,它也有助于您熟悉数据并发现任何不一致之处。用于此目的的最常用工具之一是Flask,但它对初学者不太友好,需要多个文件以及对html、css等的一些知识。

    Gradio允许您通过设置输入类型(文本、复选框等)、函数和输出来创建简单的界面。虽然它似乎比Flask可定制性更低,但它更加直观。

    此外,由于Gradio现在已经加入了Huggingface,他们提供了将您的Gradio模型永久托管在互联网上的基础设施,而且是免费的!

    Terality

    理解Terality的最佳方法是将其视为“Pandas,但更快”。

    这并不意味着完全替代Pandas并需要重新学习如何使用数据帧:Terality的语法与Pandas完全相同。

    实际上,他们甚至建议您“import Terality as pd”,并继续以您习惯的方式编码。

    它有多快?他们的网站有时说它比Pandas快30倍,有时说是10-100倍。

    另一个重要的特点是Terality支持并行处理,不在本地运行,这意味着您的8GB RAM笔记本电脑将不再出现内存错误!

    那它在幕后是如何工作的呢?理解Terality的一个好比喻是,他们在其基础设施上运行一个Spark后端,该后端是一个Pandas前端的一部分,您在本地使用它。

    基本上,与其在您的计算机上运行事务,您将使用他们的计算机,在完全的无服务器方式下(不需要设置基础设施)。

    本文由 mdnice 多平台发布

  • 相关阅读:
    什么是DDoS攻击?企业服务器是否需要DDoS防御
    Python 实现自动化测试 dubbo 协议接口
    @Accessors 注解详解
    51单片机的智能浇花系统【含proteus仿真+程序+报告+原理图】
    【无标题】
    自然语言处理(NLP)—— 神经网络自然语言处理(2)实际应用
    java计算机毕业设计网上鲜花店网站源码+数据库+lw文档+系统+部署
    vue之数据驱动
    Windows安装MongoDB
    网络安全(黑客)从零开始的自学指南(第一章)
  • 原文地址:https://blog.csdn.net/qq_40523298/article/details/132744346