gpt4 book ai didi

Python KNeighbors 分类器

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:55 26 4
gpt4 key购买 nike

我在使用 sklearn.neighborsKNeighborsClassifier 时遇到了一些问题

我有一个巨大的电影评分文件,其中每一行代表一个用户,每一列代表一部电影。

我想根据他评价过的电影和其他用户的评价向他推荐一部电影(他还没有看过)。

我试过:

    model = KNeighborsClassifier(n_neighbors=3)
model.fit(user_rated, others_rated)
suggestList = model.predict_proba(others_unrated)

user_rated 是( float )评级列表others_rated 是 2d 列表,具有相同的电影评级用户已评级,但由不同的用户others_unrated 是二维列表,其中包含当前用户尚未观看的其他用户对电影的评分

我认为问题在于,因为 others_rated 是二维列表,但如果我只将它与其他用户进行比较(使用 others_rated[user_num]),我将一事无成。使用 model.predict_proba(others_unrated) 如果仅为一个或多个用户插入,我会得到同样的错误,Incompatible dimension for X and Y matrices

有什么建议吗?

最佳答案

我不确定你希望完成什么,但让我推断一些事情。

  • 首先,others_rated 是 N_movies_rated_by_this_user 长度的 float 列表的 N_users 长度列表。
  • 其次,others_unrated 是 N_movies_not_rated_by_this_user 长度的 float 列表的 N_users 长度列表。

根据这些陈述,在无法访问您的数据文件/数组的情况下,我猜这是您尝试做的正确事情:

import numpy as np
model = KNeighborsClassifier(n_neighbors=3)
model.fit( np.transpose(others_rated),user_rated)
suggestList = model.predict_proba(np.transpose(others_unrated))

我所做的两个更改如下:首先,我几乎可以肯定您在调用 .fit() 时必须交换 X 和 y。如果你不这样做,你的问题就太糟糕了(在数学上)它几乎肯定会失败:你正在尝试训练一个模型来从一个向量中预测一个矩阵(从不多的信息中预测大量的信息)。

其次,按照您提出问题的方式,n_users 应该是 维度。这是唯一在数学上有意义的事情。调用KNeighborsClassifier.predict_proba(X)时X的列数必须与之前调用KNeighborsClassifier.fit(X,y)时X的列数相同>.

关于Python KNeighbors 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30739262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com