NMF с отрицательными значениями Python - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю с алгоритмом Scikit-Learn NMF и хотел бы знать, есть ли способ использовать отрицательные значения в алгоритме, он мне нужен для работы с файлами BVH.

I ' используя python 3.7.5

import numpy as np
import re
from sklearn.decomposition import NMF

with open('01_01.bvh', 'r') as fr:

    with open('01_01_NMF.bvh', 'w') as fw:

        for line in fr.readlines():
            if line[0].isdigit() or line[1].isdigit():
               line = re.split('\s+|\n', line)
                line.pop()
                MOTION = [float(nums) for nums in line]
                X = MOTION
                print("Original")
                print(X)
                model = NMF(n_components=96, init='random', random_state=0)
                W = model.fit_transform(X)
                H = model.components_
                print("NMF")
                print(W)
                OutputMotion = [str(nums) for nums in W]
                out = '   '.join(OutputMotion)
                fw.write(out + '\n')
            else:
                fw.write(line)

Код уже построчно читает файлы bvh и проверяет, находится ли он в разделе Motion, этот раздел должен go через NMF, но обычно имеет много отрицательных значений, и алгоритм отклоняет их. Любая помощь приветствуется, спасибо.

...