Scikits-Learn RandomForrest trained on 64bit python wont open on 32bit python

machine-learning, scikit-learn

Solution

This occurs because the random forest code uses different types for indices on 32-bit and 64-bit machines. This can, unfortunately, only be fixed by overhauling the random forests code. Since several scikit-learn devs are working on that anyway, I put it on the todo list.

For now, the training and testing machines need to have the same pointer size.

Problem

I train a RandomForestRegressor model on 64bit python. I pickle the object. When trying to unpickle the object on 32bit python I get the following error: 'ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long'' I really have no idea how to fix this, so any help would be hugely appreciated. Edit: more detail ``` Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\python27\lib\pickle.py", line 1378, in load return Unpickler(file).load() File "c:\python27\lib\pickle.py", line 858, in load dispatch[key](self) File "c:\python27\lib\pickle.py", line 1133, in load_reduce value = func(*args) File "_tree.pyx", line 1282, in sklearn.tree._tree.Tree.__cinit__ (sklearn\tre e\_tree.c:10389) ```

Original source