0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

新机器视觉 来源:今日头条 2022-12-22 11:03 次阅读

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

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

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

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

47c444b8-8136-11ed-8abf-dac502259ad0.png

2.Deep Lake

Deep Lake是一种数据集格式,提供简单的 API 以用于创建、存储和协作处理任何规模的 AI 数据集。这个库在 GitHub 上有超过 5k 星。480bd30a-8136-11ed-8abf-dac502259ad0.pngDeep 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 颗星。

4834c7b0-8136-11ed-8abf-dac502259ad0.png

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 studystudy.optimize(objective, n_trials=100) # Invoke opotimization of the objective function

4.pycm

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

48794bb0-8136-11ed-8abf-dac502259ad0.png

它可以计算多种常用的指标,包括准确率、召回率、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 星。

488c48f0-8136-11ed-8abf-dac502259ad0.png

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

import nannyml as nmlfrom 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 sizechunk size = 5000 # initialize, specify required data columns,, fit estimator and estimateestimator = 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 resultsfigure = estimated_performance.plot(kind='performance', metric='roc_auc', plot_reference=True)figure.show()

6.ColossalAI

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

48ae8492-8136-11ed-8abf-dac502259ad0.png

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

from colossalai.logging import get_dist_loggerfrom colossalai.trainer import Trainer, hooks # build components and initialize with colossaalai.initialize... # create a logger so that trainer can log on thhe consolelogger = get_dist_logger() # create a trainer objecttrainer = Trainer(    engine=engine,    logger=logger)

7.emcee

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

48fbb92e-8136-11ed-8abf-dac502259ad0.png

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

总结

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

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8406

    浏览量

    132558
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84627
  • GitHub
    +关注

    关注

    3

    文章

    468

    浏览量

    16427

原文标题:【推荐】7个强大实用的Python机器学习库!

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    月速成python+OpenCV图像处理

    OpenCV是一广受欢迎且极为流行的计算机视觉,它因其强大的功能、灵活性和开源特性而在开发者和研究者中备受青睐。学习OpenCV主要就是学习
    的头像 发表于 11-29 18:27 121次阅读
    一<b class='flag-5'>个</b>月速成<b class='flag-5'>python</b>+OpenCV图像处理

    如何使用Python构建LSTM神经网络模型

    : NumPy:用于数学运算。 TensorFlow:一开源机器学习,Keras是其高级API。 Keras:用于构建和训练深度学习模型
    的头像 发表于 11-13 10:10 320次阅读

    RISC-V如何支持不同的AI和机器学习框架和

    RISC-V如何支持不同的AI和机器学习框架和?还请坛友们多多指教一下。
    发表于 10-10 22:24

    如何帮助孩子高效学习Python:开源硬件实践是最优选择

    家长们常常担心孩子在学习Python时所面临的挑战,如复杂性、兴趣保持、学习进度和可用资源。对于希望有效教授孩子Python的家长而言,了解硬件的作用至关重要,因为结合硬件项目的
    的头像 发表于 09-06 09:49 305次阅读

    【「时间序列与机器学习」阅读体验】时间序列的信息提取

    重要环节,目标是从给定的时间序列数据中提取出有用的信息和特征,以支持后续的分析和预测任务。 特征工程(Feature Engineering)是将数据转换为更好地表示潜在问题的特征,从而提高机器学习
    发表于 08-17 21:12

    【《时间序列与机器学习》阅读体验】+ 时间序列的信息提取

    本人有些机器学习的基础,理解起来一点也不轻松,加油。 作者首先说明了时间序列的信息提取是时间序列分析的一重要环节,目标是从给定的时间序列数据中提取出有用的信息和特征,以支持后续的分析和预测任务,可以
    发表于 08-14 18:00

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的和框架以及强大的社区支持,使其成为了数据科学、
    的头像 发表于 08-01 15:27 1883次阅读

    Python在AI中的应用实例

    Python在人工智能(AI)领域的应用极为广泛且深入,从基础的数据处理、模型训练到高级的应用部署,Python都扮演着至关重要的角色。以下将详细探讨Python在AI中的几个关键应用实例,包括
    的头像 发表于 07-19 17:16 1057次阅读

    Python自动训练人工神经网络

    人工神经网络(ANN)是机器学习中一种重要的模型,它模仿了人脑神经元的工作方式,通过多层节点(神经元)之间的连接和权重调整来学习和解决问题。Python由于其
    的头像 发表于 07-19 11:54 346次阅读

    opencv-python和opencv一样吗

    不一样。OpenCV(Open Source Computer Vision Library)是一开源的计算机视觉和机器学习软件,它提供了大量的图像和视频处理功能。OpenCV-
    的头像 发表于 07-16 10:38 1160次阅读

    基于Python的深度学习人脸识别方法

    基于Python的深度学习人脸识别方法是一涉及多个技术领域的复杂话题,包括计算机视觉、深度学习、以及图像处理等。在这里,我将概述一基本的
    的头像 发表于 07-14 11:52 1249次阅读

    深度学习常用的Python

    深度学习作为人工智能的一重要分支,通过模拟人类大脑中的神经网络来解决复杂问题。Python作为一种流行的编程语言,凭借其简洁的语法和丰富的支持,成为了深度
    的头像 发表于 07-03 16:04 624次阅读

    如何使用Python进行神经网络编程

    神经网络简介 神经网络是一种受人脑启发的机器学习模型,由大量的节点(或称为“神经元”)组成,这些节点在网络中相互连接。每个节点可以接收输入,对输入进行加权求和,然后通过一激活函数产生输出
    的头像 发表于 07-02 09:58 399次阅读

    ESP32下如何加自定义Python

    我看官方有提供Micropython的bin文件,但我想根据自己外设扩充一下Python,这个应该从哪里入手? 之前做过RTT系统的python扩充,RTT有提供Micropyth
    发表于 06-18 06:27

    如何使用Python进行图像识别的自动学习自动训练?

    如何使用Python进行图像识别的自动学习自动训练? 使用Python进行图像识别的自动学习和自动训练需要掌握一些重要的概念和技术。在本文中,我们将介绍如何使用
    的头像 发表于 01-12 16:06 573次阅读