给定MatrixFactorizationModel什么是返回用户产品预测的完整矩阵的最有效方法(在实践中,通过某个阈值过滤以保持稀疏性)?
通过当前的API,曾经可以将用户产品的笛卡尔积传递给预测函数,但在我看来,这将进行大量的额外处理.
访问私有userFeatures,productFeatures是正确的方法,如果是这样,有没有一种好方法利用框架的其他方面以有效的方式分发这个计算?具体来说,是否有一种简单的方法可以做得比将所有的userFeature,productFeature"手动"相乘?
我试图数据在Python3.2中创建的数据数组,pickle它,然后在Python2.7中打开它.但是,有一部分数据是Python2.7所反对的,即使在数据样本上它做得很好,我想知道如何弄清楚出了什么问题.
所以在Python3.2中:
import pickle
with open('c:\\test.pickle', mode='wb') as f:
pickle.dump(t_array, f, 2)
Run Code Online (Sandbox Code Playgroud)
然后,在Python2.7中阅读时:
import pickle
f = open('c:\\test.pickle', mode='rb')
t_data = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)
错误是:
File "C:\Python27\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Python27\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Python27\lib\pickle.py", line 1217, in load_build
setstate(state)
TypeError: must be char, not unicode
Run Code Online (Sandbox Code Playgroud)
数据是一个dicts数组,最多嵌套两个,例如:
{'key3': '3', 'key2': 1.1, 'key1': 1, 'dict': {'dkey2': 2, 'dkey1': 1}}
Run Code Online (Sandbox Code Playgroud)
什么(可能)在这里出错了?有没有简单的方法来查看原始(大型)数据集中的原因是什么?