简介
在机器学习和深度学习中,对数据进行预处理是非常重要的一步。但是,数据集中的数据通常是不规整的,包含各种偏差和噪音。因此,我们需要进行归一化和标准化操作,以使得数据分布更均匀,能够更好的训练模型。
@yodasws/neural-data-normalizer 是一款 NPM 包,用于完成神经网络训练之前的数据归一化。它提供了多种参数和参数组合来满足用户需求,使用起来十分灵活。
安装
你可以使用以下命令来安装 @yodasws/neural-data-normalizer:
--- ------- -------------------------------
使用
基本用法
@yodasws/neural-data-normalizer 提供了两种常见的数据规范化方法:min-max 规范化和 Z-score 规范化。这里我们以一个数组为例,使用 min-max 规范化来观察其使用方法:
----- ---------- - ------------------------------------------- ----- --- - --- -- -- -- --- ----- ------ - ------------------------------------ -------------------- -- ---- -- ----- ---- ----- - -
高级用法
@yodasws/neural-data-normalizer 提供了一些高级的参数选项,可以根据用户的需求来完成更复杂的数据规范化操作。这里我们以一个二维数组为例,使用 Z-score 规范化来观察其使用方法:
----- ---------- - ------------------------------------------- ----- --- - ---- --- --- --- --- ---- ----- ------- - - ----- ---------- ----- - -- ----- ------ - ------------------------- --------- -------------------- -- ---- - --- - -- - --- - -- - --- - - -
这里我们将 mode
参数设置为 "z-score"
,代表使用 Z-score 规范化。将 axis
参数设置为 1
,代表对二维数组中的每一行进行规范化操作。
配合 Tensorflow.js 使用
@yodasws/neural-data-normalizer 同时也与 Tensorflow.js 兼容。在 Tensorflow.js 中,我们需要将数据预处理完成后才能进行模型训练。使用 @yodasws/neural-data-normalizer 可以方便快捷地完成数据预处理操作。以下是一个使用示例:
----- -- - --------------------------------- ----- ---------- - ------------------------------------------- ----- ---- - ---------------- --- --- --- --- ----- ----- ------- - - ----- ---------- ----- - -- ----- -------------- - ------------------------------------ -- ------------------------------------- ----- - - -------------------------------------- -------------------------- -- ----- --- -- - -- - --- -- - --
这里我们首先使用 Tensorflow.js 中的 tensor2d
函数将二维数组转换为 Tensorflow.js 中的 Tensor。然后使用 arraySync
将 Tensor 转换为原生数组,并使用 transpose
将列变为行。接着对每一行使用 Z-score 规范化,最后再将数据转换为 Tensor,并使用 transpose
将数据转换为原始的列/行形状。最后我们就能够使用这个数据进行模型训练了。
总结
使用 @yodasws/neural-data-normalizer 可以帮助我们方便快捷地完成数据规范化操作,使得我们能够更好的训练机器学习和深度学习模型。此外,@yodasws/neural-data-normalizer 更是提供了多种灵活的参数选项,可以根据用户需求进行调整,非常实用。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065f94238a385564ab708a