如何将现有系数加载到 sklearn SVM 分类器中?
How to load existing coefficients into sklearn SVM classifier?
我使用 sklearn.svm.SVC
训练了一个 SVM 分类器,并存储了权重(系数)。然后我加载它们并尝试将它们注入到 sklearn.svm.SVC
的新实例中,但无法做到,因为属性 coef_
似乎是只读的..
from sklearn import svm
import pickle
modelSVM = svm.SVC(kernel='linear')
weights = pickle.load(open(weights_path, 'rb'))
modelSVM.coef_ = weights
我希望有一个模型将我加载的权重作为新系数,但我收到此消息:
AttributeError: 'SVC' object has no attribute 'dual_coef_'
这可能是因为 coef_
不是分类器所需的唯一字段。所以我尝试在注入权重之前训练然后克隆分类器:
modelSVM.fit(X, labels)
modelSVM = clone(modelSVM)
modelSVM.coef_ = weights
它给出了输出:
"Exception has occurred: AttributeError
can't set attribute"
而不是加载权重,正如@Mechanic在评论中指出的那样,这是不可能的。您可以尝试保存模型并加载模型。请参考this link.
我使用 sklearn.svm.SVC
训练了一个 SVM 分类器,并存储了权重(系数)。然后我加载它们并尝试将它们注入到 sklearn.svm.SVC
的新实例中,但无法做到,因为属性 coef_
似乎是只读的..
from sklearn import svm
import pickle
modelSVM = svm.SVC(kernel='linear')
weights = pickle.load(open(weights_path, 'rb'))
modelSVM.coef_ = weights
我希望有一个模型将我加载的权重作为新系数,但我收到此消息:
AttributeError: 'SVC' object has no attribute 'dual_coef_'
这可能是因为 coef_
不是分类器所需的唯一字段。所以我尝试在注入权重之前训练然后克隆分类器:
modelSVM.fit(X, labels)
modelSVM = clone(modelSVM)
modelSVM.coef_ = weights
它给出了输出:
"Exception has occurred: AttributeError
can't set attribute"
而不是加载权重,正如@Mechanic在评论中指出的那样,这是不可能的。您可以尝试保存模型并加载模型。请参考this link.