线性判别分析中的SVD求解器sklearn

时间:2019-10-24 02:25:32

标签: machine-learning scikit-learn data-science svd linear-discriminant

我一直在研究线性判别分析和SVD,并且正在使用sklearn实现。我深入研究了sklearn代码,并在df_test_hourly['prediction'] Datetime 2014-09-26 00:00:00 X1 2014-09-26 01:00:00 X2 2014-09-26 02:00:00 X3 2014-09-26 03:00:00 X4 2014-09-26 04:00:00 X5 ... 2014-09-26 23:00:00 X23 中找到了这些缩放比例线:

_solve_svd()

任何人都可以解释一下这种缩放实际在做什么吗? 我问的原因是因为我发现输出维数为# 1) within (univariate) scaling by with classes std-dev std = Xc.std(axis=0) # avoid division by zero in normalization std[std == 0] = 1. fac = 1. / (n_samples - n_classes) # 2) Within variance scaling X = np.sqrt(fac) * (Xc / std) # SVD of centered (within)scaled data U, S, V = linalg.svd(X, full_matrices=False)

例如,如果我有1000个具有900个类的要素,并且将min(n_components,n_samples-n_classes)设置为300,则我的输出尺寸为100。

谢谢!

0 个答案:

没有答案