<commit_before>---
layout: post
title: ISPRS竞赛
---
**先说说比赛吧。**

大赛背景：数据开放及算法共享是大数据及互联网+时代的核心精神，但是由于行业壁垒及数据隐私等原因，很多研究人员及学生无法接触到大规模真实数据。秉着推动数据开放及共享的理念，大赛推出目前在城市、交通、地理、行为等领域内起着重要作用的公交卡及公交车GPS轨迹数据，邀请数据分析和挖掘爱好者一展身手。

比赛概况：比赛内容分为初赛和复赛两部分：初赛的内容为识别公交站点及乘客下车点，优胜团队进入复赛。参加复赛的队伍获得10天的数据，用此数据集进行无限定创意发挥，并被授权使用开放数据集进行学术研究。大赛的一、二、三等奖和优秀奖将根据大众评审和专家评审的结果最终确定。获奖团队将获得参赛证书和奖金。

**再说说我自己的经历和感想。**

7月份初赛开始，命题为使用深圳公交AFC和AVL数据识别公交站点和乘客下车站点，我学交通出生的，平时对公交数据应用也关注较多，因此对于整个命题的技术路线还是比较清晰，博士论文写作期间也大量应用了R语言进行数据分析，因此对于初赛前半段提供的样本数据，还是比较顺利的完成了程序的开发。

真正遇到困难是在初赛的后半段，当几MB的样本数据变为几GB的完整数据时，就需要开始考虑算法优化的问题了，之前用于样本数据的算法迁移到完整数据上非常消耗计算资源，初步测算需要十几天的时间才能跑完，肯定没法直接用。我也是边摸索边尝试，从三个方面进行优化，首先是技术路线的优化、其次是使用适合大数据的R语言包比如data.table, dplyr等（这些包我都是第一次使用）、最后是重写代码减少for循环的使用换而采用内置的函数或者mapply。这样尝试了有半个多月，经常是晚上调整程序，半夜运行，然后白天起来看结果。最终优化完成程序完整运行只需要10几个小时的时间。另一个困难就是主办方提供的Linux云计算平台，对于非计算机专业出身又完全没有接触过Linux的我来说碰到了很大的困难，尤其是在平台上部署R环境和安装一些R语言包，经常折腾到想要放弃，最终youtube教学视频和stackoverflow上的问答帮了大忙，简单来说，作为业余程序猿，碰到困难务必用英文去网上寻找答案，这也是以前看多英文论文养成的好习惯。

初赛采用的云计算平台能够实时进行评分，因此很能激发参赛队伍的竞争意识，尤其是比赛快结束的那几天，队伍的排名经常一天变动好几遍。我的成绩排名一直都还不错，从最初的第5名逐步上升到最后的第1名，直到比赛截止前的2小时，实时评分被第二名超越，但最终采用全样本进行的终极排名还是以微弱优势排到了第一。

决赛为自由命题，感觉其他几个参赛队伍大多是GIS背景，而我是交通背景，因此从思路上来说更加考虑数据在交通行业实际应用的问题。很多时候，科学研究和实践应用之间有很大的差距，这在国内尤为明显，学术界有很复杂的模型进行公交线网的规划和公交运营的优化，但真正到了业界，都还是以经验为主。我希望成果能一定程度上缝合两者之间的差距，因此选择写了Transit Analyst这个应用，即面向公交企业的公交辅助决策系统，而不是做一个研究，当然Transit Analyst目前还有一些核心功能有待进一步的开发。程序采用R和Shiny进行开发，Shiny的好处就是网络应用，可以直接放在网络上访问，这一方面能够方便用户使用，另一方面也有起到宣传作用。这是我写的第一个完整的Shiny程序，程序中调用了DT、leaflet、plotly等服务。在熟悉R语言的前提下，学习使用Shiny非常方便，绝对是非计算机专业出身的业余程序猿开发数据应用的利器。真正碰到的困难还是在Shiny程序的部署上，尽管shiny程序可以在shinyapps.io上非常简单的进行发布，但是由于众所周知的原因在shinyapps.io上部署的应用在国内基本上无法访问。于是后来摸索着在阿里云上使用Shiny server进行Shiny应用的部署。这时之前初赛时折腾在Linux上部署R环境和Linux的使用上遇到的磨难帮了大忙，折腾了两天最终完成的部署。

如果想短期内提升自己的数据分析能力，来参加ISPRS比赛吧，这是我最大的感悟。明年ISPRS新的数据，新的命题，再来！

最终成果应用: http://192.168.3.11:3838/isprs/
源代码: https://github.com/coralseu/ISPRS
竞赛网址：http://citysensing.cn/opencup/
欢迎提供意见建议和开展项目科研合作！
 
**我的竞赛海报** 
![alt text](https://coralseu.github.com/images/ISPRS.png "Transit Analyst")<commit_msg>revise link<commit_after>---
layout: post
title: ISPRS竞赛
---
**先说说比赛吧。**

大赛背景：数据开放及算法共享是大数据及互联网+时代的核心精神，但是由于行业壁垒及数据隐私等原因，很多研究人员及学生无法接触到大规模真实数据。秉着推动数据开放及共享的理念，大赛推出目前在城市、交通、地理、行为等领域内起着重要作用的公交卡及公交车GPS轨迹数据，邀请数据分析和挖掘爱好者一展身手。

比赛概况：比赛内容分为初赛和复赛两部分：初赛的内容为识别公交站点及乘客下车点，优胜团队进入复赛。参加复赛的队伍获得10天的数据，用此数据集进行无限定创意发挥，并被授权使用开放数据集进行学术研究。大赛的一、二、三等奖和优秀奖将根据大众评审和专家评审的结果最终确定。获奖团队将获得参赛证书和奖金。

**再说说我自己的经历和感想。**

7月份初赛开始，命题为使用深圳公交AFC和AVL数据识别公交站点和乘客下车站点，我学交通出身的，平时对公交数据应用也关注较多，因此对于整个命题的技术路线还是比较清晰，博士论文写作期间也大量应用了R语言进行数据分析，因此对于初赛前半段提供的样本数据，还是比较顺利的完成了程序的开发。

真正遇到困难是在初赛的后半段，当几MB的样本数据变为几GB的完整数据时，就需要开始考虑算法优化的问题了，之前用于样本数据的算法迁移到完整数据上非常消耗计算资源，初步测算需要十几天的时间才能跑完，肯定没法直接用。我也是边摸索边尝试，从三个方面进行优化，首先是技术路线的优化、其次是使用适合大数据的R语言包比如data.table, dplyr等（这些包我都是第一次使用）、最后是重写代码减少for循环的使用换而采用内置的函数或者mapply。这样尝试了有半个多月，经常是晚上调整程序，半夜运行，然后白天起来看结果。最终优化完成程序完整运行只需要10几个小时的时间。另一个困难就是主办方提供的Linux云计算平台，对于非计算机专业出身又完全没有接触过Linux的我来说碰到了很大的困难，尤其是在平台上部署R环境和安装一些R语言包，经常折腾到想要放弃，最终youtube教学视频和stackoverflow上的问答帮了大忙，简单来说，作为业余程序猿，碰到困难务必用英文去网上寻找答案，这也是以前看多英文论文养成的好习惯。

初赛采用的云计算平台能够实时进行评分，因此很能激发参赛队伍的竞争意识，尤其是比赛快结束的那几天，队伍的排名经常一天变动好几遍。我的成绩排名一直都还不错，从最初的第5名逐步上升到最后的第1名，直到比赛截止前的2小时，实时评分被第二名超越，但最终采用全样本进行的终极排名还是以微弱优势排到了第一。

决赛为自由命题，感觉其他几个参赛队伍大多是GIS背景，而我是交通背景，因此从思路上来说更加考虑数据在交通行业实际应用的问题。很多时候，科学研究和实践应用之间有很大的差距，这在国内尤为明显，学术界有很复杂的模型进行公交线网的规划和公交运营的优化，但真正到了业界，都还是以经验为主。我希望成果能一定程度上缝合两者之间的差距，因此选择写了Transit Analyst这个应用，即面向公交企业的公交辅助决策系统，而不是做一个研究，当然Transit Analyst目前还有一些核心功能有待进一步的开发。程序采用R和Shiny进行开发，Shiny的好处就是网络应用，可以直接放在网络上访问，这一方面能够方便用户使用，另一方面也有起到宣传作用。这是我写的第一个完整的Shiny程序，程序中调用了DT、leaflet、plotly等服务。在熟悉R语言的前提下，学习使用Shiny非常方便，绝对是非计算机专业出身的业余程序猿开发数据应用的利器。真正碰到的困难还是在Shiny程序的部署上，尽管shiny程序可以在shinyapps.io上非常简单的进行发布，但是由于众所周知的原因在shinyapps.io上部署的应用在国内基本上无法访问。于是后来摸索着在阿里云上使用Shiny server进行Shiny应用的部署。这时之前初赛时折腾在Linux上部署R环境和Linux的使用上遇到的磨难帮了大忙，折腾了两天最终完成的部署。

如果想短期内提升自己的数据分析能力，来参加ISPRS比赛吧，这是我最大的感悟。明年ISPRS新的数据，新的命题，再来！

最终成果应用: [http://192.168.3.11:3838/isprs/](http://192.168.3.11:3838/isprs/)   
源代码: [https://github.com/coralseu/ISPRS](https://github.com/coralseu/ISPRS)   
竞赛网址：[http://citysensing.cn/opencup/](http://citysensing.cn/opencup/)   
欢迎提供意见建议和开展项目科研合作！
 
**我的竞赛海报** 
![alt text](https://coralseu.github.com/images/ISPRS.png "Transit Analyst")
{'fraction_non_alphanumeric': 0.0912137898012928, 'fraction_numerical': 0.013167344984438592, 'mean_word_length': 22.738636363636363, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 5, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 3, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7556007', 'n_tokens_mistral': 3736, 'n_tokens_neox': 4389, 'n_words': 58}