使用 Octave 进行特征缩放

猫猫

我想通过使用均值和标准差来做特征缩放数据集,我的代码如下;但显然它不是通用代码,因为它似乎只适用于一个数据集。因此我想知道我的代码有什么问题,任何帮助将不胜感激!谢谢!

X 是我目前使用的数据集。

mu = mean(X);
sigma = std(X);
m = size(X, 1);
mu_matrix = ones(m, 1) * mu;
sigma_matrix = ones(m, 1) * sigma;
featureNormalize = (X-mu_matrix)/sigma;
塔索斯·帕帕斯蒂利亚努

感谢您在评论中阐明您认为代码应该做什么。

我的回答将有效地回答为什么您认为正在发生的事情并不是正在发生的事情。

首先让我们谈谈meanstd功能。当他们的输入是一个向量(无论是垂直对齐还是水平对齐)时,这将返回一个单独的数字,它分别是该向量的均值或标准差,如您所料。

但是,当输入是matrix 时,您需要知道它的不同之处。除非您指定计算均值/标准差的方向(维度),否则它将沿行计算均值,即为每列返回一个数字。因此,此操作的最终结果将是一个水平向量。

因此,在您的代码中musigma都将是水平向量

现在让我们继续讨论“矩阵乘法”运算符(即*)。
使用矩阵乘法运算符时,如果将水平向量与垂直向量相乘(即通常的矩阵乘法运算),则输出是单个数字(即标量)。但是,如果您反转方向,例如将垂直向量乘以水平向量,实际上您将计算“克罗内克积”。由于*操作的输出完全由第一个输入的行和第二个输入的列定义,因此无论您是获得矩阵乘法还是克罗内克积都是隐式的,并且完全取决于输入的方向。

因此,在您的情况下,该行mu_matrix = ones(m, 1) * mu;实际上并没有像您说的那样附加一个向量。它实际上是在 1 的垂直向量和水平向量之间执行克罗内克积mu,从而有效地创建了一个m-by-n矩阵,其中 mu 垂直重复 m 行。

因此,在此操作结束时,正如变量命名所暗示的那样,mu_matrix实际上是一个矩阵(与 相同sigma_matrix),具有相同的大小X

您的最后一步是X- mu_sigma,它为您提供每个元素处的 x 和 mu 之间的差异。然后你用西格玛矩阵“划分”。

这是为什么我问如果你确定你应该使用./的替代/

/矩阵除法运算符。With /You 有效地通过逆矩阵执行矩阵乘法,因为 D / S 在数学上等同于 D * inv(S)。在我看来,您应该./改用,简单地将每个元素除以该列的标准差(这就是为什么您必须在 m 行上重复水平向量的原因sigma_matrix,以便您可以将其用于“按元素划分”) ,因为您要做的是通过特定于该列(即特征)的标准偏差对特定列的每一行(即观察)进行归一化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用OCTAVE的梯度下降进行Logistic回归

来自分类Dev

使用与OCTAVE中等效的printsys进行打印

来自分类Dev

使用Scilab或Octave进行并行计算

来自分类Dev

使用法线方程方法进行多元回归分析的特征缩放(标准化)?

来自分类Dev

在使用高斯混合模型之前进行特征缩放很重要吗?

来自分类Dev

无法在Octave中使用散点图

来自分类Dev

使用LinearRegression()进行特征选择

来自分类Dev

使用Python进行特征工程

来自分类Dev

使用 Keras 进行特征卷积

来自分类Dev

使用 Matlab/Octave 对两个矩阵的对应列的外积和进行矢量化

来自分类Dev

Octave/Matlab - 使用现有绘图对数字进行子绘图

来自分类Dev

如何使用Poppler进行缩放

来自分类Dev

使用窗口进行TextCtrl缩放

来自分类Dev

如何使用Poppler进行缩放

来自分类Dev

是否可以在Octave中使用反馈功能

来自分类Dev

使用sklearn进行多标签特征选择

来自分类Dev

使用Bhattacharyya距离进行特征选择

来自分类Dev

使用swiftUI进行生物特征认证评估

来自分类Dev

使用Bhattacharyya距离进行特征选择

来自分类Dev

使用 LinearRegression Python 进行递归特征消除

来自分类Dev

在 python 中使用 LinearSVC 进行特征选择

来自分类Dev

来自Wolfram,Octave,Jama的不同特征向量

来自分类Dev

来自Wolfram,Octave,Jama的不同特征向量

来自分类Dev

使用SimpleOnScaleGestureListener对片段中的EditText进行缩放

来自分类Dev

使用父容器进行SVG缩放

来自分类Dev

如何使用turn.js进行缩放

来自分类Dev

使用XSL:FO进行图像缩放

来自分类Dev

何时进行特征缩放?提取之前还是之后?

来自分类Dev

CentOS 7使用GUI安装Octave 4.0.2(OpenGL支持)

Related 相关文章

热门标签

归档