2015-09-21 2 views
4

Я обучил модель в scikit-learn с использованием Cross-Validation и Naive Bayes классификатора. Как я могу продолжать эту модель, чтобы позже работать с новыми экземплярами?Сохранение модели перекрестной проверки в Scikit

Вот просто то, что у меня есть, я могу получить CV баллы, но я не знаю, как получить доступ к обученной модели

gnb = GaussianNB() 
scores = cross_validation.cross_val_score(gnb, data_numpy[0],data_numpy[1], cv=10) 

ответ

5

cross_val_score не меняет свой оценщик, и не будет обратно установленная оценка. Он просто возвращает оценку оценки перекрестной проверки.

Чтобы соответствовать вашей оценке - вы должны явно называть ее явно предоставленным набором данных. Чтобы сохранить (Serialize) - вы можете использовать рассол:

# To fit your estimator 
gnb.fit(data_numpy[0], data_numpy[1]) 
# To serialize 
import pickle 
with open('our_estimator.pkl', 'wb') as fid: 
    pickle.dump(gnb, fid) 
# To deserialize estimator later 
with open('our_estimator.pkl', 'rb') as fid: 
    gnb = pickle.load(fid) 
+0

Я хочу, чтобы соответствовать оценщик с помощью перекрестной проверки, я имею в виду для расчета параметров с помощью перекрестной проверки. Итак, как я могу это сделать? – Ali

+2

@alivar, CV подходит для разных классификаторов на разных подмножествах набора данных, а затем усредняет их баллы. Вот почему нет такого понятия, как установка оценки с cross_validation. В принципе, вы должны просто поместить оценку в полный набор данных. Если вы хотите найти гиперпараметры для оценки - посмотрите на [GridSearchCV] (http://scikit-learn.org/stable/modules/generated/sklearn.grid_search.GridSearchCV.html#sklearn.grid_search.GridSearchCV) –

+0

GridSearchCV был отлично, но после тренировки я не могу найти векторы тета и сигмы. BTE позвольте мне объяснить мою проблему снова, чтобы у вас могло быть лучшее решение для меня или исправить меня. У меня есть набор данных с помеченными экземплярами, которые я могу использовать для обучения классификатора, тогда мне нужно запустить классификатор в новых экземплярах, для которых я не знаю истинную категорию класса. Теперь меня беспокоит то, что если я просто тренирую GaussianNB, используя помеченный набор данных, я не уверен, что он дает мне классификатор с той же точностью, который при использовании CV я получаю. Имеет ли это смысл? – Ali

Смежные вопросы