实用!7个强大的Python机器学习库!⛵

news2025/2/5 4:29:17

💡 作者:韩信子@ShowMeAI
📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41
📘 本文地址:https://www.showmeai.tech/article-detail/412
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏ShowMeAI查看更多精彩内容

💡 前言

我们总说“不要重复发明轮子”,python中的第3方工具库就是最好的例子。借助它们,我们可以用简单的方式编写复杂且耗时的代码。在本篇内容中,ShowMeAI给大家整理了 7 个有用的 Python 库,如果大家从事机器学习工作,一定要来一起了解一下。

💡 工具库介绍

💦 1.Prophet

📘Prophet 是 Facebook 开源的时间序列预测工具库,基于 Stan 框架,可以自动检测时间序列中的趋势、周期性和节假日效应,并根据这些信息进行预测。这个库在 GitHub 上有超过 15k 星。

Prophet 通常用于预测未来几个月、几年或几十年的时间序列数据,例如销售额、市场份额等。它提供了 Python 和 R 两个版本,可以跨平台使用,支持 CPU 和 GPU 的并行运算。Prophet 的输入数据格式要求是一个包含时间戳和目标值的数据框,并支持给定时间范围、预测期限和宽限期等参数进行预测。Prophet 对缺失数据和趋势变化很稳健,通常可以很好地处理异常值。

# Python
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

💦 2.Deep Lake

📘Deep Lake 是一种数据集格式,提供简单的 API 以用于创建、存储和协作处理任何规模的 AI 数据集。这个库在 GitHub 上有超过 5k 星。

Deep Lake 的数据布局可以在大规模训练模型的同时,实现数据的快速转换和流式传输。谷歌、Waymo、红十字会、牛津大学等都在使用 Deep Lake。

for epoch in range(2):
    running_loss = 0.0
    for i, data in enumerate(deeplake_loader):
    images, labels = data['images'], data['labels']

    # zero the parameter gradients
    optimizer.zero_grad()

    # forward + backward + optimize
    outputs = net(images)
    loss = criterion(outputs, labels.reshape(-1))
    loss.backward()
    optimizer.step()

    # print statistics
    running_loss += loss.item()
    if i % 100 == 99: #print every 100 mini-batches
        print('[%d, %5d] loss: %.3f' %
        (epoch + 1, i + 1, running_loss / 100))
        running_loss = 0.0

💦 3.Optuna

📘Optuna 是一个自动机器学习超参数调优工具,可以帮助用户通过使用各种规则自动调整机器学习模型的超参数,以提高模型的性能。这个库在 GitHub 上拥有超过 7k 颗星。

Optuna 使用了贝叶斯优化算法来自动调整超参数,并使用基于树的方法来探索参数空间。这使得 Optuna 能够在训练机器学习模型时自动进行超参数调整,从而提高模型的性能。Optuna 可以与各种机器学习框架集成使用,包括 TensorFlow、PyTorch、XGBoost 等。它还支持多种优化目标,包括最小化损失函数、最大化准确率等。

总的来说,Optuna是一个强大的工具,可以帮助用户提高机器学习模型的性能,提高模型的准确率。它的易用性和可扩展性使它成为机器学习工作流中的一个重要工具。

import ...

# Define an objective function to be minimized.
def objective(trial):

    # Invoke suggest methods of a Trial object to generate hyperparameters

    regressor_name = trial.suggest_categorical('regressor',['SVR', 'RandomForest'])
    if regressor_name = 'SVR':
        svr_c = trial.suggest_float('svr_c', 1e-10, 1e10, log=True)
        regressor_obj = sklearn.svm.SVR(C=svr_c)
    else:
        rf_max_depth = trial.suggest_int('rf_max_depth', 2, 332)
        regressor_obj = sklearn.ensemble.RandomForestRegressor(max_depth=rf_max_depth)

    X, y = sklearn.datasets.fetch_california_housing(return_X_y=True)
    X_train, X_val, y_train, y_val = sklearn.model_selection.train_test_split(X, y, random_state=0)

    regressor_obj.fit(X_train, y_train) y_pred = regressor_obj.predict(X_val)

    error = sklearn.metrics.mean_squared_error(y_val, y_pred)

    return error # An objective value linked with the Trial object.

study = optuna.create_study() # Create a neW study
study.optimize(objective, n_trials=100) # Invoke opotimization of the objective function

💦 4.pycm

📘pycm 是一个用于计算二分类和多分类指标的 Python 库。这个库在 GitHub 上有超过 1k 星。

它可以计算多种常用的指标,包括准确率、召回率、F1值、混淆矩阵等。此外,pycm 还提供了一些额外的功能,例如可视化混淆矩阵、评估模型性能的指标来源差异等。pycm是一个非常实用的库,可以帮助快速评估模型的性能。

from pycm import *
y_actu = [2, 0, 2, 2, 0, 1, 1, 2, 2, 0, 1, 2] 
y_pred = [0, 0, 2, 1, 0, 2, 1, 0, 2, 2, 2, 2]

cm = ConfusionMatrix(actual_vector=y_actu, predict_vector=y_pred)

cm.classes

cm.print_matrix() 

cm.print_normalized_matrix()

💦 5.NannyML

📘NannyML 是一个开源的 Python 库,允许估算部署后的模型性能(而无需访问目标),检测数据漂移,并智能地将数据漂移警报链接回模型性能的变化。这个库在 GitHub 上有超过 1k 星。

为数据科学家设计的 NannyML 具有易于使用的交互式可视化界面,目前支持所有表格式的用例(tabular use cases)、分类(classification)和回归(regression)。NannyML 的核心贡献者研发了多种用于估算模型性能的新算法:基于信心的性能估算(CBPE)与直接损失估算(DLE)等。NannyML 通过构建“性能监控+部署后数据科学”的闭环,使数据科学家能够快速理解并自动检测静默模型故障。通过使用 NannyML,数据科学家最终可以保持对他们部署的机器学习模型的完全可见性和信任。

import nannyml as nml
from IPython.display import display

# Load synthetic data

reference, analysis, analysis_target = nml.load_synthnetic_binary_classification_dataset()
display(reference.head())
display(analysis.head())

# Choose a chunker or set a chunk size
chunk size = 5000

# initialize, specify required data columns,, fit estimator and estimate
estimator = nml.CBPE(
    y_pred_proba='y_pred_proba',
    y_pred='y_pred',
    y_true='work_home_actual',
    metrics=['roc_auc'],
    chunk_size=chunk_size,
    problem_type='classification_binary',
)
estimator = estimator.fit(reference)
estimated_performance = estimator.estimate(analysis)

# Show results
figure = estimated_performance.plot(kind='performance', metric='roc_auc', plot_reference=True)
figure.show()

💦 6.ColossalAI

📘ColossalAI 是一个开源机器学习工具库,用于构建和部署高质量的深度学习模型。这个库在 GitHub 上有超过 6.5k 星。

ColossalAI 提供了一系列预定义的模型和模型基础架构,可用于快速构建和训练模型。它还提供了一系列工具,用于模型评估,调优和可视化,以确保模型的高质量和准确性。此外,ColossalAI 还支持部署模型,使其能够通过各种不同的接口与其他系统集成。ColossalAI 的优势在于它易于使用,可以为数据科学家和机器学习工程师提供快速和有效的方法来构建和部署高质量的大型模型。

from colossalai.logging import get_dist_logger
from colossalai.trainer import Trainer, hooks

# build components and initialize with colossaalai.initialize
...

# create a logger so that trainer can log on thhe console
logger = get_dist_logger()

# create a trainer object
trainer = Trainer(
    engine=engine,
    logger=logger
)

💦 7.emcee

📘emcee 是一个开源的 Python 库,用于使用 Markov chain Monte Carlo(MCMC)方法进行模型拟合和参数估计。这个库在 GitHub 上有超过 1k 星。

emcee是面向对象的,并且具有用于诊断和调试拟合过程的许多工具。它使用了一种叫做"决策树结构链"的方法,可以并行化拟合过程,提高拟合效率。emcee 非常适合处理复杂的非线性模型,并且可以轻松扩展到大型数据集。它也可以轻松与其他 Python 库集成,如 NumPy、SciPy和Matplotlib。

import numpy as np
import emcee

def log_prob(x, ivar):
    return -0.5 * np.sum(ivar * x ** 2) 

ndim, nwalkers = 5, 100

ivar = 1./np.random.rand(ndim)
p0 = np.random.randn(nwalkers, ndim)

sampler = emcee.EnsembleSampler(nwalkers, ndim, log_prob, args=[ivar])
sampler.run_mcmc(p0, 10000)

💡 总结

以上就是ShowMeAI给大家做的工具库介绍,这7个工具库都是非常有用的,对于机器学习工作者来说,它们可以大大提高工作效率,让你能够在简单的方式下编写复杂的代码。所以,如果你还没有了解这些工具库的话,不妨花一点时间来了解一下。

参考资料

  • 📘 Prophet
  • 📘 Deep Lake
  • 📘 Optuna
  • 📘 pycm
  • 📘 NannyML
  • 📘 ColossalAI
  • 📘 emcee

推荐阅读

🌍 数据分析实战系列:https://www.showmeai.tech/tutorials/40
🌍 机器学习数据分析实战系列:https://www.showmeai.tech/tutorials/41
🌍 深度学习数据分析实战系列:https://www.showmeai.tech/tutorials/42
🌍 TensorFlow数据分析实战系列:https://www.showmeai.tech/tutorials/43
🌍 PyTorch数据分析实战系列:https://www.showmeai.tech/tutorials/44
🌍 NLP实战数据分析实战系列:https://www.showmeai.tech/tutorials/45
🌍 CV实战数据分析实战系列:https://www.showmeai.tech/tutorials/46
🌍 AI 面试题库系列:https://www.showmeai.tech/tutorials/48

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

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

相关文章

如何借助扬尘视频监测系统开展扬尘污染防控工作?

一、方案背景 目前,跟随国家快速发展的步伐,城市化建设也在飞速发展,各种建设工程遍地开花。如何更好抵管理施工扬尘,杜绝各种违规及不文明现象,一直是施工企业、政府管理部门关注的焦点。 二、系统介绍 环境扬尘视频…

手把手教你一套完善且高效的k8s离线部署方案

作者:郝建伟 背景 面对更多项目现场交付,偶而会遇到客户环境不具备公网条件,完全内网部署,这就需要有一套完善且高效的离线部署方案。 系统资源 编号主机名称IP资源类型CPU内存磁盘01k8s-master110.132.10.91CentOS-74c8g40g0…

SkeyeVSS储备地块可视化管理信息系统 助力土地批后全程监管解决方案

一、方案背景 近年来,储备地块经常遭遇倾倒渣土、隐蔽性私搭乱建等违法行为的侵害,在违法行为发生之后又面临追责难度大、效率低的问题,因此可视化监管系统的建设将有效地解决单纯靠人力巡查、巡查时间长、巡查效率低以及发现侵害行为后追责…

阿里云轻量服务器--Docker--Mqtt(eclipse-mosquitto)安装

1 获取镜像: docker pull eclipse-mosquitto:1.6.14查看获取的镜像: docker images 2 安装: 2.1 新建日志和数据目录: # 配置文件存放 mkdir -p /root/mosquitto/config # 数据文件存放 mkdir -p /root/mosquitto/data # 日志文…

安全智能分析技术 神经网络架构搜索

神经网络架构搜索 定义内涵 神经网络架构搜索是为给定数据集自动找到一个或多个架构的任务,这些架构将为给定 的数据集生成具有良好结果的模型,其本质是在高维空间的最优参数搜索问题。 技术背景 深度学习模型的使用越来越大众化,在很多行…

论多线程之中断篇

线程中断一. 启动线程的方式二. 安全中断三. 线程的补充知识3.1 线程常用方法和线程的状态:3.2 线程的优先级概念:一. 启动线程的方式 新启线程的方式 继承Thread类实现Runnable接口,实际上也是通过Thread类来进行线程的操作的 package cn.…

嵌入式:数据处理指令详解

文章目录数据处理指令的特点数据处理指令的汇编格式数据处理指令-指令表(1)ADD、ADC、SUB、SBC、RSB和RSC(2)AND、ORR、EOR和BIC(3)MOV和MVN(4)CMP和CMN(5&am…

如何下载及安装BIGEMAP GIS Office

如何下载及安装BIGEMAP GIS Office 发布时间:2018-01-17 版权: 本产品支持主流winodws操作系统(xp sp3,vista,windows 7,windows 8及windows 10 11), 可通过访问Bigemap官网(BIGEMAP-卫星地图_高清卫星地图制图软件_…

791068-69-4,肾素的FRET底物

FRET substrate for renin. excitation at 340 nm, emission at 490 nm.肾素的FRET底物。激发波长为340 nm,发射波长为490 nm。 编号: 182722中文名称: Renin Substrate 1英文名: Renin Substrate 1CAS号: 791068-69-4单字母: H2N-R-E(Edans)-IHPFHLVIHT-K(Dabcyl)-…

PDF如何加密码保护?分享PDF加密的简单方法

PDF 通常是只读的,但如果收件人有特定的编辑软件,它们仍然可以修改,因此当您发送或共享 PDF 文档时,您可能希望使用密码对其进行保护。这样,未经您的许可,任何人都无法读取文件。 如何使用密码保护 pdf 文档…

什么是SD-WAN,它如何改变传统网络?

近年来,网络的构建、管理和运行方式发生了重大变化。许多 IT 管理员现在正在用更高级的网络概念和策略取代传统的网络组件和传统技术。例如,他们越来越依赖网络容器化、自动化、软件定义网络 (SDN) 和云计算等概念来简化网络。 这…

网络安全和信息化条例

神经网络架构搜索 定义内涵 神经网络架构搜索是为给定数据集自动找到一个或多个架构的任务,这些架构将为给定 的数据集生成具有良好结果的模型,其本质是在高维空间的最优参数搜索问题。 技术背景 深度学习模型的使用越来越大众化,在很多行…

数据处理指令

目录 一、指令 1.1 数据处理指令:数学运算、逻辑运算 1.1.1数据搬移指令 1.1.2机器码 1.1.3立即数 1.1.4数据运算指令基本格式 1.1.5加法指令 1.1.6减法指令、逆向减法指令、乘法指令 1.1.7位运算(逻辑运算) 1.1.8格式扩展 1.1.9数据运算指令对条…

面试官:Spring Bean的生命周期,你知道吗?

小熊学Java网站:https://javaxiaobear.gitee.io/,每周持续更新干货,建议收藏! bean 的生命周期从调用 beanFactory 的 getBean 开始,到这个 bean 被销毁,可以总结为以下七个阶段: 处理名称&…

Aosp系统编译定制系统签名

商业化产品,如果使用默认的签名,一是不安全,而是显得没啥技术。就连谷歌官方也说了,不建议使用testkey作为最终发布版的key,因此,定制系统签名就派上用场了。 具体使用方法谷歌给了一个大致的说法,我们可以在aosp的自述文件中找到,位置位于build\target\product\secur…

建议收藏:数字后端笔试题,含解析

能力归能力,面试归面试,你永远不会知道面试官抛出来的会是什么样的问题。 经历了无数的笔试面试之后,发现数字IC的笔试面试还是有很对共通之处和规律可循的。 之前芯博士为大家分享了一些数字IC面试题,有不少小伙伴私信我&#…

医药企业数字化转型加剧安全风险,“三个关键举措”筑牢数据安全基石

今天,越来越多的医药企业正在探索和寻求数字化手段,赋能“研、产、供、销”各流程,实现生产效率提升。但在数字化过程中,数据安全相较以往也更加严峻,数据泄露频发,形势堪忧。《2021数据泄露成本报告》中&a…

微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.4 Nacos如何避免并发读写冲突问题?

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务面试篇 文章目录微服务框架微服务面试篇54 微服务篇54.4 Nacos如何避免并发读写冲突问题?54.4.1 Nacos 服务端源码54 微服…

leetcode 324场周赛

第三题 2508. 添加边使所有节点度数都为偶数 连接一条边,一定会让两个点的奇偶性改变。最多连接两条边,最多有四个点的奇偶性改变。所以超过了四个点为奇数点,就不可能了。 并且,由于一次改变两个,奇数点的个数一定是…

[附源码]Nodejs计算机毕业设计酒店管理系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…