Есть ли способ получить все значения в единственном числе с помощью sklearn? - PullRequest
1 голос
/ 02 июля 2019

Я пытаюсь воспроизвести процедуру svd из этого видео с помощью sklearn.

Сначала я попробовал этот фрагмент кода

A = np.matrix([[5,5],[-1,7]])
svd = TruncatedSVD(n_components=2, n_iter=7, random_state=42)
svd.fit(A)

и получил эту ошибку

ValueError: n_components must be < n_features; got 2 >= 2

, что является разумным, поскольку A является (2,2) матрицей.

Итак, мне пришлось изменить параметр n_components

A = np.matrix([[5,5],[-1,7]])
svd = TruncatedSVD(n_components=1, n_iter=7, random_state=42)
svd.fit(A)
svd.singular_values_
array([8.94427191])

На самом деле,есть еще одно исключительное значение 4.47213595, которое усекается.

есть ли способ получить все значения в единственном числе с помощью sklearn?

1 Ответ

1 голос
/ 02 июля 2019

Как насчет матрицы A?

A = np.matrix([[5,5],[-1,7]])
A_padded = np.pad(A, (0,1), 'constant', constant_values=(0, 0))
svd = TruncatedSVD(n_components=2, n_iter=7, random_state=42)
svd.fit(A_padded)
svd.singular_values_
array([8.94427191, 4.47213595])
...