#python #scipy
#python #scipy
Вопрос:
Я пытаюсь вычислить расхождение KL, используя функцию энтропии scipy. https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.entropy.html
from scipy.stats import entropy
data_a = np.array([176,489,7])
data_b = np.array([84,86,47,18,99,26,50,53,76,27])
entropy(data_a, data_b)
Я получил следующую ошибку. Как мне следует поступить?
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-7-d8fef5634e56> in <module>
----> 1 en = entropy(data_real, data_crowd)
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/scipy/stats/_distn_infrastructure.py in entropy(pk, qk, base)
2548 qk = asarray(qk)
2549 if len(qk) != len(pk):
-> 2550 raise ValueError("qk and pk must have same length.")
2551 qk = 1.0*qk / np.sum(qk, axis=0)
2552 vec = rel_entr(pk, qk)
ValueError: qk and pk must have same length.
Я использую macOS 10.14.5, python 3.7.2 и scipy 1.2.1.
Комментарии:
1. Возвращаемая ошибка довольно ясна:
data_a
иdata_b
должны иметь одинаковую длину.2. Спасибо за ваш комментарий. Могу ли я рассчитать расхождение KL между двумя наборами данных разной длины?
3. Находятся ли ваши наборы данных в одном и том же диапазоне случайной величины? В противном случае расхождение KL даже не определено
4. Спасибо за вашу информацию. Моими наборами данных являются data_a = np.array([176,489,7]) и data_b = np.array([84,86,47,18,99,26,50,53,76,27]). Я понимаю, что расхождение KL даже не определено.