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

news2024/9/27 17:37:46

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

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()

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

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)

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

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

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

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 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/985113.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭示OLED透明屏数据:探索未来显示技术的潜力

OLED透明屏作为一项颇具吸引力的显示技术,以其独特的特点和卓越的画质在市场上引起了广泛关注。 在这篇文章中,尼伽将和大家一起深入探索OLED透明屏的数据,通过具体的市场趋势分析、技术指标解析、应用领域探讨和未来前景展望,为…

【C++基础】实现日期类

​👻内容专栏: C/C编程 🐨本文概括: C实现日期类。 🐼本文作者: 阿四啊 🐸发布时间:2023.9.7 对于类的成员函数的声明和定义,我们在类和对象上讲到过,需要进行…

mac 查看端口占用

sudo lsof -i tcp:port # 示例 sudo lsof -i tcp:8080 杀死进程 sudo kill -9 PID # 示例 sudo kill -9 8080

“搞事情”?OpenAl将于11月召开其首届开发者大会

摘要:OpenAI也要召开它的第一届开发者大会了。这次活动,或许标志着OpenAI向其下一阶段的商业开发迈出了关键一步。 昨天,OpenAI宣布将于11月6日举办其首次开发者大会。在这场名为“OpenAI DevDay”的活动中,OpenAI的技术人员将进行…

欧科云链与HashKey Exchange达成合作,助力香港虚拟资产合规化

继8月10日 欧科云链 与 华为云 达成合作之后, 今天,欧科云链 又与 Hashkey Exchange 共同宣布正式达成合作! 这次与Hashkey达成合作,双方又将在Web3行业中谱写怎样的故事? 9月6日,欧科云链控股有限公司&…

2023 年高教社杯全国大学生数学建模竞赛题目 C 题 蔬菜类商品的自动定价与补货决策

C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需求情况每天进…

生物通路数据库收录1600+整合的经典通路

生物通路数据库为科学家提供了关于生物通路的大量信息和资源,特别是在数据整合、信息检索、数据可视化分析、数据交互、生物学研究等方面,积极推动了生物学研究和科学的发展。 世界各地正在创建各种类型的通路数据库,每个数据库都反映了其创…

快递批量查询高手必备的实用工具

在网购日益普及的今天,我们经常需要查询快递的物流信息。但是,传统的查询方式一个一个地输入快递单号,不仅费时费力,还容易出错。有没有一种方法可以批量查询多个快递单号呢?答案是肯定的,今天我们就来介绍…

2140. 解决智力问题;1401. 圆和矩形是否有重叠;901. 股票价格跨度

2140. 解决智力问题 核心思想:动态规划。dp[i]表示解决i-n-1的问题所能获得的最高分数,注意需要倒叙遍历,因为i的状态由后面的状态转移过来的。 1401. 圆和矩形是否有重叠 核心思想:分情况讨论,圆心情况。借用别人一张图说明。 …

JWT-Token升级方案

1. 介绍 JWT是JSON Web Token的缩写,即JSON Web令牌,是一种自包含令牌。 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资…

ATFX汇市:美联储褐皮书透露就业市场新动向,美元指数中期多头趋势延续

ATFX汇市:今日2:00,美联储发布褐皮书,关于就业市场,其中提到:全国就业增长乏力,大多数地区的劳动力成本压力增长加剧,企业预计工资增长将在短期内普遍放缓。从7月、8月的非农就业报告当中&#…

数据结构和算法(2):向量

抽象数据类型 数组到向量 C/C 中,数组A[]中的元素与[0,n)内的编号一一对应,A[0],A[1],...,A[n-1];反之,每个元素均由(非负)编号唯一指代,并可直接访问A[i] 的物理地址 Ai s,s 为单…

vue-elementPlus自动按需导入和主题定制

elementPlus自动按需导入 装包 -> 配置 1. 装包(主包和两个插件包) $ npm install element-plus --save npm install -D unplugin-vue-components unplugin-auto-import 2. 配置 在vite.config.js文件中配置,配置完重启(n…

SM5202 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器

简介: SM5202 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器,并带有锂电池正负极反接保护功能,可以保护芯片和用户安全。由于采用了内部 PMOSFET 架构,加上防倒充电路,所以不需要外部检测电阻和隔离二极管…

Java之包装类的算法小题的练习

算法小题 练习一: 需求: 键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。 代码示例: public class Test1 {public static void main(String[] args) {/*键盘录入一些1~10日之间的整数&…

产业大数据应用:洞察区域产业实况,把握区域经济脉搏

​ 随着新一代信息技术的崛起,我们进入了大数据时代。在这个时代,数据作为基本生产要素不仅改变着我们的日常生活,更是在区域产业经济发展中扮演着重要角色,它赋予了政府、企业和投资者敏锐的洞察力。 一、摸清区域经济现状 基于…

智慧公厕如何实现系统管理、运行数据、业务流程的高度耦合

随着城市发展和人口增长,公共厕所成为城市更新与发展的重要环节。然而,传统的公共厕所管理方式面临诸多问题,如运营成本高、环境污染、人员管理等。为了解决这些问题,智慧公厕应运而生。智慧公厕是指利用现代科技手段,…

RPC接口测试-两种方法(Jmeter和代码)

相信很多同学在测试RPC接口时会遇到很多困难,博主前段时间在测试时也一样,算是提前踩坑啦,下面就来介绍一下测试RPC接口的方法 1.什么是RPC接口 RPC(Remote Procedure Call)是一种通信协议和模式,用于在分…

Linux之权限

目录 一、shell运行原理 二、权限 1、对人操作 2、对角色和文件操作 修改权限(改属性): ①ugo- ②二进制数的表示 修改权限(改人): 三、权限的相关问题 1、目录的权限 2、umask 3、粘滞位 一、s…