Sagemaker基础操作指南

2023-11-11 12:04
文章标签 基础 操作 指南 sagemaker

本文主要是介绍Sagemaker基础操作指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

Amazon SageMaker是亚马逊AWS提供的一项托管式机器学习服务,旨在简化和加速机器学习开发的整个生命周期。它为机器学习工程师和数据科学家提供了一套完整的工具和功能,用于构建、训练、调优和部署机器学习模型。本文将会通过一个简单的例子,来介绍Sagemaker的使用,并且完成一个简单的深度学习任务

创建Jupyter Notebook实例

官方例子中的代码由于调用了一些SageMaker专用的SDK,因此需要在SageMaker的JupyterNotebook实例下进行。创建的操作如下:

进入亚马逊控制台后选择Amazon SageMaker

之后选择左侧边栏的笔记本->笔记本实例

点击创建笔记本实例。

一开始新创建的笔记本实例,状态为pending,等待一段时间后,状态会变为InService。

之后选择打开Jupyter就可以进入Jupyter Notebook实例内

参考连接

亚马逊创建Jupyter notebook实例相关内容 视频链接

训练和部署

下面是亚马逊官方关于sagemaker例子的github地址

https://github.com/aws/amazon-sagemaker-examples

这里选择一个sagemake预测用户流失的例子,进行训练和部署的操作。

将git上的例子下载到本地后,对应的文件在以下目录

amazon-sagemaker-examples\introduction_to_applying_machine_learning\xgboost_customer_churn

进入JupyterNotebook实例中,点击Upload,将xgboost_customer_chun.ipynb上传到实例中。

点击这个ipynb文件,进入到实例中按步骤执行即可。

关键代码解析

例子所有的代码都在xgboost_customer_chun.ipynb文件中,例子的前半部分都是对数据进行分析和清理,就不详细讲解。直接从清理之后的部分开始

将数据分成了训练集,验证集,测试集。并且将训练集和验证集保存成train.csv,validation.csv文件

train_data, validation_data, test_data = np.split(model_data.sample(frac=1, random_state=1729),[int(0.7 * len(model_data)), int(0.9 * len(model_data))],
)
train_data.to_csv("train.csv", header=False, index=False)
validation_data.to_csv("validation.csv", header=False, index=False)

之后将这两个数据上传到s3服务器中

boto3.Session().resource("s3").Bucket(bucket).Object(os.path.join(prefix, "train/train.csv")
).upload_file("train.csv")
boto3.Session().resource("s3").Bucket(bucket).Object(os.path.join(prefix, "validation/validation.csv")
).upload_file("validation.csv")

然后创建xgboost的容器

container = sagemaker.image_uris.retrieve("xgboost", sess.boto_region_name, "1.7-1")
display(container)

然后读取之前上传的两个csv文件作为训练的输入

s3_input_train = TrainingInput(s3_data="s3://{}/{}/train".format(bucket, prefix), content_type="csv"
)
s3_input_validation = TrainingInput(s3_data="s3://{}/{}/validation/".format(bucket, prefix), content_type="csv"
)

然后设置完超参数进行训练

sess = sagemaker.Session()xgb = sagemaker.estimator.Estimator(container,role,instance_count=1,instance_type="ml.m4.xlarge",output_path="s3://{}/{}/output".format(bucket, prefix),sagemaker_session=sess,
)
xgb.set_hyperparameters(max_depth=5,eta=0.2,gamma=4,min_child_weight=6,subsample=0.8,verbosity=0,objective="binary:logistic",num_round=100,
)xgb.fit({"train": s3_input_train, "validation": s3_input_validation})

等待训练完成之后,就可以把这个预测器进行部署

xgb_predictor = xgb.deploy(initial_instance_count=1, instance_type="ml.m4.xlarge", serializer=CSVSerializer()
)

部署完成后就可以调用predict接口将一开始分出来的测试集进行预测

def predict(data, rows=500):split_array = np.array_split(data, int(data.shape[0] / float(rows) + 1))predictions = ""for array in split_array:predictions = "".join([predictions, xgb_predictor.predict(array).decode("utf-8")])return predictions.split("\n")[:-1]predictions = predict(test_data.to_numpy()[:, 1:])

最后就是对预测的结果正确性进行对比。

pd.crosstab(index=test_data.iloc[:, 0],columns=np.round(predictions),rownames=["actual"],colnames=["predictions"],)

下面是预测后的结果,绿色方框均为预测正确结果,红色方案内为预测错误的结果。正确率为94.6%

附上官方教程,教程内显示执行后的整个输出。(里面部分代码在真实环境中可能会报错,实际还是要用放在github上的代码)

https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_applying_machine_learning/xgboost_customer_churn/xgboost_customer_churn_outputs.html

创作不易,如果觉得这篇文章对你有所帮助,可以动动小手,点个赞哈,ღ( ´・ᴗ・` )比心

这篇关于Sagemaker基础操作指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/389933

相关文章

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)