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

 ===

这个断点一步步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. CentOS 6和CentOS 7防火墙的关闭

    CentOS6.5查看防火墙的状态: 1 [linuxidc@localhost ~]$service iptable status 显示结果: 1 2 3 4 5 [linuxidc@localho ...

  2. MFC中打印对话框CPrintDialog类

    void CCPrintDialogView::OnPrint() { DWORD dwflags=PD_ALLPAGES|PD_NOPAGENUMS|PD_USEDEVMODECOPIES|PD_S ...

  3. Python 通过打码平台实现验证码

    在爬虫时,经常遇到登录需要验证码的情况,简单的验证码可以自己解决,复制的验证码需要借助机器学习,有一定的难度.还有一个简单的方案就是采用付费的打码平台. 比如R若快(http://www.ruokua ...

  4. android 微信听筒无声

    Dual talk项目sim卡插在卡2时.微信听筒无声: 第三方APP在听筒接听语音时会固定去设audio_mode为incall,而不会去管以下是sim1还是sim2在位. 而speechdrive ...

  5. Android -- startActivityForResult和setResult

    startActivityForResult与startActivity的不同之处 startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivit ...

  6. ICTCLAS中的HMM人名识别

    http://www.hankcs.com/nlp/segment/ictclas-the-hmm-name-recognition.html 本文主要从代码的角度分析标注过程中的细节,理论谁都能说, ...

  7. Mat类具体解释(二)

    Mat::~Mat Mat的析构函数. C++: Mat::~Mat() 析构函数调用Mat::release(). Mat::operator = 提供矩阵赋值操作. C++: Mat& M ...

  8. angular5中使用全局变量

    创建全局变量ts文件,然后引入 创建globals.ts文件: export const base_path = "http://localhost/api/index.php/Home&q ...

  9. 获取js连接参数js_args

    获取js连接参数,如下以链接: <script src="js/jscript.js?skin=green" type="text/javascript" ...

  10. 微软BI 之SSAS 系列 - 在 SQL Server 2012 下查看 SSAS 分析服务的模型以及几个模型的简单介绍

    在SSDT中部署一个 SSAS 项目到本地服务器上出现错误. You cannot deploy the model because the localhost deployment server i ...