MLP-классификатор с warm_Start= True сходится на одной итерации

#python #scikit-learn

#python #scikit-learn

Вопрос:

Я использую MLPClassifier от scikit learn со следующими параметрами

 mlp = MLPClassifier(hidden_layer_sizes=(3,2,),solver='sgd', verbose=True,
              learning_rate='constant',learning_rate_init=0.001, random_state=rr, 
              warm_start=True, max_iter=400, n_iter_no_change=20)
  

Я хочу подогнать свой классификатор к разным, но очень похожим данным и посмотреть, сколько времени требуется NN для сходимости.

Я сгенерировал очень простой набор данных. Это набор данных из 50 000 точек (x, y), и цвета обозначают, как я классифицировал точки.

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

 mlp.fit(new_data, new_data_labels)
  

где new_data = мои старые данные новый набор данных для каждого из графиков.

Это работает нормально, однако, когда я подгоняю свой классификатор к моему новому, большему набору данных, он сходится на одной итерации. Кажется, что независимо от того, как я изменяю свои данные, мой классификатор сразу же покрывает, но мой график потерь выглядит ужасно. Я не слишком уверен, где я ошибаюсь.

Мой вывод выглядит следующим образом

 Iteration 134, loss = 0.55557070
Iteration 135, loss = 0.55550839
Training loss did not improve more than tol=0.000100 for 20 consecutive epochs. Stopping.
Training set score: 0.663680
Training set loss: 0.555508
Iteration 136, loss = 0.56689723
Training loss did not improve more than tol=0.000100 for 20 consecutive epochs. Stopping.
Training set score: 0.643810
Training set loss: 0.566897
Iteration 137, loss = 0.57723775
Training loss did not improve more than tol=0.000100 for 20 consecutive epochs. Stopping.
Training set score: 0.624447
Training set loss: 0.577238
Iteration 138, loss = 0.58684895
Training loss did not improve more than tol=0.000100 for 20 consecutive epochs. Stopping.
  

Комментарии:

1. Я считаю, что упрощенный, но полный код был бы полезен

Ответ №1:

Вы можете использовать mlp.loss_curve_ для получения кривой потерь модели.