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

    文章

    8126

    浏览量

    130570
  • python
    +关注

    关注

    51

    文章

    4677

    浏览量

    83468
  • GitHub
    +关注

    关注

    3

    文章

    457

    浏览量

    15924

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

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

收藏 人收藏

    评论

    相关推荐

    python 学习:在内网中 python-numpy 安装方法,升级pip3版本的指令

    指令格式如下:先下载numpy到C盘具体位置 手动安装指令如下: pip install c:\\\\users\\\\sesa738142
    发表于 04-22 17:18

    Python编程实用指南

    Python 学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用最强大的编程语言和工具,并且将体会到 Python 编程的快乐
    发表于 09-27 06:21

    不可错过!人工神经网络算法、PID算法、Python人工智能学习等资料包分享(附源代码)

    Python工具包,特别是在文本处理,科学计算,机器学习和数据挖掘领域,有很多很多优秀的Python工具包可供使用,所以作Pythoner,也是相当幸福的。最近流行一
    发表于 09-13 16:41

    学习Python的双重选择: 树莓派和行空板

    Python是一种流行并简单和易用的编程语言, 吸引了众多初学者和专业开发人员。许多人选择使用树莓派(Raspberry Pi)作为学习Python的工具,因为它体积小、价格实惠,并且提供了将编程
    的头像 发表于 09-08 13:53 339次阅读

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?

    机器学习有哪些算法?机器学习分类算法有哪些?机器学习预判有哪些算法?
    的头像 发表于 08-17 16:30 1400次阅读

    python数据挖掘与机器学习

    python数据挖掘与机器学习 Python是一个非常流行的编程语言,被广泛用于数据挖掘和机器学习
    的头像 发表于 08-17 16:29 888次阅读

    python机器学习概述

    是一种非常流行的编程语言,因为它具有非常强大的数据分析和科学计算库。Python可以被用来完成一系列的任务,包括机器学习、数据分析、图像处理、自然语言处理和深度
    的头像 发表于 08-17 16:11 767次阅读

    python编程能干什么 用python做一个简单的游戏

    Python在人工智能和机器学习领域具有广泛的应用。有诸多流行的库和框架,如TensorFlow、PyTorch和Scikit-learn,可用于构建和训练机器
    的头像 发表于 08-15 14:40 748次阅读
    <b class='flag-5'>python</b>编程能干什么 用<b class='flag-5'>python</b>做一个简单的游戏

    python和人工智能有什么关系

    机器学习是人工智能中的一个重要领域,其目标是从数据中自动捕捉模式和规律。Python提供了几个流行的机器学习框架,包括Scikit-lear
    的头像 发表于 08-13 10:38 1192次阅读

    python为什么适合人工智能

    Python是一种高级编程语言,设计时为了容易学习和使用。这意味着开发人员能够轻松入门,并能快速实现解决方案。这使Python成为了一种非常流行的编程语言。它的简单和易于学习的本质使得
    的头像 发表于 08-13 10:34 964次阅读

    如何使用Arm CMSIS-DSP实现经典机器学习

    通常,当开发人员谈论机器学习(ML)时,他们指的是神经网络(nn)。 神经网络的巨大优势在于,你不需要成为一领域专家,而且可以迅速找到一可行的解决方案。神经网络的缺点是它们通常需要
    发表于 08-02 07:12

    21句话入门机器学习

    Python,略知NumPy,认真读完这21句话,逐行敲完示例代码,就可以由此进入自由的王国。作者|天元浪子责编|欧阳姝黎出品|CSDN博客01机器学习有四种用途
    的头像 发表于 07-31 23:44 419次阅读
    21句话入门<b class='flag-5'>机器</b><b class='flag-5'>学习</b>

    iMX8M Plus将机器学习添加到Yocto精简固件映像?

    我想知道conf/local.conf有什么必要的修改,以便添加机器学习和其他东西,以便在板上部署 AI 功能而不需要 bitbaking imx-image-full,请问?换句话说,我希望固件
    发表于 06-07 06:16

    20个必知的自动化机器学习库(Python

    为了进行部署,企业需要有一个经验丰富的数据科学家团队,他们期望高薪。即使企业确实拥有优秀的团队,通常也需要更多的经验而不是AI知识来决定哪种模型最适合企业。机器学习在各种应用中的成功导致对机器
    的头像 发表于 05-26 15:04 687次阅读
    20个必知的自动化<b class='flag-5'>机器</b><b class='flag-5'>学习</b>库(<b class='flag-5'>Python</b>)

    Python机器人上位机

    Python写GUI的插件比较多,常用的有Tkinter、pyqt5,本将使用pyqt5写机器人的上位机。Tkinter 是 Python的标准 GUI 库,是Python推荐使用的界
    发表于 05-09 11:10 0次下载
    <b class='flag-5'>Python</b>写<b class='flag-5'>机器</b>人上位机