1244250成绩为0,非常伤心,分析一下我自己的情况,大家一起来看看到底是为啥。
我用的是matlab的fprintf写的txt文件,具体结果(一部分)是这样的:
5780000\t155,10058\n5812000\t2683\n5899750\t12220\n
F1为0,P为0,R为0
只要P或者R有一个为0,那么F1就是0,所以只需要分析P和R就可以了
P和R都是分数,既然是分数,那么要么是分子为0,要么是分母太大。
先看分母,
对于P来说,分母是自己提交的预测条数,我提交了不到100条,所以排除了分母太大的可能
对于R来说,分母可能很大,但是至少分母要超过10000,否则哪怕只有一条准测的预测得到的结果就要大于或等于0.01%
再来看分母,
P和R的分母都是一样的,即预测准确的条数,例如我预测用户5780000会购买品牌155,如果他真的购买了,那么P和R的分母只要唯一。
从上面的分析来看,由于分母(至少P的分母)不会特别大,那么我结果为0的原因就是分子为0了,也就是说我预测的那些购买一次都没有发生。
真的一条都没有预测对吗?
我想每个成绩为0的队伍都会怀疑这个结果,原因很简单。有这样的一些用户,他们每个月都会购买相同的品牌,或者总是隔月就会购买一次。
虽然这样的用户和品牌并不是很多,也不一定是非常准确,但是总归能碰上一两条对的吧。
无论用什么样的算法来分析或者是学习,我觉得这种规律肯定是大家都有考虑到的一个。
再说了,即使是靠猜或者纯粹人工筛选,也应该能蒙对一个吧,所以一条都没预测对这种情况实在是让人无法相信。
经过上面的分析,成绩为0的唯一可能就是格式的问题了。
说到格式,真是让人崩溃呀!
由于对各种操作系统的原理不是非常了解,所以linux,win,mac到底有啥区别我也不是很清楚。
我提交的txt文本在windows下面也好,mac下面也好,看到的都是没有制表(8个空格)或者回车的。直接就是数字、\t、\n、以及逗号,也就是帖子一开始大家看到的那样。这样也是不行的吗?怎么看也没看出来有啥问题。在我若干思考以后,我终于发现了我格式里唯一可能出现问题的地方,文档的结尾我用了一个\n,似乎哪个帖子里官方的说法是最后一行不用换行。难道问题就是出现在这里?!我决定下期也不改结果和算法了,直接就提交这次的结果,把最后一行的那个\n去掉,如果结果还是0的话,我真的不知道该怎么办了……
-------------------------
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。