Pomegranate: GeneralMixtureModel.predict () TypeError рджреЗрддрд╛ рд╣реИ: 'numpy.float64' рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рдореЗрдВ рдХреЛрдИ рд▓реЗрди рдирд╣реАрдВ рд╣реИ ()

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рд╕рд┐рддре░ 2017  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jmschrei/pomegranate

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ TypeError: object of type 'numpy.float64' has no len() рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╛рдпрдерди 2.7 рдФрд░ рдкрд╛рдпрдерди 3.5 рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ:

from pomegranate import *
import numpy as np

d1 = DiscreteDistribution({'A': 0.25, 'C': 0.25, 'G': 0.25, 'T': 0.25})
d2 = DiscreteDistribution({'A': 0.10, 'C': 0.40, 'G': 0.40, 'T': 0.10})
gmm = GeneralMixtureModel( [d1, d2] )

seq = list('CGACTACTGACTACTCGCCGACGCGACTGCCGTCTATACTGCGCATACGGC')
gmm_predictions = gmm.predict( np.array(seq) )

рддреНрд░реБрдЯрд┐

TypeError                                 Traceback (most recent call last)
<ipython-input-1-8becbf5be0a3> in <module>()
      7 
      8 seq = list('CGACTACTGACTACTCGCCGACGCGACTGCCGTCTATACTGCGCATACGGC')
----> 9 gmm_predictions = gmm.predict( np.array(seq) )

pomegranate/bayes.pyx in pomegranate.bayes.BayesModel.predict()

TypeError: object of type 'numpy.float64' has no len()

рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд░рд╡рд┐рд╡рд╛рд░ рдХреА рдорд╕реНрддреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git bisect рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХрдм рд╢реБрд░реВ рд╣реБрдЖред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓реА рдФрд░ рдирд┐рдореНрди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╡рд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ ред

рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рд╣реИрдВ:
bisect.bash.txt
Makefile.txt

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд░рд╡рд┐рд╡рд╛рд░ рдХреА рдорд╕реНрддреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП git bisect рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдХрдм рд╢реБрд░реВ рд╣реБрдЖред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓реА рдФрд░ рдирд┐рдореНрди рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╡рд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ ред

рдпрд╣рд╛рдБ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рд╣реИрдВ:
bisect.bash.txt
Makefile.txt

рдЙрд╕ рд░реЗрдЦрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдЬрд╣рд╛рдВ рд╕реЗ рддреНрд░реБрдЯрд┐ рдЖ рд░рд╣реА рд╣реИ:

In [8]: try: gmm_predictions = gmm.predict( np.array(seq) )
   ...: except:
   ...:     import traceback
   ...:     traceback.print_exc()
   ...:     
Traceback (most recent call last):
  File "<ipython-input-8-88c80acd3363>", line 1, in <module>
    try: gmm_predictions = gmm.predict( np.array(seq) )
  File "pomegranate/bayes.pyx", line 425, in pomegranate.bayes.BayesModel.predict
TypeError: object of type 'numpy.float64' has no len()


рдпрд╣рд╛рдБ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ: https://github.com/jmschrei/pomegranate/blob/master/pomegranate/bayes.pyx#L425

рдХреЛрдб рдХрд╣рддрд╛ рд╣реИ:

        if not self.is_vl_:
            X_ndarray = _check_input(X, self.keymap)
            X_ptr = <double*> X_ndarray.data
========>       n, d = len(X_ndarray), len(X_ndarray[0])   ## <===== here is the error
            if d != self.d:
                raise ValueError("sample only has {} dimensions but should have {} dimensions".format(d, self.d))
        else:
            X_ndarray = X
            n, d = len(X_ndarray), self.d

n, d = len(X_ndarray), len(X_ndarray[0]) рдХреЛ . рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛

n = len(X_ndarray)
d = len(X_ndarray[0])

рд▓рд╛рдЗрди рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ X_ndarray рдПрдХ рдЖрдпрд╛рдореА рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдпрд╣ рддреНрд░реБрдЯрд┐ len(X_ndarray[0]) . рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рд╣реИ:

https://github.com/jmschrei/pomegranate/blob/5652aa44bae7442a1d42f60424128ea8356266d7/pomegranate/bayes.pyx#L208

рд╢рд╛рдпрдж рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рдХреБрдЫ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:

https://github.com/jmschrei/pomegranate/blob/5652aa44bae7442a1d42f60424128ea8356266d7/pomegranate/utils.pyx#L309

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХрд░рддреЗ рд╣реИрдВ:

keymap = [{key: i for i, key in enumerate(set(functools.reduce(lambda x, y: x+y, [d.keys() for d in gmm.distributions])))}]

print(keymap)
[{'A': 0, 'C': 1, 'T': 2, 'G': 3}]


a = utils._check_input(np.array(seq), keymap)

a.shape
Out[17]: (51,)

print(a)
[ 1.  3.  0.  1.  2.  0.  1.  2.  3.  0.  1.  2.  0.  1.  2.  1.  3.  1.
  1.  3.  0.  1.  3.  1.  3.  0.  1.  2.  3.  1.  1.  3.  2.  1.  2.  0.
  2.  0.  1.  2.  3.  1.  3.  1.  0.  2.  0.  1.  3.  3.  1.]

рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдорд┐рд▓ рд░рд╣реА рд╣реИред

@jmschrei рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдмреНрд░реЗрдХ рд▓реЗ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЕрдм рд╡рд╛рдкрд╕ рдЖ рдЧрдпрд╛ рд╣реВрдВред

рдореИрдВрдиреЗ 1D рд╕рд░рдгреА рдХреЛ utils.pyx рдлрд╝рд╛рдЗрд▓ рдореЗрдВ 2D рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдЕрдм рдореЗрд░реА рдорд╢реАрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

MetaDev picture MetaDev  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jonmmease picture jonmmease  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

williamCorrea picture williamCorrea  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xkortex picture xkortex  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

adamnovak picture adamnovak  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ