首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateML推荐培训错误:推荐模型中的项ID必须编号为0、1、.、num_items -1

CreateML推荐培训错误:推荐模型中的项ID必须编号为0、1、.、num_items -1
EN

Stack Overflow用户
提问于 2020-06-08 20:04:31
回答 2查看 161关注 0票数 4

我使用CreateML生成推荐模型,该模型使用格式为:用户ID、项ID的隐式数据集。数据作为一个具有约400 K行的CSV加载到CreateML中。

当试图“训练”模型时,我会收到以下错误:

代码语言:javascript
复制
Training Error: Item IDs in the recommender model must be numbered 0, 1, ..., num_items - 1

我的数据集格式如下:

代码语言:javascript
复制
"user_id","item_id"
"e7ca1b039bca4f81a33b21acc202df24","f7267c60-6185-11ea-b8dd-0657986dc989"
"1cd4285b19424a94b33ad6637ec1abb2","e643af62-6185-11ea-9d27-0657986dc989"
"1cd4285b19424a94b33ad6637ec1abb2","f2fd13ce-6185-11ea-b210-0657986dc989"
"1cd4285b19424a94b33ad6637ec1abb2","e95864ae-6185-11ea-a254-0657986dc989"
"31042cbfd30c42feb693569c7a2d3f0a","e513a2dc-6185-11ea-9b4c-0657986dc989"
"39e95dbb21854534958d53a0df33cbf2","f27f62c6-6185-11ea-b14c-0657986dc989"
"5c26ca2918264a6bbcffc37de5079f6f","ec080d6c-6185-11ea-a6ca-0657986dc989"

我尝试将项ID和用户ID都修改为枚举ID,但仍然收到了培训错误。示例:

代码语言:javascript
复制
"item_ids","user_ids"
0,0
1,0
2,0
2,0
0,225
400,225
409,225
0,282
0,4
8,4
8,4

无论是在CreateML UI中还是在Swift操场中使用CreateML时,我都会收到这个错误。我还尝试删除重复项,并验证了每个列的最大ID是(num_items - 1)。

我在没有运气的情况下搜索了一组ID的确切要求的文档。

预先感谢您帮助澄清此错误消息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-23 22:54:09

我在WWDC2020期间与苹果的WWDC2020开发人员讨论了这个问题。他们将此描述为一个已知的bug,将与即将发布的操作系统(Big )修复。这个bug的解决方法是:

在CSV数据集中,为与所有项交互的单个用户创建记录,并为所有用户交互的单个项创建记录。

在python中使用熊猫,我基本上实现了以下内容:

代码语言:javascript
复制
# Find the unique item ids
item_ids = ratings_df.item_id.unique()

# Find the unique user ids
user_ids = ratings_df.user_id.unique()

# Create a 'dummy user' which interacts with all items
mock_item_interactions_df = pd.DataFrame({'item_id': item_ids, 'user_id': 'mock-user'})
ratings_with_mocks_df = ratings_df.append(mock_item_interactions_df)

# Create a 'dummy item' which interacts with all users
mock_item_interactions_df = pd.DataFrame({'item_id': 'mock-item', 'user_id': user_ids})
ratings_with_mocks_df = ratings_with_mocks_df.append(mock_item_interactions_df)

# Export the CSV
ratings_with_mocks_df.to_csv('data/ratings-w-mocks.csv', quoting=csv.QUOTE_NONNUMERIC, index=True)

使用这个CSV,我成功地使用CoreML生成了一个CreateML模型。

票数 3
EN

Stack Overflow用户

发布于 2020-06-18 10:53:56

尝试将未命名的第一列添加到csv数据中,该数据从0计数行。项目数-1

喜欢

代码语言:javascript
复制
"","userID","itemID","rating"
0,"a","x",1
1,"a","y",0
...

我想今天在增加这个专栏之后,它开始为我工作了。在我的培训模型中,我将UUID用于userID和itemID。并确保按itemID对行进行排序,以便所有用于一个itemID的行都彼此接近

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62270353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档