实用!7个强大的Python机器学习库!⛵
作者:韩信子@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个工具库都是非常有用的,对于机器学习工作者来说,它们可以大大提高工作效率,让你能够在简单的方式下编写复杂的代码。所以,如果你还没有了解这些工具库的话,不妨花一点时间来了解一下。
参考资料
推荐阅读
数据分析实战系列: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
实用!7个强大的Python机器学习库!⛵的更多相关文章
- [Python] 机器学习库资料汇总
声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...
- [resource]Python机器学习库
reference: http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块: ...
- 常用python机器学习库总结
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- Python 机器学习库 NumPy 教程
0 Numpy简单介绍 Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy ...
- Python机器学习库sklearn的安装
Python机器学习库sklearn的安装 scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib模块之上能够为用户提供各种机器学习算法接口 ...
- Python机器学习库scikit-learn实践
原文:http://blog.csdn.net/zouxy09/article/details/48903179 一.概述 机器学习算法在近几年大数据点燃的热火熏陶下已经变得被人所“熟知”,就算不懂得 ...
- Python机器学习库和深度学习库总结
我们在Github上的贡献者和提交者之中检查了用Python语言进行机器学习的开源项目,并挑选出最受欢迎和最活跃的项目. 1. Scikit-learn(重点推荐) www.github.com/sc ...
- 【机器学习】--Python机器学习库之Numpy
一.前述 NumPy(Numerical Python的缩写)是一个开源的Python科学计算库.使用NumPy,就可以很自然地使用数组和矩阵. NumPy包含很多实用的数学函数,涵盖线性代数运算.傅 ...
- python 机器学习库 —— featuretools(自动特征工程)
文档:https://docs.featuretools.com/#minute-quick-start 所谓自动特征工程,即是将人工特征工程的过程自动化.以 featuretools 为代表的自动特 ...
- python机器学习库
http://scikit-learn.org/stable/install.html
随机推荐
- [基础] BS/CS 区别 Http/Https 区别 中间件请求
BS和CS的区别: 1.BS结构:Browser-Server-从浏览器到服务器,浏览器打开的所有内容都属于BS(三大主流浏览器Safari.Chrome和Firefo) 2.CS结构:Cli ...
- bilibili弹幕爬虫
import random import requests import jieba import numpy as np from lxml import etree class SpiderBil ...
- Maximum Entropy Population-Based Training for Zero-Shot Human-AI Coordination
原文:https://www.cnblogs.com/Twobox/p/16791412.html 熵 熵:表述一个概率分布的不确定性.例如一个不倒翁和一个魔方抛到地上,看他们平稳后状态.很明显,魔方 ...
- NLP之基于Seq2Seq的单词翻译
Seq2Seq 目录 Seq2Seq 1.理论 1.1 基本概念 1.2 模型结构 1.2.1 Encoder 1.2.2 Decoder 1.3 特殊字符 2.实验 2.1 实验步骤 2.2 算法模 ...
- 《吐血整理》高级系列教程-吃透Fiddler抓包教程(30)-Fiddler如何抓取Android7.0以上的Https包-番外篇
1.简介 通过宏哥前边几篇文章的讲解和介绍想必大家都知道android7.0以上,有android的机制不在信任用户证书,导致https协议无法抓包.除非把证书装在系统信任的证书里,此时手机需要roo ...
- v-debounce-throttle是一个vue防抖节流指令
v-debounce-throttle是一个vue防抖节流指令 简介 v-debounce-throttle是一个vue防抖节流指令,控制单一事件的触发频率.其核心是拦截组件元素的v-on绑定事件,采 ...
- Ignite实战
1.概述 本篇博客将对Ignite的基础环境.集群快照.分布式计算.SQL查询与处理.机器学习等内容进行介绍. 2.内容 2.1 什么是Ignite? 在学习Ignite之前,我们先来了解一下什么是I ...
- Python基础指面向对象:2、动静态方法
面向对象 一.动静态方法 在类中定义的函数有多种特性 1.直接在类中定义函数 再类中直接定义函数,默认绑定给对象,类调用时有几个参数就要传几个参数,对象调用时该函数的第一个参数默认为对象 # 定义 ...
- JVM学习笔记——垃圾回收篇
JVM学习笔记--垃圾回收篇 在本系列内容中我们会对JVM做一个系统的学习,本片将会介绍JVM的垃圾回收部分 我们会分为以下几部分进行介绍: 判断垃圾回收对象 垃圾回收算法 分代垃圾回收 垃圾回收器 ...
- 使用LabVIEW实现基于pytorch的DeepLabv3图像语义分割
前言 今天我们一起来看一下如何使用LabVIEW实现语义分割. 一.什么是语义分割 图像语义分割(semantic segmentation),从字面意思上理解就是让计算机根据图像的语义来进行分割,例 ...