Точная настройка точности модели MLPClassifier на 20000 образцов - PullRequest
0 голосов
/ 16 февраля 2019

Вход: 50 глубоких черт голоса

размер: 20000+ сэмплов

решатель: адам

классы вывода: 10 (цифры от 0 до 9)

скрытых слоев и нейронов: 3 и 100,100,100

Код:

X_train, X_test, y_train, y_test = train_test_split(Combineddatafeatures,
Combineddatalabels, test_size=0.1, random_state=1)

clf = MLPClassifier(solver='adam',hidden_layer_sizes=(100,100,100))

clf.fit(np.array(X_train), np.array(y_train)) 

predicted_values = clf.predict(X_test)

from sklearn.metrics import accuracy_score
score = accuracy_score(y_test,predicted_values)

print(score)

Текущая точность: 0.5693142575234337

Как повысить точность выборок (20262, форма 50) (?) Путем тонкой настройки

  1. Количество скрытых слоев
  2. Нейроны в скрытых слоях

1 Ответ

0 голосов
/ 16 февраля 2019

Один из способов настройки параметров - использовать метод sklearn GridSearchCV: link

Он проверит всю комбинацию параметров, которую вы передадите, и выдаст наилучшую.

from sklearn.model_selection import GridSearchCV

X_train, X_test, y_train, y_test = train_test_split(Combineddatafeatures,
Combineddatalabels, test_size=0.1, random_state=1)

clf = MLPClassifier(solver='adam',hidden_layer_sizes=(100,100,100))

params = {
    'hidden_layer_sizes' : [(100, 100, 100), (125, 125, 125)] # Every combination you want to try
}

gscv = GridSearchCV(clf, params, verbose=1)

gscv.fit(np.array(X_train), np.array(y_train))
print(gscv.best_params_) 

predicted_values = gscv.predict(X_test)

from sklearn.metrics import accuracy_score
score = accuracy_score(y_test,predicted_values)

print(score)
...