Принудительный результат NNLS - PullRequest
0 голосов
/ 29 мая 2018

Я использую scipy.optimize.nnls для вычисления неотрицательного наименьшего квадрата с коэффициентом суммы 1:

#! /usr/bin/env python3
import numpy as np
import scipy.optimize as soptimize

if __name__ == '__main__':

    C = np.array([[112.771820, 174.429720, 312.175750, 97.348620],
                  [112.857010, 174.208300, 312.185270, 93.467580],
                  [114.897210, 175.661850, 314.275100, 99.015480]
                 ]);

    d = np.array([[112.7718, 174.4297, 312.1758, 97.3486]]);

    for line in d:
        ret , _= soptimize.nnls(C.T, line)
        print(ret)

И я получаю:

[9.99992794e-01 7.27824399e-06 0.00000000e+00]

ЭтоМожно ли задать какой-либо столбец результата для конкретного значения для алгоритма nnls и заставить его генерировать оставшиеся столбцы результата?

Например, если мой результат: [0,3 0,3 0,4].Я хочу, чтобы первый столбец равнялся 0,9, а nnls должен генерировать другие столбцы, например:

 [0.9 0.06 0.04]

Любая помощь будет оценена!

...