关于均值为0
来源:7-4 求数据的前n个主成分

qq_慕少1574511
2021-03-22
def demean(X):
return X-np.mean(X,axis=0) #均值变为0
X=demean(X)
老师您好,就是可以再讲讲这段代码到底是什么意思啊
写回答
1回答
-
假设 X =
[[1, 2], [3, 4], [5, 6]]
即有 3 个样本,两个特征。
np.mean(X,axis=0) 的结果是:
[3, 4]
即计算出了两个特征的平均值。(1 + 3 + 5) / 3 = 3;(2 + 4 + 6) / 3 = 4。
X - np.mean(X,axis=0) 用 X 的每一行和 [3, 4] 向减。结果是:
[[-2, -2], [0, 0], [2, 2]]
因为 [1, 2] - [3, 4] = [-2, -2];[3, 4] - [3, 4] = [0, 0], [5, 6] - [3, 4] = [2, 2]
现在,这个矩阵的每一列的均值为 0。所以这个过程把每个特征的均值变成了 0,叫做 demean。
P.S. 带入一组具体的简单的小数据,去看程序到底发生了什么,而不是对着代码生想,是非常重要的理解程序,对程序 debug 的方式:)
继续加油!:)
112021-03-22
相似问题
关于X[y==0, 0]的疑问
回答 7
请问老师关于方差和标准差
回答 2