首页 > 解决方案 > 神经网络中稀疏矩阵的使用

问题描述

我已经开始做一个名为 Talking Data User Demographics 的项目。在这个项目中,我需要找到向我提供电话数据的人的性别和年龄组。在给我的数据集中,我只能找到几乎 70% 的数据的手机型号和手机品牌,剩下的 30% 有事件、事件标签、位置、许多其他功能,包括型号和品牌。所以,我想为有事件的设备和没有事件的设备分别建立一个模型。作为寻找正确模型的一部分,我使用了各种算法。当我尝试神经网络时,对于没有事件的设备,我的日志损失更少,所以我想对有事件的设备也尝试同样的方法,但它给出了错误“不支持稀疏矩阵”。但是,如果是这样,当我拥有没有事件的设备模型时,它运行良好。

随附的文件包含一个代码,即使在 model.fit() 中使用稀疏矩阵时也能完美运行代码。第一张图片

现在在下面的附加文件中,当将稀疏矩阵传递给 model.fit()第二个图像时,它会给出错误

请仔细阅读整个代码以获得最佳参考。代码片段

3

标签: pythonneural-networksparse-matrix

解决方案


只是一个建议:不要在神经网络中使用稀疏矩阵,因为它会提供不好的结果。只需在运行 NN 之前使用 PCA 转换您的稀疏矩阵。例如,您在 scikit-learn 中使用了带有选项 whitening 的 PCA,这对于梯度下降也很有用。

在您的示例中,您想比较使用两个不同数据集运行的两个模型。两个不同的模型和两个不同的数据集可能会提供完全不同的结果。比较它们是没有意义的。


推荐阅读