kkday是哪里做的网站,哪些网站可以做自媒体,网站开发用户需求说明书,wordpress文章图片大小本文来源公众号“算法金”#xff0c;仅用于学术分享#xff0c;侵权删#xff0c;干货满满。
原文链接#xff1a;10 大必知的自动化机器学习库#xff08;Python#xff09;
一、入门级自动化机器学习库
1.1 Auto-Sklearn
简介#xff1a; Auto-Sklearn 是一个自动…本文来源公众号“算法金”仅用于学术分享侵权删干货满满。
原文链接10 大必知的自动化机器学习库Python
一、入门级自动化机器学习库
1.1 Auto-Sklearn
简介 Auto-Sklearn 是一个自动机器学习库基于 Python 的 scikit-learn 接口。它主要用于自动化机器学习的常见过程特别是算法选择和超参数调整通过元学习和贝叶斯优化来提高模型性能。
主要功能 自动化算法选择自动选择最适合数据的机器学习算法。 超参数自动调整使用贝叶斯优化技术找到最优的超参数配置。 并行计算支持多核处理加快模型训练速度。 模型集成自动集成多个模型以提高预测准确率。
应用实例 下面是一个使用 Auto-Sklearn 自动化分类任务的简单示例。我们将使用经典的鸢尾花数据集。
import autosklearn.classification as auto_cls
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 加载数据
X, y load_iris(return_X_yTrue)
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 创建一个自动化分类器
automl_classifier auto_cls.AutoSklearnClassifier(time_left_for_this_task120, per_run_time_limit30)# 训练模型
automl_classifier.fit(X_train, y_train)# 预测测试数据
y_pred automl_classifier.predict(X_test)# 计算准确率
accuracy accuracy_score(y_test, y_pred)
print(f模型准确率: {accuracy:.2f})
1.2 TPOT
简介 TPOTTree-based Pipeline Optimization Tool是一个利用遗传算法自动化设计机器学习管道的Python库。它自动化地搜索预处理步骤、模型和参数配置的最佳组合旨在发现性能最优的机器学习管道。
主要功能 自动化管道构建自动探索数据预处理、特征选择、模型选择和超参数调整的最佳组合。 遗传算法优化使用遗传算法来优化机器学习的整体工作流。 并行计算支持多进程加速搜索过程。 易于集成可以与 scikit-learn 无缝集成方便使用已有的数据处理和评估方法。
应用实例 以下是使用 TPOT 对波士顿房价数据集进行回归分析的示例。这个例子展示了如何利用 TPOT 自动化搜索最优的机器学习管道。
from tpot import TPOTRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 加载数据集
data load_boston()
X_train, X_test, y_train, y_test train_test_split(data.data, data.target, test_size0.25, random_state42)# 创建一个 TPOT 回归器设置最大的管道评估数量为 100世代数为 5
tpot TPOTRegressor(generations5, population_size100, verbosity2, random_state42)# 训练模型
tpot.fit(X_train, y_train)# 预测测试集
y_pred tpot.predict(X_test)# 计算 MSE
mse mean_squared_error(y_test, y_pred)
print(f测试集的均方误差为: {mse:.2f})# 导出最佳模型的 Python 代码
tpot.export(best_pipeline.py)
1.3 Auto-Keras
简介 Auto-Keras 是一个开源的自动机器学习库建立在 Keras 框架之上。它主要设计用于自动化搜索最优的深度学习模型结构和超参数从而简化了构建高效深度学习模型的过程。
主要功能 神经架构搜索NAS自动寻找最适合特定数据集的网络结构。 超参数优化自动调整网络的超参数如学习率、层数、单元数等。 模型压缩提供模型压缩工具以减小模型大小和提高效率。 简易接口提供简单的 API用户只需几行代码即可启动模型搜索和训练。
应用实例 以下是使用 Auto-Keras 进行图像分类任务的示例。此示例使用 CIFAR-10 数据集展示了如何自动搜索适合该任务的模型结构。
import autokeras as ak
from keras.datasets import cifar10# 加载数据
(x_train, y_train), (x_test, y_test) cifar10.load_data()# 创建一个图像分类器
clf ak.ImageClassifier(max_trials10) # 最大尝试次数设为 10# 搜索模型
clf.fit(x_train, y_train, epochs10)# 评估模型
accuracy clf.evaluate(x_test, y_test)
print(f测试准确率: {accuracy[1]:.2f}%)# 获取最佳模型
model clf.export_model()
model.save(best_model_autokeras.h5)
1.4 FeatureTools
简介 FeatureTools 是一个开源的 Python 库专注于自动化特征工程。它可以高效地生成大量的特征帮助机器学习模型学习更多的潜在信息从而提升模型的预测能力。
主要功能 深度特征合成DFS通过组合和变换数据集中的基础数据列自动构建复杂的特征。 时间索引处理时间数据自动识别和构造与时间相关的特征。 可扩展性优化内存使用能够处理大型数据集。 易于集成可以与 Pandas 和 scikit-learn 等流行的数据科学工具无缝集成。
应用实例 以下是一个使用 FeatureTools 进行客户购买预测的示例通过自动构建特征来提升模型性能。
import featuretools as ft
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 模拟一些示例数据
data {transaction_id: [1, 2, 3, 4, 5],customer_id: [1, 2, 1, 3, 4],amount: [100, 200, 200, 300, 100],transaction_time: pd.to_datetime([2021-01-01, 2021-01-02, 2021-01-02, 2021-01-03, 2021-01-03])
}
transactions pd.DataFrame(data)# 创建一个 EntitySet
es ft.EntitySet(idcustomer_data)
# 添加数据集
es es.entity_from_dataframe(entity_idtransactions, dataframetransactions, indextransaction_id, time_indextransaction_time)# 自动创建特征
features, feature_names ft.dfs(entitysetes, target_entitytransactions, max_depth2)# 查看生成的特征
print(features.head())# 数据分割
X features
y [0, 1, 0, 1, 0] # 假设的购买结果
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 使用随机森林分类器
model RandomForestClassifier(n_estimators100, random_state42)
model.fit(X_train, y_train)
y_pred model.predict(X_test)# 计算准确率
accuracy accuracy_score(y_test, y_pred)
print(f模型准确率: {accuracy:.2f}%)
二、中级自动化机器学习库
2.1 MLBox
简介 MLBox 是一个全功能的自动化机器学习库提供从数据预处理到模型部署的一站式解决方案。它支持各种机器学习任务如分类、回归和聚类并通过自动化流程优化这些任务的执行效率。
主要功能 数据预处理自动处理缺失值、异常值和编码问题优化数据的质量和可用性。 特征选择与构建自动评估和选择最有影响的特征减少模型复杂度并提升性能。 模型选择与超参数优化自动测试多种算法找到最适合数据的模型并调整其超参数。 模型堆叠和集成利用多个模型的优势自动创建强大的集成模型。
应用实例 以下是使用 MLBox 对一个分类任务进行处理的简单示例。假设我们有一组关于乘客生存预测的泰坦尼克号数据。
from mlbox.preprocessing import *
from mlbox.optimisation import *
from mlbox.prediction import *# 数据读取
paths [train.csv, test.csv] # 训练数据和测试数据的路径
target_name Survived # 目标变量# 数据预处理
data Reader(sep,).train_test_split(paths, target_name)
data Drift_thresholder().fit_transform(data)# 优化模型
space {est__strategy: {search: choice, space: [LightGBM]},est__n_estimators: {search: choice, space: [150, 200, 300]},est__max_depth: {search: choice, space: [5, 8, 10]}
}opt Optimiser(scoringaccuracy, n_folds5)
best opt.optimise(space, data, 15)# 模型预测
predictor Predictor().fit_predict(best, data)# 查看模型的性能
print(predictor)
2.2 H2O AutoML
简介 H2O AutoML 是 H2O.ai 提供的一个自动化机器学习平台旨在简化机器学习的训练和部署过程。它支持广泛的机器学习模型包括深度学习、集成学习和线性模型并通过用户友好的界面降低了使用复杂度。
主要功能 用户友好的界面提供图形界面GUI和命令行界面CLI使用户可以轻松选择数据集、启动模型训练和评估结果。 自动化模型训练和选择自动进行数据预处理、特征工程、模型训练、模型验证和集成模型的选择。 高效的模型训练过程使用分布式计算加速模型训练适合处理大规模数据集。 模型解释性提供模型解释工具帮助理解模型的决策过程。
应用实例 以下是使用 H2O AutoML 进行信用卡欺诈检测的示例。该示例展示了如何使用 H2O AutoML 快速训练和评估多个模型。
import h2o
from h2o.automl import H2OAutoMLh2o.init()# 加载数据
data h2o.import_file(creditcard.csv)# 分割数据集
train, test data.split_frame(ratios[.8], seed123)# 指定目标列和特征列
target Class
features data.columns
features.remove(target)# 启动 AutoML
aml H2OAutoML(max_models20, seed1, max_runtime_secs10000)
aml.train(xfeatures, ytarget, training_frametrain)# 查看所有模型的性能
lb aml.leaderboard
print(lb.head())# 使用最佳模型进行预测
predictions aml.leader.predict(test)# 显示预测结果
print(predictions.head())
2.3 NNI (Neural Network Intelligence)
简介 NNI (Neural Network Intelligence) 是一个由微软开发的开源AutoML工具专为帮助用户优化神经网络的架构NAS和超参数而设计。它支持多种优化算法并可与现有的深度学习框架如 TensorFlow, PyTorch 和 MXNet 等无缝集成。
主要功能 神经网络架构搜索NAS自动搜索最优的网络架构适用于不同的任务和数据集。 超参数优化提供多种优化算法如贝叶斯优化、进化算法和随机搜索用以寻找最佳的超参数配置。 模型压缩集成模型剪枝和量化功能帮助减小模型大小提升推理速度。 可视化和管理提供一个用户友好的界面用于监控实验进度和比较不同实验的结果。
应用实例 以下是使用 NNI 进行图像分类任务的超参数优化示例。这个示例演示了如何配置实验自动调整神经网络的参数。
# 定义搜索空间
search_space {learning_rate: {_type:loguniform, _value:[1e-5, 1e-2]},optimizer: {_type:choice, _value:[Adam, SGD]},batch_size: {_type:choice, _value:[16, 32, 64, 128]}
}# 配置优化器
config {search_space: search_space,trial_command: python train.py,tuner: {builtinTunerName: TPE,classArgs: {optimize_mode: maximize}},max_trial_number: 50,max_duration: 2h
}# 启动 NNI 实验
nni.create_experiment(nameNNI_Example, configconfig)# NNI 实验管理器会自动启动、监控并记录每个试验的结果用户可以在 NNI 的 Web 界面中查看详细信息和进度。
2.4 Lightwood
简介 Lightwood 是一个基于 PyTorch 的框架旨在简化机器学习模型的构建过程。该框架提供了一套高级 API使得开发者可以快速构建、训练并部署机器学习模型特别适用于深度学习项目。
主要功能 简化的模型定义通过高级抽象简化模型定义过程用户只需少量代码即可定义复杂的模型。 自动化的数据预处理自动处理输入数据的标准化、编码和分割减少手动数据预处理工作。 模型自动优化内置智能算法帮助自动调整模型参数优化模型性能。 简易部署支持一键部署模型到多种平台包括云端和边缘设备。
应用实例 以下是使用 Lightwood 进行房价预测的简单示例。这个示例展示了如何快速构建和训练一个回归模型。
import lightwood
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error# 加载数据集
data load_boston()
X data.data
y data.target# 数据分割
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 使用 Lightwood 构建模型
predictor lightwood.Predictor(outputregression)
predictor.learn(from_data(X_train, y_train))# 预测测试数据
predictions predictor.predict(whenX_test)# 评估模型
mse mean_squared_error(y_test, predictions)
print(fMean Squared Error: {mse:.2f})
三、高级自动化机器学习库
3.1 Ray
简介 Ray 是一个开源框架用于构建大规模分布式应用。它最初由加州大学伯克利分校的研究团队开发目的是为了简化分布式系统的开发过程特别是在机器学习和AI领域。Ray 提供了一套简单的API使得开发者可以轻松地将单机应用扩展到大规模的集群环境。
主要功能 任务并行化自动管理任务的分布和执行使得复杂的并行计算任务简化。 状态管理通过分布式对象存储自动管理应用状态支持高效的数据共享和通信。 可伸缩的机器学习库集成了多种机器学习库如 Ray RLlib强化学习、Ray Tune超参数优化和 Ray Serve模型部署支持这些库的无缝扩展。 容错性具备自动处理节点失败的能力确保应用的持续运行和数据的完整性。
应用实例 以下是使用 Ray 进行大规模数据处理的示例。该示例展示了如何利用 Ray 的并行处理功能快速处理大量数据。
import ray
import numpy as np# 初始化 Ray
ray.init()# 定义一个简单的并行计算任务
ray.remote
def add(x, y):return np.add(x, y)# 生成大量数据
data_x np.random.randn(10000)
data_y np.random.randn(10000)# 并行计算
results ray.get([add.remote(data_x[i], data_y[i]) for i in range(10000)])# 输出结果
print(fProcessed results: {results[:10]})3.2 Pycaret
简介 Pycaret 是一个低代码机器学习库它使得用户可以用极少的代码完成多种机器学习任务包括分类、回归、聚类、异常检测和自然语言处理。这个库特别适合于希望快速进行数据科学实验的数据分析师和软件开发者。
主要功能 自动化的数据预处理自动处理缺失值、标准化、编码等减少手动数据清洗和准备的工作。 模型选择和训练自动比较多种机器学习模型的性能帮助选择最适合的模型。 模型优化自动进行超参数调整以优化模型性能。 模型分析提供多种工具如模型解释、特征重要性、模型比较等帮助用户理解和优化模型。
应用实例 以下是使用 Pycaret 进行分类任务的示例。该示例展示了如何使用 Pycaret 快速训练和比较不同的分类模型。
from pycaret.classification import *# 加载数据集
data get_data(juice)# 设置环境和初始化数据
s setup(data, target Purchase, session_id123)# 比较不同模型的性能
best_model compare_models()# 创建模型
model create_model(rf) # 创建一个随机森林分类器# 模型优化
tuned_model tune_model(model)# 模型评估
evaluate_model(tuned_model)# 预测新数据
predictions predict_model(tuned_model, datadata)# 显示预测结果
print(predictions.head())
3.3 Kubeflow
简介 Kubeflow 是一个开源项目旨在使部署机器学习工作流程在 Kubernetes 上尽可能简单。它提供了一套丰富的工具来构建机器学习管道从数据预处理到模型训练和服务部署全都可以在 Kubernetes 上进行管理和扩展。
主要功能 机器学习管道构建、部署和管理端到端的机器学习管道。 模型训练使用 Kubeflow Pipelines 和 Katib 进行模型训练和自动化超参数调整。 模型部署使用 Kubeflow Serving 快速部署和扩展机器学习模型。 多框架支持支持 TensorFlow, PyTorch, MXNet 等多种机器学习框架。 资源优化通过 Kubernetes 的资源管理优化机器学习任务的资源使用。
应用实例 以下是使用 Kubeflow 在 Kubernetes 上部署机器学习模型的示例。这个示例展示了如何创建一个简单的机器学习管道。
apiVersion: kubeflow.org/v1beta1
kind: Pipeline
metadata:name: demo-pipeline
spec:templates:- name: train-modelcontainer:image: tensorflow/tensorflow:latestcommand: [python, train.py]args: [--data, $(inputs.parameters.data-url), --model-dir, $(outputs.artifacts.model-path)]inputs:parameters:- name: data-urloutputs:artifacts:- name: model-pathpath: /model- name: deploy-modelcontainer:image: kfserving/kfserving:latestcommand: [python, deploy.py]args: [--model-path, $(inputs.artifacts.model-path)]workflow:- name: train-and-deploydag:tasks:- name: train-modeltemplate: train-modelarguments:parameters:- name: data-urlvalue: s3://your-bucket/train-data.csv- name: deploy-modeldependencies: [train-model]template: deploy-model# 使用这个管道你可以在 Kubernetes 集群中自动化地训练和部署模型。
THE END !
文章结束感谢阅读。您的点赞收藏评论是我继续更新的动力。大家有推荐的公众号可以评论区留言共同学习一起进步。