问题标签 [standardization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 将标准化/标准化与 K-Fold 交叉验证结合使用的正确方法是什么?
我一直了解到标准化或归一化应该只适用于训练集,然后用于转换测试集。所以我要做的是:
现在,如果我要在新数据上使用这个模型,我可以保存“缩放器”并将其加载到任何新脚本中。
尽管理解这对 K-fold CV 是如何工作的,但我遇到了麻烦。在每次折叠时重新安装和转换缩放器是最佳实践吗?我可以理解这在构建模型时是如何工作的,但是如果我以后想使用这个模型怎么办。我应该保存哪个缩放器?
此外,我想将其扩展到时间序列数据。我了解 k-fold 如何用于时间序列,但我又如何将它与 CV 结合起来?在这种情况下,我建议保存最后一个缩放器,因为这将适合数据的 4/5(如果 k=5),使其适合最新(最近)的数据。那是正确的方法吗?
machine-learning - 标准化 X_train 和 Y_train
我是该领域的初学者,目前正在研究基于 Facebook 广告的数据集。
目标变量是金额,范围在 10 到 200 之间,特征是频率(范围在 0.1 到 3.0 之间)和印象数(1000 到 30000)
在训练我的模型(线性回归)后,我的分数是 0.84但MSE 是 490,我认为这个值是因为特征的行有这样的情况:(频率:1.432 和印象数:25412)
在将数据拆分为训练数据和测试数据后,我应用了标准化
**为了解决这个问题,我想应用标准化来消除我应用 fit_transform (X_train) 和 transform (X_test) 的值的高方差
但是分数是一样的,MSE也是一样。
我的怀疑很白痴,但我在这个领域工作就像是 ML 的新手
1)我注意到社区没有对目标变量(Y)应用标准化他们为什么这样做?
2)我在这里做错了吗?
感谢你们!
python - Patsy 和 Pandas 之间的标准化结果不同 - Python
我发现了一个有趣的问题,我很想听听你的解释。
如果您打印出标准化x2 列的结果,您会发现结果完全不同。结果如下:
Patsy_Standarlize_Output = [-1.21701061,-0.07791372,-0.66884723,2.23584028,0.69898536,-0.71843674,-0.00416815,-0.2484492]
Pandas_Standarlize_Output = [-1.13840918, -0.07288161, -0.62564929, 2.09143707, 0.65384094, -0.67203603, -0.00389895, -0.23240294]
我的问题是,既然我对同一列进行了标准化,为什么结果不同?
我期待听到您的精彩诠释!非常感谢您的时间和帮助!
c++ - 为什么 C++ 没有标准化在整个容器上运行的算法重载?
标准 ISO C++ 具有丰富的算法库,包括大量的语法糖,如std::max_element
, std::fill
,std::count
等。
我很难理解为什么 ISO 认为适合标准化许多此类琐碎的算法,而不是在整个容器上运行的算法的重载。
我真的不明白为什么当我们没有完整的容器版本(当然是迄今为止最常见的情况)或者类似地留下向量擦除-删除成语的暴行时,他们为什么要添加这些基本的东西:
v.erase(std::remove(v.begin(), v.end(), elem), v.end());
似乎我用 C++ 编写的每个项目,最终都会包含我自己的自定义头文件,其中包含类似这样的基本语法糖。
当然,任何微不足道的整个容器重载都可以包含在自定义标头中。许多标准化的简单算法也是如此。
我试图理解的是为什么标准中的事物有充分的理由,比如std::max_element
和std::fill
范围,而不是在整个容器上运行的版本,或者其他减少编写 C++ 代码冗长的语法糖。
machine-learning - 何时在机器学习中执行规范化或标准化?
如果所有特征都具有相同的规模,我是否必须对我的数据进行规范化?例如,所有列都是特征,每一行/样本是每个特征的出现次数?如果需要归一化,我需要按特征还是按样本归一化?
python - 标准化或标准化离散变量?
当我们有离散变量,例如年龄、病假数、家庭中的孩子数和数据框中的缺勤数时,我想用二进制结果建立一个预测模型,是否可以将这些变量与其他数字一起包含在内将连续变量转化为标准化或标准化过程?
还是我应该将这些离散变量归类为分类变量并将它们变成虚拟变量?
python - 如何正确使用 RobustScaler 改进 LinearRegression 模型?
为了改进我的线性回归模型,我被建议使用标准化,即 RobustScaler 以获得更好的性能。我的训练集和验证集的形状:
所以我将我的 X 转换为训练集和验证集:
然后我运行模型并使用函数 print_score() 打印分数:
输出 | [training rmse, validation rmse, r² for training set, r² for validation set |
---|---|
前: | [260.86301672800016, 271.8005003802866, 0.6184501389479591, 0.5976532655109332] |
后: | [260.8630167262612, 271.800437195055, 0.6184501389530468, 0.5976534525773189] |
两者的结果完全相同,我做错了什么?我也应该为y_train和y_valid使用Robustscaler()吗?如果我这样做:
我得到的和没有它一样:| [training rmse, validation rmse, r² for training set, r² for validation set | | -------------- | | [260.8630167262612, 271.800437195055, 0.6184501389530468, 0.5976534525773189]|
或者我应该在拆分之前一次对整个数据使用Robustscaler() ?如果“是”,如果在训练/验证拆分后估算 NaN 值,我该怎么做。
r - 颠倒测试结果的规模
我在训练集中使用标准化的预测器来训练模型。当我在测试集中预测结果时,如何将结果的比例反转为原始比例?看起来我预测了测试结果的标准化分数。
请参阅下面的可重现的 R 代码和输出:
python - 反转 LSTM 中测试结果的规模
我在训练集中使用标准化预测器来训练 LSTM 模型。在我预测了测试集中的结果之后,我需要将预测的分数反转回原来的规模。通常我可以使用预测分数 * 训练结果的 SD + 训练结果的 MEAN 来反转规模。然而,在做 LSTM 时,训练集中的每个特征都被测量了多次,标准化过程返回多个 MEAN 和 SD。我的问题是:
如何使用 python 代码将结果的比例反转为具有多个 MEAN 和 SD 的原始比例?
或者,我是否应该选择另一种对预测变量和结果进行归一化的方式,以便可以对结果进行反向缩放?您会推荐哪种标准化方法?
在像我这样的 3-D 数组中,如何为每个特征获得一个平均值和一个 SD?
非常感谢。
请参阅下面的可重现 python 代码和输出:
machine-learning - 从 StandardScaler 转移到 MinMaxScaler 会导致问题
在将时间序列数据放入 RNN 之前,我使用 StandardScaler 对其进行标准化。它一直有效。但现在我改为使用 MinMaxScaler。一切都很好,除了我不能再次将数据逆变换回来。
尝试逆变换时出现以下错误: