zoukankan      html  css  js  c++  java
  • 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 结果图


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



      
     



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

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

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

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

             
  • 相关阅读:
    jquery处理鼠标左中右键事件
    bootstrap弹出框
    移动端去掉a标签点击时出现的背景
    sessionStorage
    页面滑动到最下面,执行代码
    判断页面时向上滚动还是向下滚动
    sql 时间查询 /sql中判断更新或者插入/查询一年所有双休日
    求取最大值
    Repeater 获取数据值
    加载完毕后执行计算
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6828969.html
Copyright © 2011-2022 走看看