Spark ALS model.transform(test) 从测试中删除行。可能是什么原因?
Spark ALS model.transform(test) drops rows from test. What could be the reason?
test
(table 列:user_id
、item_id
、rating
,6.2M 行)
als = ALS(userCol="user_id",
itemCol="item_id",
ratingCol="rating",
coldStartStrategy="drop",
implicitPrefs=True)
model = als.fit(train)
predictions = model.transform(test)
predictions
(一个 table 列:user_id
、item_id
、rating
、prediction
,但只有 170万行)
为什么 model.transform(test)
删除其余行? user_id
、item_id
组合应该都能计算出预测分数吧?
难道是因为我用过coldStartStrategy="drop"
?
- 但是如果为
test
中的所有 user_id
、item_id
组合计算了评级,则不应删除任何行,是吗?
因为我只使用了coldStartStrategy="drop"
选项。它正在删除与用户和项目对应的行,这些行在训练数据中没有与之对应的交互。
test
(table 列:user_id
、item_id
、rating
,6.2M 行)
als = ALS(userCol="user_id",
itemCol="item_id",
ratingCol="rating",
coldStartStrategy="drop",
implicitPrefs=True)
model = als.fit(train)
predictions = model.transform(test)
predictions
(一个 table 列:user_id
、item_id
、rating
、prediction
,但只有 170万行)
为什么 model.transform(test)
删除其余行? user_id
、item_id
组合应该都能计算出预测分数吧?
难道是因为我用过coldStartStrategy="drop"
?
- 但是如果为
test
中的所有user_id
、item_id
组合计算了评级,则不应删除任何行,是吗?
因为我只使用了coldStartStrategy="drop"
选项。它正在删除与用户和项目对应的行,这些行在训练数据中没有与之对应的交互。