我对来自sklearn.neighbors
的KNeighborsClassifier
有点问题
我有一个巨大的电影分级文件,每一行代表一个用户,每一列代表一部电影。在
我想建议一部电影(他还没有看)给一个用户的基础上,他已经评级的电影和其他用户的评级。在
我试过了:
model = KNeighborsClassifier(n_neighbors=3)
model.fit(user_rated, others_rated)
suggestList = model.predict_proba(others_unrated)
用户评级是(浮动)评级列表 其他人的评级是2d名单与相同的电影评级用户已评级,但由不同的用户 others_unrated是一个2d列表,包含当前用户尚未观看的其他用户的电影分级
我认为问题是,因为其他人的评级是2D list,但如果我只将其与另一个用户(使用others_rated[user_num]
)进行比较,我将一事无成。
使用model.predict_proba(others_unrated)
时,如果只为一个或多个用户插入,Incompatible dimension for X and Y matrices
,我会得到相同的错误。在
有什么建议吗?在
我不确定你希望完成什么,但让我推断几件事。在
从这些语句中,并且在没有访问数据文件/数组的情况下,我想这是您正在尝试执行的正确操作:
我所做的两个更改如下:首先,我几乎可以确定在调用
.fit()
时必须交换X和y。如果你不这样做,你的问题是如此糟糕(数学上),它几乎肯定会失败:你试图训练一个模型,从向量预测矩阵(从不太多的信息中预测大量信息)。在第二,你提出问题的方式,n用户应该是列维。这是唯一在数学上有意义的东西。调用
KNeighborsClassifier.predict_proba(X)
时的列数X必须与上一次调用KNeighborsClassifier.fit(X,y)
时X中的列数相同。在相关问题 更多 >
编程相关推荐