下面是我的代码:
我有一个features
阵列和一个用于训练model.pkl
的labels
阵列
但当我想在模型中添加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)
我已经读过了。但我的例子似乎不同。
如何每次使用单个样本训练模型
感谢
如果您阅读错误消息,您可以看到传递的一维数组很快将不受支持。相反,你必须确保你的单个样本看起来像一个样本列表,其中只有一个。当处理NumPy数组(推荐使用)时,您可以使用reshape(-1, 1)
,但当您使用列表时,将执行以下操作:
clf = clf.fit([[130, 1]], [0])