开始数据挖掘项目之“厦门大学图书馆座位使用情况”

2016/10/12

You can find English Edition in my GitHub Repository.

昨天早上去学生公寓图书馆自习,选座机告诉我座位情况96/96,只得另觅教学楼空闲教室自习。上学期公寓图书馆有150多个座位,尚且时常爆满,暑假改造,把三楼和二楼靠墙的座位全部拆除,硬生生地把座位减少了40%,简直不可理喻。正好在跟 MOOC 的数据库系统,也选修了学校的数据挖掘原理和实战,便打算以图书馆座位的使用情况为例进行分析。(仅用于练手+泄愤,大神绕过)

2016-12-15 更新:

自2016年12月16日起,采用新的数据库结构,从早上8点到晚上10点,每分钟抓取一次数据,存储在名为 libseat.db 的数据库中,采集样例和 schema 可见下图。从2016年10月14日至2016年12月15日的数据保存在名为 seatState_old.db 的数据库中,其中数据每隔两分钟采集一次。

db

数据来源

厦门大学图书馆网站提供当前座位信息的查询,经验证,基本能保证与实际情况同步,故采用此处数据作为来源,共抓取书库1楼、自习室A、信息工程分馆、经济分馆等14个阅览室的座位信息。数据库采用 sqlite3。

seat

注意事项

因为种种原因,数据库中的有些数据可能不准确,请在分析之前务必进行数据清理(对于 seatState.db 中的数据,此工作可由 preprocess.py 脚本自动完成)。

  1. 每周三下午1点至6点图书馆闭馆,期间读者无法入内,但选座系统数据不会清零。
  2. 每晚21:30以后,选座系统数据会清零,而非等到晚上十点闭馆以后。
  3. 2016年10月14日、15日的数据可能是每3分钟采集一次。
  4. 2016年12月9日至2016年12月11日的数据,由于 VPS 的时区配置问题,时间需要加上8小时,并且可能当天数据不完整。

开源项目

本脚本采用 GPL v3 协议开放源代码,你可以从我的 Github 页面上获取所有代码和使用帮助。每周日我会上传抓取到的数据到 Github 仓库中,你可以在注明数据来源的情况下使用这些数据进行分析。最终的研究结论和报告是否公开还有待决定,如果有建议或意见欢迎以留言或邮件的形式提出。

Post Directory