我有一个要打开的泡菜文件。我正在使用python3。
import pickle
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
age = pickle.loads(open('/home/ubuntu/Downloads/agele.cpickle','rb').read()
最后一行向我警告:
usr/local/lib/python3.6/dist-packages/sklearn/base.py:251: UserWarning: Trying to unpickle estimator LabelEncoder from version 0.18 when using version 0.20.1. This might lead to breaking code or invalid results. Use at your own risk.
UserWarning)
age.classes_
按如下所示打印数组:
array([b'0_2', b'15_20', b'25_32', b'38_43', b'48_53', b'4_6', b'60_inf',
b'8_13'], dtype='|S6')
我正在尝试从此数组中提取值。以下是我后来遇到的错误。
le.inverse_transform(age)
sklearn.exceptions.NotFittedError: This LabelEncoder instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
ag=le.fit_transform(age)
ValueError: bad input shape ()
答案 0 :(得分:1)
数组值是utf-8编码的字节 要从数组中提取值,您可以尝试如下操作;
age_classes = []
for i in age.classes_ :
age_classes.append(i.decode('utf-8'))
答案 1 :(得分:0)
注意,这是来自sklearn
的警告,而不是来自泡菜的警告。
版本0.20.1
中有一些重大更改,这意味着它与某些其他版本不向后兼容。
此错误让您知道正在加载的对象来自旧版本,这意味着它可能与您正在运行的版本不兼容。
您可以阅读changelog并查看更改的内容。