csdn开源夏令营-ospaf中期报告
生活随笔
收集整理的這篇文章主要介紹了
csdn开源夏令营-ospaf中期报告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.背景
隨著將中期的代碼托管到CSDN的平臺上,ospaf(開源項目成熟度分析工具)已經有了小小的雛形,當然還遠遠不夠。 ? ? ? 首先還是要感謝這次活動組織方CSDN,感覺挺有Google Summer Code 中國版的味道。還有就是我的夏令營導師David,給了我很多指導和幫助,線下的交流也很讓我長見識。 ? ? ?接著來說ospaf這個項目(有興趣的tx可以去看題案,地址)。按照之前的計劃,在中期答辯之前要完成對于github相關api的了解,將github的一些數據clone到本地的數據庫,利用一些機器學習算法訓練模型,然后可以利用這個模型對其它項目進行評價。到今天為止這些功能都已經簡單實現了,不過都是很初級的版本(代碼地址)。下面簡單介紹下項目流程。2.項目流程
? ? ?第一步:github api調用
? ? ? ? ?調研三種跟github有關的api,分別是github官方api、github archive、GHTorrent。其中GHTorrent提供的數據最全(包含commits等信息),但是因為數據量實在過于龐大,在沒有服務器之前只好舍棄。剩下兩種其實提供的數據是一樣的,只不過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
******************************************/
總結
以上是生活随笔為你收集整理的csdn开源夏令营-ospaf中期报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【云端大数据实战】大数据误区、大数据处理
- 下一篇: Ohloh调研报告