Я разрабатываю модель калькуляции текста для классификации сообщений на спам / ветчину и хотел бы представить график обучения и прогресса тестирования моей модели. Я использую 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 вам всего наилучшего!
С уважением