运行到子函数时提示报错:

 ===

这个断点一步步debug下来是顺利的,但是咋就超出数组范围了呢,这会是什么问题。

——sess肯定超过索引了,那个sess(:,2)的值肯定超过V的行数了。

——由右图可知:V只有1842行,而cellD里面包含的肯定不止, 看是V错了, 还是cellD错了。

V的行数是整个数据集的所有item数目没错。而cellD的行数则是训练集的所有session数。

I mean:cellD里面包含的,每次肯定只能传cellD其中的一个元胞,把cellD里面每个元胞的最大值输出, 肯定有比1842大的,那么 怎么产生的问题就在哪了。

那么:把sess(:,2)最大值输出 和V的行比较即可见分晓:

 

【原因】baseline里,原来生成的session.mat里面,userid、itemid是有重新编号的!!!按矩阵行序给userid和itemid编号的!!!

所以,回到数据预处理部分:

问题转变为:

以下rawData数据,第一列是userID,第二列是winner,第三列是loser。

现在要给它们的序号重排。userID 的序号重排是比较简单的。但是关于winner和loser这二者都是来自itemset,要将它们映射到同一个itemset,利用numunique可以操作吗?

代码文件如下:

% --userid,winner,loser
rawData=[1 2 3;
1 3 4;
1 3 5;
3 4 7;
3 4 2;
3 5 6];
%统计user数目
[userSet,p] = numunique(rawData(:,1));
for i = 1:length(userSet)
rawData(p{i},1) = i;
end
userNum = length(userSet); %统计item数目---------原先
item1 = rawData(:,2);
item2 = rawData(:,3);
allItem = [item1', item2'] %合并所有item。
% 结果为:1×12double:2 3 3 4 4 5 3 4 5 7 2 6 unique_allItem = unique(allItem) % 对所有item去重并排序。
% 结果为:unique_allItem = 2 3 4 5 6 7 ,共6个 for i =1:length(unique_allItem)
reSetAllItem (i) = i;
end
% 重新编号,从1开始。
% reSetAllItem 结果为:reSetAllItem = 1 2 3 4 5 6,共6个 itemNum = length(reSetAllItem) %利用combine矩阵,将原来的itemid与重排后的itemid对应起来。
combine = [unique_allItem',reSetAllItem']
% combine的结果为:
% combine =
% 2 1
% 3 2
% 4 3
% 5 4
% 6 5
% 7 6 %在combine矩阵查找,更新rawData的对应元素
for i = 1:length(rawData)
for j = 1:length(combine)
if rawData(i,2)==combine(j,1)
rawData(i,2) = combine(j,2);
end
if rawData(i,3)==combine(j,1)
rawData(i,3) = combine(j,2);
end
end
end
rawData
% rawData的结果为:
% rawData =
% 1 1 2
% 1 2 3
% 1 2 4
% 2 3 6
% 2 3 1
% 2 4 5

运用到原问题上,即为:

Debug 路漫漫-01的更多相关文章

  1. Debug 路漫漫-05

    Debug 路漫漫-05: 1.使用这种方式计算 AUC 指标,结果出来居然是 NAN, —— 分母为(M*N),M或者N必有一个为0 了.(nan出现的情况绝大部分是分母出现0了)   若分子为0的 ...

  2. Debug 路漫漫-03

    Debug 路漫漫-03:SVD++的 Matlab 版本 SVD++ 的 pu 这一项: 圈圈中的这一项,它既然要和pu 相加 的话 ,那么,它的维度也应该是 m*K.(就是维度和Pu一致的 . 而 ...

  3. Debug 路漫漫-15:Python: NameError:name 'dataset' is not defined

    在调试 <Outer Product-based Neural Collaborative Filtering>论文的源码(https://github.com/duxy-me/ConvN ...

  4. Debug 路漫漫-13:Python: pandas IndexError: single positional indexer is out-of-bounds

    在数据预处理过程中,出现:IndexError: single positional indexer is out-of-bounds 原因是在使用 Pandas 读取 dataframe 的时候,分 ...

  5. Debug 路漫漫-07

    201811—201903???   1)关于训练参数是复数的问题    ——q_k ^theta   q_k(是item的特征矩阵)中有可能是负数,而指数 theta 如果是含小数点的话,就会产生复 ...

  6. Debug 路漫漫-06

    FSBPR 迭代一轮就停止???…… 循环条件没有问题.. 达到收敛条件了?——参数变化小于1e-4…? deltaU =0 —— U没有更新?——incU < 0 —— 取消动量(前半部分即可 ...

  7. Debug 路漫漫-04

    1.错误使用 cat 要串联的数组的维度不一致. ——前面给个初始化即可: D = cell(length(trainIdx),1); user_itemData = cell(length(trai ...

  8. Debug 路漫漫-02

    重现标准 BTL Model ,using MATLAB: 1. 错误使用 cat要串联的数组的维度不一致.出错 cell2mat (line 83) m{n} = cat(1,c{:,n}); —— ...

  9. Debug 路漫漫-14:Python: AttributeError: module 'tensorflow' has no attribute 'sub'

    在调试 <Neural Factorization Machines for Sparse Predictive Analytics>论文的源码(https://github.com/he ...

随机推荐

  1. CSS布局中一个简单的应用BFC的例子

    什么是BFC BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每个BFC都遵守同一套布局规则.例如,在同一个BFC内,盒子会一个挨着一个的排,相邻盒子 ...

  2. Idea 自动导入包的*设置99

    作者:Intopass 链接:https://www.zhihu.com/question/35806024/answer/64530300 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...

  3. sql 根据另一个表的数据更新当前表

    --update mchk --set shwdjh=dbo.erpzhong.zhongbz--from erpzhong--where mchk.dwmch=erpzhong.matno

  4. Spark参数设置的方式

    可以通过以下几种方式设置: 1)bin/spark-submit 可以直接读取conf/spark-defaults.conf文件 每一行为一个key和valuespark.master        ...

  5. jssor/slider图片的问题

    用jssor/slider这个控件,在显示图片的时候,每张图片都被拉伸到最大的图片的宽度和高度,导致变形,怎么处理? [答案] Yes. With no u="image" ima ...

  6. RocketMQ【未完成】

    RocketMQ 是一款快速地.可靠地.分布式.容易使用的消息中间件,由 alibaba 开发,其前身是 metaq,metaq 的第一个版本是可以看成是linkedin的kafka(scala)的j ...

  7. 8个DBA最常用的监控Oracle数据库的常用shell脚本

    本文介绍了8个常用的监控数据shell脚本.首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本.网上也有好多类似的文章,但基本上都不能正常运行,花点时间重 ...

  8. springboot整合elasticsearch入门例子

    springboot整合elasticsearch入门例子 https://blog.csdn.net/tianyaleixiaowu/article/details/72833940 Elastic ...

  9. 解决Android Studio无法下载sdk的问题

    因为google被墙了,android sdk无法下载.然后各种百度,都是说让设置代理,给的代理地址一般都是用的下面这个代理服务器: 大连东软信息学院镜像服务器地址: mirrors.neusoft. ...

  10. 微信小程序 - 自定义tabbar(组件)

    配置项(关于使用组件) index.wxml <!-- tabBar:tabBar配置 activeIndex: 激活页面下标 slots: 多插槽配置(需与页面一致) --> <t ...