Я пытался реализовать статью, которую прочитал. В основном он использует 3 классификатора нейронной сети с разными параметрами для работы с одними и теми же данными кредита по умолчанию с 9 различными коэффициентами обучения и тестирования.
Чтобы найти наилучший параметр, мы используем следующий критерий, когда (1) max_iteration=25000
и (2) значение убытка меньше 0,008, мы измеряем значение точности и выбираем лучшее.
Однако, когда я пытаюсь использовать python sklearnsklearn.neural_network.MLPClassifier
, чтобы закончить это, я столкнулся с проблемой. Когда отношение обучения к тесту увеличивается, время итерации программы резко сокращается. Между тем, величина потерь увеличивается,
Таблица характеристик классификатора .
Это явно не то, что я хочу, итерационное число должно продолжать расти до 25000 до остановки.
Вот как я определил классификатор:
clf1= MLPClassifier(activation='relu',solver='sgd',early_stopping=False,alpha=1e-5,max_iter=25000,\
hidden_layer_sizes=(18),momentum=0.7,learning_rate_init=0.0081,tol=0,random_state=3)
clf2= MLPClassifier(activation='relu',early_stopping=False,solver='sgd',alpha=1e-5,max_iter=25000,\
hidden_layer_sizes=(23),momentum=0.69,learning_rate_init=0.0095,tol=0,random_state=3)
clf3= MLPClassifier(activation='relu',early_stopping=False,solver='sgd',alpha=1e-5,max_iter=25000,\
hidden_layer_sizes=(27),momentum=0.79,learning_rate_init=0.0075,tol=0,random_state=3)
Как видите, я уже установил Tolerance=0
, так что каждый раз, когда мы выполняем итерацию, он, несомненно, может уменьшить потери. И я пробовал другое значение, но все же число итераций намного меньше, чем я ожидал.
Надеюсь, кто-нибудь может мне помочь, спасибо!