昨天偶遇个钓鱼网站的数据集,提供了很多url的特征,就好奇这东西有多难识别,于是简单地做了一下, 发现随机森林就能跑到93%。
其中最重要的特征是网站有没有https头,18个特征里能占0.3。
给新手们附上链接和实验过程:
1.下载数据集(需要注册)
2.因为test.csv没标签, 所以从train里抽一点出来,可以37开可以55开。
3.数据里有缺失值,因为后面要用lasso做特征选择,所以把数据中的0改成-1,把NaN改成0.
4.删了几个占比低的特征后,用随机森林跑出了0.94的分数。
5.但因为我把NaN改成了0,而NaN是无意义的, 0却是介于-1到1之间,在计算时有了分界的意义,所以随机森林只能作为参考。
6.最后用keras搭的三层线性模型,只有最后一层用了sigmoid,得到90.6%的分数。
总结:没啥总结的,数据太少特征很强,很难有普适性,实际中只靠url识别是很不靠谱的。我了解到现在会生成网页的图片,并比对结构代码,因为钓鱼网站虽然能模仿网页,但代码肯定不一致。有些网站会加载一堆奇怪的插件,有些会有很多弹窗,有些会写死逻辑让你跳不出去,这些特征都得懂前端的人来配合获取了。