Обученная регрессионная модель Keras предсказывает один и тот же результат для всех наборов тестовых функций - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь построить регрессионную модель, которая прогнозирует «рейтинги» для фильмов с использованием набора данных https://www.kaggle.com/shubhammehta21/movie-lens-small-latest-dataset. Однако после обучения модели прогнозы выдают одинаковое значение для всех тестовых функций. Я читал предыдущие подобные функции, которые предлагали скорректировать скорость обучения, нет. функций и проверки того, что модель предсказания такая же, как обученная модель. Ничто из этого не помогло мне.

Я загружаю данные и обрабатываю их:

links= pd.read_csv('../input/movie-lens-small-latest-dataset/links.csv')
movies=pd.read_csv('../input/movie-lens-small-latest-dataset/movies.csv')
...

dataset=movies.merge(ratings,on='movieId').merge(tags,on='movieId').merge(links,on='movieId')

to_drop='title','genres','timestamp_x','timestamp_y','userId_y','imdbId','tmdbId']

dataset.drop(columns=to_drop,inplace=True)

dataset=pd.get_dummies(dataset)

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

3.97

для всех значений. Я ожидаю диапазон значений от 0 до 5.

1 Ответ

0 голосов
/ 02 октября 2019

Вы никогда не должны (я имею в виду, никогда ) использовать kernel_initializer='zero' - если честно, я удивлен, что опция даже существует в Keras!

Также kernel_initializer='normal' - этоне рекомендуется.

В качестве первого шага удалите все kernel_initializer аргументы, чтобы вернуться к по умолчанию и рекомендованному, kernel_initializer='glorot-uniform';имейте в виду, что значения по умолчанию существуют по какой-то причине (обычно они работают хорошо), и вы должны изменить их только в том случае, если у вас действительно есть причина для этого (которую, я надеюсь, у вас нет здесь), иВы знаете, что делаете.

Если вы все еще не получили того, что ожидали, поэкспериментируйте с другими параметрами (количество слоев / нейронов, больше эпох и т. д.);Вы должны оставить скорость обучения (lr) оптимизатора Adam такой же, как для начинающих (это также одно из этих значений по умолчанию, которое, похоже, хорошо работает для всех случаев).

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