Я обучил классификатор SVM, используя sklearn.svm.SVC
, и сохранил веса (коэффициенты).Затем я загрузил их и попытался внедрить их в новый экземпляр 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"