slp-ntua / patrec-labs

Helper scripts for Pattern Recognition NTUA Course
10 stars 20 forks source link

2o Lab - Απορία #166

Closed NickSpanos55 closed 1 year ago

NickSpanos55 commented 1 year ago

Καλησπέρα σας. Στα runs του MutltivariateGaussianDistribution παρουσιάζεται το εξής error από το pomegranate:

LinAlgError: 6-th leading minor of the array is not positive definite

During handling of the above exception, another exception occurred:

UFuncTypeError Traceback (most recent call last) ~\anaconda3\envs\ptr\lib\site-packages\pomegranate\bayes.pyx in pomegranate.bayes.BayesModel.from_summaries()

~\anaconda3\envs\ptr\lib\site-packages\pomegranate\distributions\MultivariateGaussianDistribution.pyx in pomegranate.distributions.MultivariateGaussianDistribution.MultivariateGaussianDistribution.from_summaries()

UFuncTypeError: Cannot cast ufunc 'subtract' output from dtype('complex128') to dtype('float64') with casting rule 'same_kind'

Σε ορισμένα runs λειτουργεί κανονικά, άλλες φορές όχι και δεν έχουμε βρει στο documentation κάποια λύση. Σας ευχαριστούμε για όποια βοήθεια.

georgepar commented 1 year ago

Δείτε και εδω https://github.com/slp-ntua/patrec-labs/issues/43

Κάποια επιπλέον βήματα που μπορείτε να δείτε για αυτό το θέμα είναι:

  1. Ελέγξτε βερσιόν βιβλιοθηκών (πχ numpy)
  2. Χρησιμοποιήστε λιγότερα mixtures στο gmm / states στο hmm
  3. Βεβαιωθείτε ότι η μικρότερη ακολουθια έχει μήκος μεγαλύτερο από τον αριθμό των καταστάσεων του hmm (πχ αν έχει 3 καταστάσεις το hmm φιλτράρετε ακόλουθιες με μήκος 1 και 2)
  4. Δοκιμάστε με διαγώνιο gmm
def create_mixture_diag_covar(n_mix, dim_feature):
    """diag covar mixture"""
    mixtures = [pomegranate.distributions.IndependentComponentsDistribution(multivariate_gaussian_distribution_diag(i, dim_feature)) for i in range(n_mix)]
    return mixtures