AzureML: "Train Matchbox Recommender" не работает и не описывает ошибку
Я пытался создать свой собственный эксперимент, используя модуль, но не смог заставить его работать. вот исключение, которое я получил:
Ошибка 0018: Набор обучающих данных троек рейтинга элементов пользователя содержит недопустимые данные. [Critical] {"InputParameters":{"DataTable":[{"Rows":14,"Columns":3,"valuesSize":12668928,"ColumnTypes":{"System.String":1,"System.Int32":1,"System.Double":1},"IsComplete": правда," Статистика ":{"0":[10,0],"1":[5422.0,5999.0,873.0,6616.0,1758.0582820478173,7.0,0,0],"2":[1.0,1.0,1.0,1.0,0.0,1.0,0.0]}},{"Ряды": 2338, "Колонна":3,"estimatedSize":1404928,"ColumnTypes":{"System.String":1,"System.Int32":1,"System.Double":1},"IsComplete": правда, "Статистика":{"0":[2338,0],"1":[7.5367835757057318,3.0,0.0,704.0,17.738259318519511,64.0,0.0],"2":[3.3737234816082085,1.5,0.0,352.0,8.3956874404883841,122.0,0.0]}},{"Ряды": 2532, "Колонна":22,"estimatedSize":4648960,"ColumnTypes":{"System.Int32":10,"System.String":5,"System.Double":6,"System.Boolean":1},"IsComplete": истинная, "Статистика":{"0":[4575.7263033175359,5326.5,539.0,6871.0,1987.9561375024909,2532.0,0.0],"1":[4575.7263033175359,5326.5,539.0,6871.0,1987.9561375024909,2532.0,0.0],"2":[613.0,613.0,613.0,613.0,0.0,1.0,0.0],"3":[0,2532],"4":[0,2532],"5":[4575,7263033175359,5326.5,539.0,6871.0,1987.9561375024909,2532.0,0.0],"6":[23.647231437598673,19.99,1.99,149.99,17.237723488320938,90.0,0.0],"7":[0.043827014218009476,0.0,0.0,45.99,1.3460680431173562,3.0,0.0],"8":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"9":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"10":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"11":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"12":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"13":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"14":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"15":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"16":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"17":[0.0,0.0,0.0,0.0,0.0,1.0,0.0],"18":[2524,0],"19":[242,18],"20":[1,0],"21":[2524,0]}}],"Родовой ":{"traitCount":10,"iterationCount":5,"batchCount":4}},"OutputParameters":[],"ModuleType":"Microsoft.Analytics.Modules.MatchboxRecommender.Dll","ModuleVersion":"Версия =6.0.0.0","AdditionalModuleInfo":"Microsoft.Analytics.Modules.MatchboxRecommender.Dll, версия =6.0.0.0, культура = нейтральная, PublicKeyToken=69c3241e6f0468ca;Microsoft.Analytics.Modules.MatchboxRecommender.Dll.MatchboxRec" ommender;Train","Errors":"Microsoft.Analytics.Exceptions.ErrorMapping+ModuleException: ошибка 0018: обучающий набор данных троек с оценками элементов пользователя содержит недопустимые данные.\r\n в Microsoft.Analytics.Modules.MatchboxRecommender.Dll.Utilities.UpdateRatingMetadata(набор данных DataTable, имя строки String) в d:\_Bld\8833\7669\Sources\Product\Source\Modules\MatchboxRecommender.Dll\Utilities.cs: строка 179\r\n в Microsoft.Analytics.Modules. MatchboxRecommender.Dll. cs:line 62","Warnings":[],"Duration":"00:00:00.6722068"} Модуль завершил работу после 00:00: 01.1250071 с кодом выхода -2 Модуль не выполнен из-за отрицательного кода выхода - 2
я проверил входные данные, которые я устанавливаю в качестве входной пользовательской таблицы рейтинга мест, запись за записью (не беспокойтесь, это всего лишь 14 записей) вот оно:
так как сообщение об ошибке не очень информативно, я не знаю, с чего начать, поэтому, если у кого-то есть идея, я был бы рад услышать об этом.
Обновление: мой друг предложил добавить модуль "Редактировать метаданные", чтобы изменить функцию "рейтинг" на типы "int" или "float", а два других (placeID и userID) на строковые функции. это тоже не помогло.
1 ответ
Рекомендатель спичечных коробок требует, чтобы оценки были числовыми или категориальными. Кроме того, во время тренировок ваши оценки не могут быть одинаковыми.
Вам нужно использовать редактор метаданных https://msdn.microsoft.com/en-us/library/azure/dn905986.aspx чтобы преобразовать оценки в числовые функции, и вам нужно убедиться, что вы используете диапазон оценок.
Тогда это должно работать!