November 2017

最近看自然语言处理词频统计的时候,看到的一种方法,小记于此。 伪计数可以看做是一种平滑,由拉普拉斯提出,也称为拉普拉斯平滑。 伪计数估计量的具体公式是: $$\hat\theta_i = \frac{x_i + \alpha}{ N + \alpha d} \quad (i = 1,…,d)$$ 其中$\hat\theta_i$是估计量,$x_i$是观测到的事件分类,$\alpha$是平滑参数(有些学者认为应该是1,不过一般都比较小,比如取0.5),$N$是观测事件总数,$d$是观测值的可能分类,例如二分类问题中$d=2$。 那么这个公式是什么意思呢?具体地说,为什么要这么规定这种平滑?那是因为这种平滑的好处是它的值在经验估计$\frac{x_i}{N}$与均匀分布概率$\frac{1}{d}$之间。也就是很好的完成了从事实发生概率到随机发生概率的平滑任务。 再具体一点是什么意思呢?那么我觉得就要从它的来历说起了。历史上,拉普拉斯试图估计明天太阳升起的可能性的时候,提出了这个概念。 大家都知道,太阳当然会升起啊!不升起来的概率(或者说观测到不升起来的次数)为0。 等等,那可不一定,至少拉普拉斯不这么认为,他甚至认为日出的前一秒,也不能确定能不能观测到太阳升起。当然,这不是抬杠,仔细想想确实是这个道理,毕竟谁也不知道太阳会不会被一个极小概率的事件毁灭。 那么,这个概率到底是多少?这个概率怎么计算出来既可以满足事实(姑且叫做“事实概率”),又可以满足幻想(姑且叫做“幻想概率”)。答案是:平滑。 比如,从我开始观测,一共是$N=98$次观测,其中有$x_{i}=0, i=no\ sunraise, i\in {sunraise, no\ sunraise }$取$\alpha […]

想把这个写成一个系列,“深度学习算法在写paper时的应用过程——从数据到对比实验结果”,但是填坑太累,先分开写吧,最后如果能完成就整理成系列。 最近有篇关于轴承故障诊断的文章要用到轴承数据,就找到了西储大学这个轴承的公开数据集,关于数据集本身我就不做过多的描述了,主页说的已经很清楚。 数据获取 但是问题来了,这个数据集没有提供压缩文件下载!而是用表格的形式列出的很多数据文件的集合,而且还是.mat文件,也就是MATLAB文件。更不方便的一点是文件名都是数字,果手动下载每个文件,需要1.建立不同采样频率(12k&48k)的文件夹。2.分别下载每个分类下的每个文件。3.对每个文件重新命名。 这可不是个轻松加愉快的事情,本着“需要手工机械重复超过3分钟的工作应该尝试使用自动化脚本实现”这一不知道哪里看来的感觉很有道理的信念,就开始考虑如何自动化实现了。其实最开始思路很简单,程序需要完成至少以下内容: 1.爬取网页。 2.分析网页,获得数据的大分类(Normal&12k&48k)category,每个单个文件在表格中的名称&url(例如IR007_0以及它的地址)filename & url。 3.根据2获取的category建立文件夹,通过url下载,并重命名为filename。 整个脚本实现起来应该不难,第1,2部分只是一个简单的获取网页+内容解析,最具有挑战性的地方在于第3步,因为可能要用多线程下载。灵机一动,多线程下载不是有工具嘛,wget,aria2,不能放着这么好用的工具不用。尤其是aria2,多线程下载就是一个参数的事。因此,第3步改为: 3.根据2获取的category建立文件夹,并将url与filename保存位aria2下载列表格式。 这样,就可以直接用shell脚本来遍历多线程下载了。 分析就到这里,程序也很清晰了,源代码在这里。 其中有一个Python文件和两个shell script,Python文件是用来获取filename,url,等信息并生成aria2下载列表url.txt的,shell script是用来自动化遍历子文件夹下载url.txt的。其中url.txt的格式参见aria2的官方文档引用如下: http://server/file.iso http://mirror/file.iso dir=/iso_images out=file.img http://foo/bar