这是下面的代码:
我有一个features
数组和一个用于训练labels
的model.pkl
数组
但是,当我想在模型中添加single sample
时,会出现warning
波纹管。
from sklearn import tree
from sklearn.externals import joblib
features = [[140, 1], [130, 1], [150, 0], [170, 0]]
labels = [0, 0, 1, 1]
# Here I train the model with the above arrays
clf = tree.DecisionTreeClassifier()
clf = clf.fit(features, labels)
joblib.dump(clf, 'model.pkl')
# Now I want to train the model with a new single sample
clf = joblib.load('model.pkl')
clf = clf.fit([130, 1], 0) # WARNING MESSAGE HERE!!
这是
warning
: /usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py:386:
DeprecationWarning:
Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19.
Reshape your data either using X.reshape(-1, 1)
if your data has a single feature or X.reshape(1, -1)
if it contains a single sample. DeprecationWarning)
我已经读过this。
但是似乎我的例子是不同的。
如何每次使用一个样本训练模型?
谢谢
最佳答案
如果您阅读错误消息,您会看到很快将不支持传递一维数组。相反,您必须确保单个样本看起来像一个样本列表,其中只有一个。在处理NumPy数组(推荐)时,可以使用reshape(-1, 1)
,但是在使用列表时,将执行以下操作:clf = clf.fit([[130, 1]], [0])