python-3.x - python中的sklearn如何计算.scale_?(它到底是什么算法?)
问题描述
请假设我们有一个这样的数组:
import numpy as np
X_train = np.array([[ 1., -1., 2.],
[ 2., 0., 0.],
[ 0., 1., -1.]])
我们通过以下代码对其进行.scale_
缩放:sklearn
from sklearn import preprocessing
scaler = preprocessing.StandardScaler().fit(X_train)
scaler.scale_
结果显示:
array([0.81649658, 0.81649658, 1.24721913])
你知道它是如何计算的吗?如果你知道,请写出它的公式,它是如何计算的?我想这.scale_
显示了Interquartile range (IQR)
,但是当我手动计算它时IQR
:
array([2, 2, 3]) rather than `array([0.81649658, 0.81649658, 1.24721913])`.
另外,我认为array([0.81649658, 0.81649658, 1.24721913])
是一种正常类型的array([2, 2, 3])
,但我不知道它是如何标准化的。请帮我找到它。
解决方案
均值、方差和标准差的三个主要统计量度计算如下:
mean = preprocessing.StandardScaler().fit(X_train).mean_
variance = preprocessing.StandardScaler().fit(X_train).var_
Standard_deviation = preprocessing.StandardScaler().fit(X_train).scale_
根据问题:
X_train = np.array([[ 1., -1., 2.],
[ 2., 0., 0.],
[ 0., 1., -1.]])
mean = preprocessing.StandardScaler().fit(X_train).mean_
print(mean)
array([1. , 0. , 0.33333333])
variance = preprocessing.StandardScaler().fit(X_train).var_
print(variance )
array([0.66666667, 0.66666667, 1.55555556])
Standard_deviation = preprocessing.StandardScaler().fit(X_train).scale_
print(Standard_deviation )
array([0.81649658, 0.81649658, 1.24721913])
换句话说:
scaler.scale_ = np.sqrt(scaler.var_)
推荐阅读
- vim - 如何在 Neovim 的新选项卡中打开终端,只使用一个命令而不重新映射?
- wordpress - WordPress 损坏的应用程序尝试 wpscan kali 工具
- macos - pgAdmin4:我选择什么用户名?
- python - python selenium webdriver 无法找到具有显式等待的元素
- asp.net-mvc - 在 aks 集群中发生 pod 故障时如何识别实际异常
- parallel-processing - CUDA C/C++:异步内核错误:遇到非法内存访问
- python - 如何在 Python 中的非默认参数之前声明具有默认参数的函数?
- vue.js - JS 增强的表单组件不尊重 Vue 中的排序/过滤
- javascript - 如何返回相对 HTML 表格值?
- python - 修复错误“切片”错误以在单独的 Excel 单元格中添加元素列表