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地址,获得相关项目的具体信息。存到数据库。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnVwdGdzaGVuZ29k/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="388" height="135" alt="" />

图2-2 repo info

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

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

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

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

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

第三步:机器学习

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYnVwdGdzaGVuZ29k/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="523" height="221" alt="" />

图 2-3 feature

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

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

图 2-4 PreSet
图 2-4 结果图
        得分大于零为成熟度高的项目,分数越高,成熟度越高。
  
 

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

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

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

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

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

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

    注:写这篇文章时我并未參加CSDN开源夏令营,也不确定是否会參加以及是否能參加上. 欣闻CSDN举办了"CSDN开源夏令营"活动.第一感觉是CSDN作为活动的组织者是很值得称赞的. ...

  2. CSDN开源夏令营 百度数据可视化实践 ECharts(8)问题分析

    ECharts问题描写叙述: 问题就是折线图上的点是显示的,有人问能不能一開始不显示,当你点击的时候或者是当鼠标移动到上面的时候,折线上的点才显示? 例如以下图所看到的: 分析:让折线上的点不显示能够 ...

  3. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之编译compiz源代码

    在開始介绍之前先吐个嘈:上周我们暑期ACM集训開始了.平均下来基本上是一天一赛.有时还不止.又是多校联赛,又是CodeForces,又是TopCoder.又是BestCoder,又是AcDream.还 ...

  4. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之compiz特效插件介绍及特效实现

    compiz自带的特效插件不够多,也不够强大.为了更好的体验compiz的特效,我们能够安装特效插件,在终端输入命令:sudo apt-get install compiz-plugins就能够下载特 ...

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

    (1)前言 首先谢谢林峰老师,继续接着第七篇提到的内容.CSS布局确实非常累,感觉不好看了就的调整,总的看起来的高大上嘛.好了废话不再多说.今天主要就先解说一个页面的内容,对于CSS布局后面讲会具体的 ...

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

    ECharts知识点总结: 在应用过程中总会遇到一些难以理解的概念和属性,这里就总结了一下比較难的知识点,方便理解概念.进而更好的掌握ECharts. (1)1.  一个完整的option包括什么?能 ...

  7. CSDN开源夏令营 基于Compiz的switcher插件设计与实现之前期准备 git的简单使用

    因为项目的代码须要上传到git上.就须要学习一下git的使用了. 我初步接触了一下git,准备用此帖来记录git的学习,此帖会随着我对git了解的深入动态更新. 一.GIT的介绍 1.概述:git是一 ...

  8. 商汤开源的mmdetection技术报告

    目录 1. 简介 2. 支持的算法 3. 框架与架构 6. 相关链接 前言:让我惊艳的几个库: ultralytics的yolov3,在一众yolov3的pytorch版本实现算法中脱颖而出,收到开发 ...

  9. 由csdn开源项目评选中闹出刷票问题想到投票程序的设计

    帖子<#CSDN刷票门# 有没有人在恶意刷票?CSDN请告诉我!用24小时监控数据说话!> http://www.cnblogs.com/sanshi/p/3155946.html 网站投 ...

随机推荐

  1. POJ 2184:Cow Exhibition(01背包变形)

    题意:有n个奶牛,每个奶牛有一个smart值和一个fun值,可能为正也可能为负,要求选出n只奶牛使他们smart值的和s与fun值得和f都非负,且s+f值要求最大. 分析: 一道很好的背包DP题,我们 ...

  2. 个人环境搭建——ANT安装

    ANT安装 ant的安装有两种方式: 第一种,手动安装 (1)首先需要在Apache官网下载最新版的Ant,下载地址为:http://ant.apache.org/bindownload.cgi   ...

  3. 版本控制——hg教程

    hg教程 引用来自官方网站的思维导图,来说明hg的使用规则:

  4. 蔬菜(vegetable)

    蔬菜(vegetable) 题目描述 题目背景:您使用脚本刷出了上题游戏 998244353 关的最高分 (最优解),心满意足的准备点继续学习,忽然一条弹窗弹了出来:你想明白活着的意义吗?你想真正的. ...

  5. 如何将RobotFramework中case的执行结果上传到TestLink中。

    公司的需求是: 用RobotFrameworjk框架执行case,用Testlink管理case和测试任务.需要持续统计每个版本的测试结果. 我觉得用Jenkins+Robot也行,Testlink+ ...

  6. Linux下调试段错误 (gdb,core,ulimit)

    Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位. (1)首先 在makefile中要增加编译调试选项 -g,才可以利用下面的gdb来调试 gc ...

  7. *LOJ#2306. 「NOI2017」蔬菜

    $n \leq 100000$种蔬菜,每个蔬菜有:一单位价格:卖第一单位时额外价格:总量:每天腐烂量.每天能卖$m \leq 10$单位蔬菜,多次询问:前$k \leq 100000$天最多收入多少. ...

  8. 易用的开源日志记录程序及其 .NET不用IIS实现预览站点工具

    原文发布时间为:2011-02-28 -- 来源于本人的百度文章 [由搬家工具导入] http://code.google.com/p/elmah/ (不需要改动任何的程序)、简单的配置(几行配置)、 ...

  9. ashx输出文字,执行JavaScript,输出图片等

    原文发布时间为:2009-09-30 -- 来源于本人的百度文章 [由搬家工具导入] 一提到Ashx文件,我们就会想到http handler以及图片加载(在之前我们一般使用ASPX或者Webserv ...

  10. C#Url传递中文参数时解决方法

    原文发布时间为:2008-11-05 -- 来源于本人的百度文章 [由搬家工具导入] 1.设置web.config文件。<system.web> <globalization req ...