首页 > 数据分析 > 考勤数据浅析

考勤数据浅析

2014年7月16日 发表评论 阅读评论

Img394735625这个月月初所办那边突然联系我,说不知道为什么我之前写的那个考勤软件导不出数据了,然后我去看了一下,因为所办那边电脑上就只有一个软件,不可能有开发环境调试,我就说有可能是数据库里面突然出现了什么奇怪的数据我程序里面没做检测导致到处失败吧,然后就跟他们要了最近10个月的所有数据,回自己电脑上调试一下就知道了;结果试了一下,考勤分析报告导出完全没问题。

不管怎么说,至少我拿到了所里所有学生的各种信息,还有去年九月至今的全部考勤数据,昨晚就决定动手玩一下这堆数据;

其实几个月前我就跟实验室的人说过了,考勤数据其实拿到手的话可以做很多很有意思的分析的,最简单的就是,分析哪个导师门下的学生出勤时间最多,给将来报考咱们所的无知少年们一份铁证来做忠告。。。

学生信息除了学生学号,年级,导师这些,还有身份证,实验室,本科学校,家乡等乱七八糟的信息;突然想起来为什么当时要登记这些信息了,都是因为我老板。。这个考勤制度就是他策划的(而且我一度觉得他就是为了变相监督我这种早上从来不去实验室的人又不好意思直接跟我说,虽然我现在还是早上不去实验室的节奏),他当时跟我说等收集到一定的数据,就可以看看南方和北方出身的学生作息是不是有区别。。囧rz

考勤信息倒是很简单,每个人的id和打卡的时间,至于某一次打卡是属于出勤还是退勤需要程序自我判断;我软件里面有比较复杂的判断逻辑,这里只是分析的话,没必要为了极少部分不规则的打开而增加代码的复杂度,这部分的误差基本小于1%,而且我分析数据就是玩玩而已;


所以首先我们可以看看咱们所里的基本信息,首先是不同年份入学的人数,也就是不同年级的人数:

kq1

为什么要拿这幅图来说?是这样的,大家可以发现03年入学的有一个人,而这个人我虽然不认识,但是我对他印象很深刻,去年写考勤软件的时候,我自己加了一个功能,就是每个学生的年级可以在每年9月的时候自动更新,研一就会变成研二,博三变博四,为了软件界面展示清楚我用的是汉语,所以当时做了一个数组,{“一”,“二”...“九”},我当时的考量就是,不可能有人到博九还没毕业吧。。。然后。。就悲剧了。。没错,我恨死这个人了。。这就叫做:我虽然不认识你,却可以害死你。。

现在软件统一博五以上都叫博五了。。。

然后就是所里的硕博比例:
kq2

所以现在博士如此泛滥,真的值钱么。。好吧,作为一个品学兼优的硕士,我从来不黑自己实验室以外的博士。。

博士各年级比例:
kq3

五年级以上这么多,真的是毕不了业了么23333,咳咳,不能黑博士,嗯嗯。。

硕士各年级比例:
kq4

果然硕士的的特点就是:毕业准时,生源稳定。。

然后实验室的人表示最关心的,对将来来这深造的骚年们最有指导意义的,男女比例:

kq28

我就不说什么了。。有没有感觉上图像一个张开大嘴的XX想要吃掉XX一般。。

然后各个导师的学生的数目:
kq31

前三名介绍一下,一个叫所长,一个叫常务副所长,一个叫副所长,嗯,就是这样;至于系主任为啥会变成第五名呢?据说去年招生的时候研究生科闹乌龙了,忘了把他的名字挂上去,当然他的学生因此得益,得到了有史以来第一枚师妹。。

然后我看了一下生源地:

kq32

我就不说什么了。。。【论本校/本地在读研时的优势】


好,上面这些数据都是分析着玩的,然后开始研究考勤的信息,首先预处理一下数据,把考勤数据按人按天分好类,并且去掉一些短时间内重复打指纹的数据,这里设为5分钟;
kq7

然后看一下大家一般出勤天数的分布:
kq8

时间总跨度就282天,其中大部分出勤240天到250天,总感觉休息的时间就是一个寒假左右,想想还真是伤心。。

然后为了分析每个人的出勤习惯,首先要把每次打卡的出勤和退勤从所有信息里面分离出来,横坐标月份日期,纵坐标出勤时刻,然后随便找了一个人画出来结果大概是这样子:
kq29

随便找的就可以看出,我们上学期门禁时间最晚是10点半,这学期开始可以12点再离开实验室了,某些学霸就按耐不住了。。

Mathematica自然可以一口气画出来所有人的出勤时间,局部如下,总感觉画这种图有一种窥探别人生活作息的负罪感。。
kq9

随便找了些人来看,觉得实在有意思,比如下图,我这种就是常年早上不出勤的学渣。。鲜有几次突然6点多来实验室才不是为了搬砖,而是通宵后还是睡不着。。你们猜那次无比接近晚上12点才打卡的是因为什么~我觉得我能完成今年的出勤任务已然是个奇迹了。。所以排名什么的我早就不指望了。。
kq10

下图是在下某室友,同属于早上也不怎么去的,和我区别在于。。。他是夜归狂魔。。
kq11

还有这种作息超级规律的妹子。。
kq12

再来欣赏一下今年出勤内定冠军的无敌学霸!!总出勤时间现已领先第二名200多个小时,其表示可以让第二名10天还仍然保持第一。。。仔细研究可以发现,都是周末早上休息,其余时间学霸模式ON的节奏。。你看寒假都比一般人短。。颤抖吧凡人。。
kq13

我们屋一位没事周末就回家的学弟。。事实证明,我们可以从考勤数据里面分析出那些同学的家就在杭州附近。。
kq14

下面是我们实验室一位博五的大师兄(现已毕业),上学期随随便便坐等毕业,然后这学期老板跟他说,你可能要延毕,除非你再做个试验,发一篇论文,在65万房补的诱惑下,就出现了这种出勤。。。
kq15

我们屋和我同年入学的博士,你猜他什么时候找到妹子了~【所以说!!通过数据窥探别人真的好么?】
kq16

标准的午睡狂魔。。
kq17

女王大人的作息果然不是我们这些鶸所能模仿的。。简直风骚~
kq18

好吧,出勤图就放到这里吧。。。


下图是我们这280多天内出勤时间长度对比,前几名根本不是和我们生活在同一个世界的好么?!
kq30

然后我算了一下每个导师门下学生的出勤时间。。

其中。。。人数众多,但是普遍出勤时间极少的就是我们实验室了。。。你们猜是哪个。。
kq20

此外,我算了一下每个导师门下学生平均出勤时间。。我们这边全所排名,倒数第四。。嗯。。我们这群逗B果然是个笑话。。


然后我突然很好奇,是否可以分析一下所有学生两两之间的出勤时间的相似度?

没想到什么好方法,想了一下,就用这个公式来算:

\(\dfrac{A \cap B}{\sqrt{A B}}\)

就是两个学生出勤重复的总时间除以两人各自出勤总时间再开方,不知道大家有什么好方法没?

比较神烦的一点就是Mathematica没有现成的可以算多个线段的交集的长度的函数【或许我自己不知道】,所以自己手动写了个。。。
kq34

然后画出来所有人的相似关系矩阵如下;
kq22

大致瞄一眼,“方格感”比较明显,说明如果A和B的作息相似,B和C的作息相似,那么A和C的作息一般都比较相似。。

这里有不少不怎么出勤的人,严重干扰了计算,所以我后来分析就把这群人删掉了。。变成:
kq23

然后为了画出带权无向图,我们可以把上面算出来的相关矩阵直接当做距离矩阵,再把自己与自己的距离设置成无穷大,和自己相似度小于特定阈值(用了0.72)的人的距离也设成无穷大,并且让每个点的大小表示每个人出勤时间的多少,画出来结果如下:
kq24

这里自然看不出什么,我们需要聚类一下:
kq42

结论就是。。果然我这种作息就是没什么人和我一样的。。。

好吧,要怎么证明上图的分析是有效的呢?看到四个大的聚类丛簇中最下面那个了么?那五个人编号分别是72,75,76,79,86,这里面其中四个人是我们屋的(我们屋就五个人,除去我剩下的所有人)。。也就是说我们屋因为常年一起吃饭,离开,所以出勤规律高度相似。。其他的人是不是一个办公室的我不是很清楚,所以就没考证了。。【Mma画出来的图很漂亮吧~】


孔子曰,分析数据要有指导意义,分析每个老师门下的学生出勤时间长短可以给将来报考的人做参考,但是对于我这个马上要毕业滚蛋的人而言,大概最有意义的指导就是什么时候去食堂最合适了吧。。

然后我算了一下不同时间点实验楼的人的分布:
kq41

好像吃午饭的人比晚饭的人少一些,而下午干活的人最多。。而早上嘛,其实真没什么来实验室的意义,9点钟来,上一下网,干一小时活就午饭了。。还是晚上和下午适合干活。。

那么大家饭点是怎么样的呢?
kq40

再次证明,就算你来了实验室,也有不少人不吃午饭,而且午饭明显吃的时间比晚饭长啊。。

看了一下峰值的位置,大概都是11点半和下午五点半,而吃一顿饭需要半小时,所以事实证明,我在我们屋一直奉行的下午5点吃晚饭是无比正确的!!【诶?你问我午饭?】

之后我又分析了一下硕博,不同年级,男女之间出勤的关系,大概结果表明。。。你出勤时间跟这个没什么关系。。所以就不放上来了。。

好了,水玩了。。等我下次心血来潮再去做别的聚类分析。。。

7月
22

全部人平均出勤时间随着星期的变化:
kq100

7月
22

全部人平均出勤时间随着日期的变化:
kq101


【完】

本文内容遵从CC版权协议,转载请注明出自http://www.kylen314.com

分类: 数据分析 标签: ,
  • 哈哈

  • 眞好,數据來源不容易……那個風騷的走位表明是一有趣的學霸?OAO||

    • 其实数据来源很好说的,我只要跟他们说:软件要更新,给我点数据测试一下。。

  • 哦,天哪,我都被自己的数据吓到了!凌乱的淋漓尽致啊,8过我估计还会这么飘逸下去,只要不会被揪出来批斗就行@_@

    • 楼上说你是学霸。。

      • (;¬_¬) 原來正確的形容詞是「凌亂」……

        • 一切解释权归女王大人官方说辞所有2333

      • 本想说我就是个学渣,后来一想,我都算不上“学”字辈⊙﹏⊙b

        • 哎哟哟。。别这么说,您可是“学”姐啊。。还是博士级别的。。

  • 这数据还真有喜感的说(菊苣脑洞大开果然不明觉厉

  • 研究好透彻。。

  • Yu

    那学霸太牛了,8点多去将近0点回去啊....表示从来都是12点吃个早饭过去晚上11点35回去...

    • 学霸的世界不是我们所能理解的。。

  • 看见博九瞬间凌乱了……话说这一次看完突然感觉数据分析好有趣

    • 博⑨那位的导师,我们一入学就被告知千万别选他的课。。因为贴近生活么2333

      • 可能是,因为一贴进生活自己有代入感就会觉得很好玩,之前的B站因为自己除了单纯看视频就没啥了解,所以看分析也没啥想要试一试之类的欲望

  • 看到后面就没兴趣了,没看完。

  • OX

    感觉好好玩,而且有莫名笑点(什么?你竟然问我哪里有笑点??好吧..我笑点就是低…ಥ_ಥ 可是那些统计图我已经看不懂了(;゚д゚)我的理科果然堪忧ಥ_ಥ

    • 哪些统计图看不懂?另外告诉你个悲伤地消息,看不懂统计图和理科。。。其实没关系。。

      • OX

        「所有人的相似关系矩阵」看不懂(另:希望更换红-绿对比色...我完全跪了,比如蓝色和黄色之类的就挺好的)好吧,那个其实是个借口((((((((

        • 衡量出勤相似度的;第i行第j列的值就表示第i个人和第j个人在出勤时间上相似程度,类似于相关系数的概念,1的话就是完全相似,比如自己和自己,0的话就是完全不相似,也就是说基本没有A出勤B也出勤的情况;得到这个东西之后就可以对不同人群进行归类了

          • OX

            哦~♪懂了٩(๑>∀<๑)۶

  • hwj888

    相当nb啊。。。。233333

  • hwj888

    我还有一个问题,,,和你同年入学的博士什么时候找到妹子的,,是nov吗?之前有午休习惯???

    • 大概是今年的某个时候吧23333

      • hwj888

        汗,,太笨了。。。看不出来,,4月份???

        • 其实我也不知道具体什么时候。。。我也是根据这图乱猜的。。

  • ryecao

    要是能搞到宿舍刷卡的数据就好了 =w=

    • 偷窥室友作息日常么233

  • 我来了,决定每日一膜拜。。。

  • 数据狂魔

  • 为什么可以搞出这么多图,消化你的一篇文章好累哦,(─.─|||___________________________

    • 这有啥需要消化的。。

      • 看着数据就头疼,好像有各种玩法,包括我最近在公司做的也是面对一大堆的数据______________________________________

        • 请务必给我迅雷的数据!!!!!!!!!!!!!(双手

          • ⊙ε⊙ ⊙ε⊙ ⊙ε⊙ ⊙ε⊙ ⊙ε⊙ ⊙ε⊙

  • 噗,总觉得 学霸们的 作息简直。

    • 那种作息好孩子不要学!!感觉会短命2333【pia飞,越不规律越短命这种常识都不懂??】

      • 反正我暑假里的作息的规律已经乱惹

        • 至少。。。你们还有暑假。。。

          • 嘛嘛,至少你们还有。

  • 扑街

  • Yu

    昨天貌似网站挂了呢

    • 是么?什么时候?下午晚上好像都是活着的啊

      • Yu

        昨晚12点半倒三点期间 ... 当时本来想来找某个post的,然后突然发现无法访问,无论从美国还是从北京联通,都无法ping 通ip

        • 那个时段我就不知道了。。。垃圾主机商半夜经常干维护。。

  • yuki

    我们作息蛮接近嘛。。。为何你丫是学神我却成了学渣。。。世界太不公平

    • 我什么时候成学神了魂淡!你又是什么时候变学渣的!?!世界什么时候公平过?!

  • onion

    好腻害!聚类分析碉堡了

    • Mma确实屌,根据距离矩阵直接很漂亮的绘制出结果!!而且只要一个函数。。事实上Mma 10.0里面增加了不少机器学习方面的函数;

  • 好厉害的分析,但是我数学差,看不懂。。⊙﹏⊙b

  • 偷窥欲很强呀,玩得转可视化和输出处理真心不错