saving a KernelDensity estimator
See original GitHub issueHi!
I noticed that after saving a sklearn.neighbors.KernelDensity()
using joblib.dump
, restauring it using joblib.load
does not result in a usable estimator. I notice that before reload, the estimator’s .tree_
is a sklearn.neighbors.kd_tree.KDTree
whereas after it is a sklearn.neighbors.kd_tree.BinaryTree
… is this normal behaviour ? Or am I doing something wrong ?
Many thanks,
A
Example code:
import numpy as np
from sklearn.neighbors import KernelDensity
kde = KernelDensity()
data = np.reshape([1., 2., 3.], (-1, 1))
kde.fit(data)
here kde estimator can be used:
print(kde.score_samples(np.reshape([1.1, 2.1], (-1, 1))))
array([-1.4151691 , -1.22543484])
print(kde.tree_)
<sklearn.neighbors.kd_tree.KDTree object at 0x564e7375d158>
whereas after reloading:
from sklearn.externals import joblib
joblib.dump(kde, './test_kde.pkl')
kde = joblib.load('./test_kde.pkl')
kde.score_samples(np.reshape([1.1, 2.1], (-1, 1)))
/home/asors/miniconda3/envs/mrpt/lib/python3.6/site-packages/sklearn/neighbors/kde.py:176: RuntimeWarning: divide by zero encountered in log log_density -= np.log(N) /home/asors/miniconda3/envs/mrpt/lib/python3.6/site-packages/sklearn/neighbors/kde.py:176: RuntimeWarning: invalid value encountered in subtract log_density -= np.log(N) array([nan, nan])
print(kde.tree_)
<sklearn.neighbors.kd_tree.BinaryTree object at 0x564e73763258>
Issue Analytics
- State:
- Created 5 years ago
- Comments:6 (4 by maintainers)
I’ll try to investigate what’s going on
Please open another issue with the whole minimal reproducible example