0

У меня есть объект Pipeline, который я хочу поместить в разные комбинации учебных и тестовых меток и, таким образом, используя объекты fit, создайте разные прогнозы. Но я считаю, что fit, используя тот же объект классификатора, избавляется от предыдущих fit объектов.Повторное использование объекта регрессии логистики для разных моделей модели

Пример моего кода:

text_clf = Pipeline([('vect', CountVectorizer(analyzer="word",tokenizer=None,preprocessor=None,stop_words=None,max_features=5000)), 
          ('tfidf', TfidfTransformer(use_idf=True,norm='l2',sublinear_tf=True)), 
          ('clf',LogisticRegression(solver='newton-cg',class_weight='balanced', multi_class='multinomial',fit_intercept=True), 
         )]) 

    print "Fitting the open multinomial BoW logistic regression model for probability models...\n" 
    open_multi_logit_words = text_clf.fit(train_wordlist, train_property_labels) 

    print "Fitting the open multinomial BoW logistic regression model w/ ",threshold," MAPE threshold...\n" 
    open_multi_logit_threshold_words = (text_clf.copy.deepcopy()).fit(train_wordlist, train_property_labels_threshold) 

Однако объекты классификаторов не deepcopy() методы. Как я могу достичь того, что мне нужно, не указывая:

text_clf_open_multi_logit = Pipeline([('vect', CountVectorizer(analyzer="word",tokenizer=None,preprocessor=None,stop_words=None,max_features=5000)), 
           ('tfidf', TfidfTransformer(use_idf=True,norm='l2',sublinear_tf=True)), 
           ('clf',LogisticRegression(solver='newton-cg',class_weight='balanced', multi_class='multinomial',fit_intercept=True), 
          )]) 

Для всех моих 16 классификационных комбинаций?

ответ

1

Я хотел бы попробовать

text_clf0=copy.deepcopy(text_clf) 
open_multi_logit_threshold_words = text_clf0.fit(train_wordlist, train_property_labels_threshold) 

EDIT: Вы можете использовать список

text_clf_list=[copy.deepcopy(text_clf) for _ in range(16)] 

или непосредственно

copy.deepcopy(text_c‌​lf).fit(train_wordlis‌​t, train_property_label‌​s_threshold) 
+0

Вот что я точно не хочу делать. Потому что мне нужно скопировать эту строку для моделей с 16 + :) –

+0

И использовать 1,2,3 и т. Д. –

+0

это так, опубликовать свою трассу – marmouset