Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么要跨行而不是跨列进行缩放,以便在群集之前对数据进行标准化(预处理)_Python_Scikit Learn_Cluster Analysis_K Means - Fatal编程技术网

Python 为什么要跨行而不是跨列进行缩放,以便在群集之前对数据进行标准化(预处理)

Python 为什么要跨行而不是跨列进行缩放,以便在群集之前对数据进行标准化(预处理),python,scikit-learn,cluster-analysis,k-means,Python,Scikit Learn,Cluster Analysis,K Means,对于以下关于数据预处理聚类的问题,我非常困惑,在互联网上找不到令人信服的答案 根据Python的说法,当我们使用sckit学习库中的内置命令进行预处理时,假设数据表示为nxd矩阵,其中行是样本,列是特征,我们将行的平均值设为零,同时行之间的标准差统一如下: X_scaled.mean(axis=0) array([ 0., 0., 0.]) X_scaled.std(axis=0) array([ 1., 1., 1.]) 我的问题是,我们是否应该将整个列(特征而非样本)的平均值设为

对于以下关于数据预处理聚类的问题,我非常困惑,在互联网上找不到令人信服的答案

根据Python的说法,当我们使用sckit学习库中的内置命令进行预处理时,假设数据表示为
nxd
矩阵,其中行是样本,列是特征,我们将行的平均值设为零,同时行之间的标准差统一如下:

X_scaled.mean(axis=0)
array([ 0.,  0.,  0.])

X_scaled.std(axis=0)
array([ 1.,  1.,  1.])

我的问题是,我们是否应该将整个列(特征而非样本)的平均值设为零,标准偏差也设为零,因为我们正在尝试标准化特征而非样本。网站和其他资源总是跨行标准化,但它们从未解释原因?

我希望您希望跨示例标准化给定功能的值。如果将给定样本的数据跨其特征进行规范化,则会抛出大量信息。这将用于比较特征(这几乎没有意义),而不是比较特征的样本

我不知道numpy或sklearn,所以对此有点怀疑,但在进行规范化时,您希望规范化(使用相同的参数)给定特征的所有数据,使该特征的所有值都在(-1…+1)范围内,平均值为零(或类似的值)。你会对每个特征分别做这个,所以它们最终都会在这个范围内,每个特征的平均值为零

考虑一个例子,如果您对给定样本的所有特征进行了规格化

        height weight age
person1 180    65     50
person2 140    45     50
如果我们对person1的特征值进行标准化,然后对person2进行同样的标准化,那么person2似乎与person1的年龄不同


如果我们对给定列的样本进行规范化,那么这些关系仍将保持不变。他们的年龄将相匹配;人1会更高,人2会更轻。但所有特征的所有值都将符合后续分析所需的分布规则。

有一个地方可以规范化样本。一个例子是当您的功能被计数时。在这种情况下,将每个样本归一化为单位l1范数可以有效地将每个特征更改为该样本总计数的百分比

Sklearn的
规范化器
用于样本规范化,可以规范化为l1或l2规范


我希望您希望在样本中规范化给定特性的值。如果将给定样本的数据跨其特征进行规范化,则会抛出大量信息。这将用于比较特征,而不是比较特征的样本。但是,当人们说特征具有不同的范围时,这有点误导,所以让我们来缩放它们,它们的意思似乎是缩放给定样本的特征,因为假设我们有a先生的体重、年龄和身高。a是65公斤,180厘米和20岁,他们是不同的范围,我想我们使这些特征为0均值和单位方差。你能详细说明一下吗?或者如果你认为写下你的评论是为了回答@JeffLearman的回答以外的问题,我可以补充一点,跨行标准化(正如OP最初认为的那样)也是图像处理中的一件事,以便使所有样本(图像)都变成标准颜色(像素值)你也可以把每一行放在场景的中心,每一行(比如调查的受访者)都有自己的中心趋势(例如,一些受访者在1-10分的范围内长期回答较高的数字),这是一个好的观点。我想不出一个好的例子,可以用这种方式规范化,但你想出了一个。