如何使用 SynapseML 训练模型

您所在的位置:网站首页 substance导入模型 如何使用 SynapseML 训练模型

如何使用 SynapseML 训练模型

2023-05-26 06:45| 来源: 网络整理| 查看: 265

如何使用 SynapseML 训练模型 项目 05/23/2023

重要

Microsoft Fabric 目前为预览版。 此信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。

SynapseML 是一个工具生态系统,旨在将分布式计算框架 Apache Spark 扩展到多个新方向。 SynapseML 向 Spark 生态系统添加了许多深度学习和数据科学工具,包括将 Spark 机器学习管道与 Microsoft Cognitive Toolkit (CNTK) 、LightGBM 和 OpenCV 无缝集成。 这些工具为多种类型的数据源启用功能强大且高度可缩放的预测和分析模型。

在本部分中,我们将举例说明如何训练 SynapseML 模型。

导入包

首先导入 numpy 和 pandas,因为它们将在示例中使用。

import numpy as np import pandas as pd 在数据中读取

在典型的 Spark 应用程序中,你可能会使用存储在分布式文件系统(如 HDFS)上的大型数据集。 但是,为了保持本教程简单快捷,我们将从 URL 复制小型数据集。 然后,我们使用 Pandas CSV 读取器将此数据读入内存,并将数据作为 Spark 数据帧分发。 最后,我们显示数据集的前 5 行。

dataFile = "AdultCensusIncome.csv" import os, urllib if not os.path.isfile(dataFile): urllib.request.urlretrieve("https://mmlspark.azureedge.net/datasets/" + dataFile, dataFile) data = spark.createDataFrame(pd.read_csv(dataFile, dtype={" hours-per-week": np.float64})) data.show(5) 选择特征并拆分数据以训练集和测试集

接下来,选择要在模型中使用的一些功能。 可以尝试不同的特征,但应包括 " income" ,因为它是模型尝试预测的标签列。 然后,我们将数据拆分为 train 和 test 集。

data = data.select([" education", " marital-status", " hours-per-week", " income"]) train, test = data.randomSplit([0.75, 0.25], seed=123) 训练模型

为了训练分类器模型,我们使用 synapse.ml.TrainClassifier 类。 它采用训练数据和基本 SparkML 分类器,将数据映射到基分类器算法预期的格式,并拟合模型。

from synapse.ml.train import TrainClassifier from pyspark.ml.classification import LogisticRegression model = TrainClassifier(model=LogisticRegression(), labelCol=" income").fit(train)

TrainClassifier 隐式处理字符串值列并将标签列二进制化。

评分和评估模型

最后,让我们根据测试集对模型评分,并使用 synapse.ml.ComputeModelStatistics 类计算评分数据中的准确度、AUC、精度和召回率等指标。

from synapse.ml.train import ComputeModelStatistics prediction = model.transform(test) metrics = ComputeModelStatistics().transform(prediction) metrics.select('accuracy').show()

大功告成! 你已使用 SynapseML 包构建了第一个机器学习模型。 有关 SynapseML 类和方法的帮助,可以使用 Python 的 help () 函数。

help(synapse.ml.train.TrainClassifier)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3