数字篡改检测包
drdigit-brezniczk的Python项目详细描述
drdigit是一个早期的数字篡改检测包。 对贡献感兴趣?请随时与我联系,例如 评论“欢迎投稿人!“在 https://github.com/brezniczky/drdigit/issues/1。
要求
drdigit需要python 3.5或更高版本。
概念
这些测试是基于数字的统计,这些数字被假定为 均匀分布近似均匀分布可以通过查找 在足够大的值的最后几位-例如投票计数 (可能超过100)
在较小的范围内,可以使用 用python函数表示的概率质量函数。
对于一系列数字组,有更大规模的测试。真是太好了 支持不同的组预期被 不同的人-测试一个总体的、一致的异常也可能是 在这种情况下是严格的。
基于当前特征(熵、数字重复、重合数字 并行序列),可以对包含数字组的数据帧进行排序 根据概率,所以可以检查是否有明显的 医生背后的理智。
一些暗示
小心处理结果,始终存在一些不确定性
试着focus关注感兴趣的群体,这会产生更清晰的结果
提交kaggle脚本时,请关闭测试的磁盘缓存 在提交之前,例如通过
^{tt1}$
您可以通过帮助(drd.set_选项)找到更多信息。
快速启动
可以使用pip安装DrDigit:
$ pip install drdigit-brezniczky $ ipython
当不同的数字序列长度 考虑一下-序列1,2不是尽可能的多样化吗?
Python 3.5.2 (default, Nov 12 2018, 13:43:14) Type ‘copyright’, ‘credits’ or ‘license’ for more information IPython 7.7.0 – An enhanced Interactive Python. Type ‘?’ for help.
In [1]: import drdigit as drd
In [2]: help(drd)
In [3]: print(drd.get_entropy([1, 2])) 0.6931471805599453
In [4]: print(drd.get_entropy([1, 1, 2, 2])) 0.6931471805599453
概率通常更适合于比较:
In [6]: drd.prob_of_entr(2, drd.get_entropy([1, 2])) cdf for 2 was generated Out[6]: 1.0
In [7]: drd.prob_of_entr(4, drd.get_entropy([1, 1, 2, 2])) cdf for 4 was generated Out[7]: 0.0624
事实上,后一个序列异常重复。
下面是更多的例子,现在您可以查看kaggle笔记本 https://www.kaggle.com/brezniczky/poland-2019-ep-elections-doctoring-quick-check 或在附近 https://github.com/brezniczky/ep_elections_2019_hun/blob/master/PL/ 例如在process_data.py文件中
一些复杂的(抱歉,有时不可靠/有些过时)细节 关于考虑因素/方法和未来想法,请参见 [匈牙利选举文件]( https://nbviewer.jupyter.org/github/brezniczky/ep_elections_2019_hun/blob/master/report.ipynb )
测试
有几个测试可以通过pytest运行
为此,我只需使用virtualenvwrapper并执行类似于
的操作$ mkvirtualenv drdigit_test $ pip install -r requirements/requirements_test.txt $ pytest
从drdigit克隆的目录。