csdn开源夏令营-ospaf中期报告

1.背景

随着将中期的代码托管到CSDN的平台上,ospaf(开源项目成熟度分析工具)已经有了小小的雏形。当然还远远不够。

首先还是要感谢这次活动组织方CSDN,感觉挺有Google Summer Code 中国版的味道。还有就是我的夏令营导师David,给了我非常多指导和帮助,线下的交流也非常让我长见识。

接着来说ospaf这个项目(有兴趣的tx能够去看题案,地址)。依照之前的计划。在中期答辩之前要完毕对于github相关api的了解,将github的一些数据clone到本地的数据库,利用一些机器学习算法训练模型。然后能够利用这个模型对其他项目进行评价。到今天为止这些功能都已经简单实现了,只是都是非常0基础的版本号(代码地址)。以下简介下项目流程。

2.项目流程

第一步:github api调用

调研三种跟github有关的api,各自是github官方api、github archive、GHTorrent。当中GHTorrent提供的数据最全(包括commits等信息),可是由于数据量实在过于庞大,在没有server之前仅仅好舍弃。剩下两种事实上提供的数据是一样的,仅仅只是github官方的api有一定的流量限制。终于还是选定了官方api。

首先就是获得github上面的项目的api地址,要做一些json格式解析工作。还有就是一些正则匹配。

存入到数据库大致是例如以下所看到的。

图 2-1 url

之后就能够读取每一个每一个url地址,获得相关项目的具体信息。存到数据库。

图2-2 repo info

第二步:处理数据。构建训练集

把数据放到数据库之后,剩下就是机器学习的内容了。由于受限于流量限制。每小时仅仅能clone下来43个项目的数据,所以训练集不足,就没有对特征进行扩维操作(下一期会重点解决这一块)。特征方面仅仅是对时间进行了调整,把年月日的格式换成了对于距离当天的日期差,如:created_at=500,也就是说这个项目是500天前建立的。

由于算法採用的是监督学习的,所以须要设定目标队列。

目标队列的获取方法是提取了一些github showcase的项目作为正样本。其他的项目为负样本。

这样就简单的组成了训练集。正样本和负样本的比例大概是1:6。总数据量有六十多个训练样本(少的可怜)。

第三步:机器学习

由于训练集较小,眼下用到的算法比較少。

用到了归一化算法、採样算法对数据进行处理,计算模型使用的是逻辑回归。下图是每一个特征的回归因子。大于零的特征对于样本是正面影响,小于零的是负面影响。

图 2-3 feature

第四步:评測(对项目打分)

以下选用了四个项目对模型进行检验,前三个是github上的热门项目,第四个是我自己的一个项目。

图 2-4 PreSet

图 2-4 结果图

得分大于零为成熟度高的项目,分数越高,成熟度越高。

项目地址:https://code.csdn.net/davidmain/ospaf

/********************************

* 本文来自博客  “李博Garvin“

* 转载请标明出处:http://blog.csdn.net/buptgshengod

******************************************/

时间: 2024-10-06 01:52:29

csdn开源夏令营-ospaf中期报告的相关文章

CSDN开源夏令营项目进入第一实习期,入选名单和优秀开题报告推荐名单公布

由CSDN推出的面向中国在校大学生的"开源夏令营"技术公益活动已于7月4日截止学生报名,自6月16日起,共有1785名学生参与了活动报名,445名学生提交了共650份开题报告,经过导师们的精心挑选和认真考核,共有67名学生最终入选. 在这短短的20天当中,学生们参与热情十足,导师们更是积极负责的与报名学生沟通并审阅其开题报告,从众多学生中选定出最符合自己项目要求的参与者. 本次活动每一个开源项目均施行一对一导师制度,最终有67名学生脱颖而出,成功获得进入第一阶段实习期的机会.据导师反馈

CSDN开源夏令营学生报名已经开始,你准备好了吗?

6月16日起,CSDN开源夏令营正式进入学生报名阶段.全日制高校在校学生可在7月4日前通过CSDN开源夏令营官网报名参与此活动. 6月16日起,CSDN开源夏令营正式进入学生报名阶段.全日制高校在校学生可在7月4日前通过CSDN开源夏令营官网报名参与此活动. 开源夏令营是CSDN推出的一个以促进国内开源生态建设为目的技术公益活动,本活动面向开源软件.开源社区和国内高校学生,旨在引导高校学生利用其暑期空闲时间,为开源软件.开源社区做出贡献,推动国内开源软件和开源社区的发展,推动开源在高校的深入,搭

值得赞扬的尝试与进步——CSDN开源夏令营第一印象

注:写这篇文章时我并未參加CSDN开源夏令营,也不确定是否会參加以及是否能參加上. 欣闻CSDN举办了"CSDN开源夏令营"活动.第一感觉是CSDN作为活动的组织者是很值得称赞的.作为參加了Google Summer of Code的人,这里对照下CSDN开源夏令营和Google Summer of Code.纯粹是个人见解,仅供參考. 开源组织 在了解有这个活动后,第一反应是这不就是中国的GSoC吗,先给CSDN大大的一个赞.但冷静一想:国内有合格的开源组织吗?这里不是贬低国内开源活

CSDN开源夏令营 基于Compiz的switcher插件设计与实现之前言

很开心能够被选中参加开源夏令营,能够参与到中国的开源事业中来,感谢彭欢老师给了我这样一个机会. 1.项目名称:基于Compiz的switcher插件设计与实现 2.项目类别:软件 3.项目参与人员:彭欢(指导老师)  风语(我) 3.项目背景:compiz现有的switcher插件存在或多或少使用上的不便,旨在设计实现一款更好用的switcher,故提出本提案. 4.项目开发环境:Linux(Ubuntu Kylin 14.04) 5.项目目标: 基于开源窗口管理器compiz实现 可以参照其原

【开源夏令营优秀开题报告】专题之四-桌面端合集

CSDN开源夏令活动已经正式进入第一实习阶段,我们遴选出部分优秀提案开题报告进行展示.本文是桌面端开题报告展示. 编者按:CSDN开源夏令活动,已经正式进入第一实习阶段,我们遴选出了部分提案的优秀开题报告进行展示.优秀开题报告作者将得到CSDN高校俱乐部发出的"2014开源夏令营荣誉证书"及纪念品一份. 提案一:Linux程序快速启动工具 提案简介:本提案主要开发新型的Linux下程序启动操作方式. 提案地址:http://code.csdn.net/os_camp/33/propos

【开源夏令营优秀开题报告】专题之三-云与大数据合集

CSDN开源夏令活动已经正式进入第一实习阶段,我们遴选出部分优秀提案开题报告进行展示.本文是云计算与大数据类开题报告展示. 编者按:CSDN开源夏令活动,已经正式进入第一实习阶段,我们遴选出了部分提案的优秀开题报告进行展示.优秀开题报告作者将得到CSDN高校俱乐部发出的"2014开源夏令营荣誉证书"及纪念品一份. 提案1:数据可视化实践 提案简介:基于百度数据可视化组件(ECharts.ZRender)做数据可视化相关专题应用:内容主题不限,但建议贴近民生大众,如"环境&qu

【开源夏令营优秀开题报告】专题之二 - 嵌入式与智能硬件类合集

CSDN开源夏令活动已经正式进入第一实习阶段,我们遴选出部分优秀提案开题报告进行展示.本文是嵌入式与智能硬件类开题报告展示. 编者按:CSDN开源夏令活动,已经正式进入第一实习阶段,我们遴选出了部分提案的优秀开题报告进行展示.优秀开题报告作者将得到CSDN高校俱乐部发出的"2014开源夏令营荣誉证书"及纪念品一份. 提案1:环境数据采集系统  提案简介:该项目是一套利用物联网技术对环境数据进行采集.处理的综合系统:其利用传感器网络,收集环境中的温度.湿度.光照度.风速.紫外线强度.粉尘

CSDN开源夏令营 百度数据可视化实践 ECharts(6) 期中总结

期中总结 (1)首先感谢林峰老师的辛勤指导!! 通过半个多月的培训,林峰老师讲解了ECharts总体框架和其中各个部分:图类.组件.接口.基础库的具有应用方法和应该把握的细节,并通过实际的例子熟悉和掌握各个控件.只有打牢基础才能正正的为下步的工作做好准备,熟练的属性代码的编程技巧,才能做出更好的专题. (2)第一次任务重点总结: 要求:了解ECharts特性中列举的每一项特性,并能找到实例中的例子,并且在实例中操作. 重点问题: 1)ECharts一种支持多少种图表?有多少个组件?列举出中英文名

CSDN开源夏令营 百度数据可视化实践 ECharts(2)

将ECharts引入项目中的几种详细方法讲解 (1)打好基本功 首先感谢林峰老师!给我们的悉心指导.我们之所以学习ECharts和Zrender图表组件,为了就是能够将图表应用到我们的实际情况中 来,进而让图表的战士能给我们一种更加人性化的方式呈现给用户.所有我们必须熟悉ECharts中相关组件.下面的例子都以line为例. (2)将ECharts引入项目共有三种方式 2.1)第一种方式-模块化包引入 模块化包引入模式也可以称为开发模式,是开发时最好的方法,不管是开发echarts还是用echa