Точность прорисовки, тренировка и прогресс тестирования с помощью Pipleline - PullRequest
0 голосов
/ 16 марта 2020

Я разрабатываю модель калькуляции текста для классификации сообщений на спам / ветчину и хотел бы представить график обучения и прогресса тестирования моей модели. Я использую Pipleline, предоставленный scikit learn:

from sklearn.pipeline import Pipeline

Затем я импортировал модель пиплелина и начал процедуру обучения:

text_clf = Pipeline([('tfidf', TfidfVectorizer()),
                     ('clf', LinearSVC()),
])


text_clf.fit(X_train, y_train)  

Теперь я хочу представить график прогресса, как Модель была обучена, например, показала улучшение точности или прогресс обучения в Generell.

Но я не знаю, как решить эту проблему.

Я уже проверил этот пост здесь: Керас - Обучение, валидация и точность набора тестов

Есть код, который может быть полезен:

import keras
from matplotlib import pyplot as plt
history = model1.fit(train_x, train_y,validation_split = 0.1, epochs=50, batch_size=4)
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()

Итак, я изменил код немного в:

history = text_clf.fit(X_train, y_train,validation_split = 0.1, epochs=50, batch_size=4)
plt.plot(history.history['acc'])
plt.plot(history.history['val_acc'])
plt.title('model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()

Но, к сожалению, я получил следующее сообщение об ошибке:

ValueError                                Traceback (most recent call last)
<ipython-input-46-59ac1bc1f4fa> in <module>
----> 1 history = text_clf.fit(X_train, y_train,validation_split = 0.1, epochs=50, batch_size=4)
      2 plt.plot(history.history['acc'])
      3 plt.plot(history.history['val_acc'])
      4 plt.title('model accuracy')
      5 plt.ylabel('accuracy')

~\Anaconda3\envs\abc\lib\site-packages\sklearn\pipeline.py in fit(self, X, y, **fit_params)
    348             This estimator
    349         """
--> 350         Xt, fit_params = self._fit(X, y, **fit_params)
    351         with _print_elapsed_time('Pipeline',
    352                                  self._log_message(len(self.steps) - 1)):

~\Anaconda3\envs\abc\lib\site-packages\sklearn\pipeline.py in _fit(self, X, y, **fit_params)
    278                     "pipeline using the stepname__parameter format, e.g. "
    279                     "`Pipeline.fit(X, y, logisticregression__sample_weight"
--> 280                     "=sample_weight)`.".format(pname))
    281             step, param = pname.split('__', 1)
    282             fit_params_steps[step][param] = pval

ValueError: Pipeline.fit does not accept the validation_split parameter. You can pass parameters to specific steps of your pipeline using the stepname__parameter format, e.g. `Pipeline.fit(X, y, logisticregression__sample_weight=sample_weight)`.

Так что теперь я не знаю, как решить эту проблему. Пожалуйста, помогите мне, потому что мне это нужно для моих последних экзаменов: (

Wi sh вам всего наилучшего!

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...