最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

項目經(jīng)驗分享|openGauss 唐武國:成為開源項目的貢獻者是一件驕傲的事情

2023-09-05 15:48 作者:開源之夏  | 我要投稿


開源之夏個人專訪與項目經(jīng)驗分享持續(xù)開放中,歡迎已從開源之夏畢業(yè)或正在參與開源之夏活動的學(xué)生、導(dǎo)師一同加入專訪行動,掃描文末二維碼填寫專訪問卷,與大家分享你眼中的開源之夏!

本期項目經(jīng)驗分享來自openGauss社區(qū)中選學(xué)生——唐武國,在開源之夏2023中承擔(dān)的項目是openGauss用戶操作模型


#?關(guān)于openGauss開源社區(qū)

openGauss是一款開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),采用木蘭寬松許可證v2發(fā)行。openGauss內(nèi)核深度融合華為在數(shù)據(jù)庫領(lǐng)域多年的經(jīng)驗,結(jié)合企業(yè)級場景需求,持續(xù)構(gòu)建競爭力特性。同時openGauss也是一個開源的數(shù)據(jù)庫平臺,鼓勵社區(qū)貢獻、合作。

官網(wǎng):https://opengauss.org/zh/


# 項目基本信息

項目名稱:openGauss用戶操作模型

項目導(dǎo)師:湯學(xué)明

項目簡述:使用機器學(xué)習(xí)根據(jù)openGauss審計日志中的用戶操作提取用戶操作特點,建立用戶操作畫像。

項目鏈接:https://summer-ospp.ac.cn/org/prodetail/23c9e0541


# 項目開發(fā)情況

1.?項目要求理解

項目要求探索openGauss已有的機器學(xué)習(xí)模塊和用戶操作模型構(gòu)建算法,完成技術(shù)洞察博客一篇。在審計日志中提取出用戶操作時間、操作客體等相關(guān)信息。根據(jù)用戶操作信息提取用戶操作特點,完成程序開發(fā),實現(xiàn)用戶操作畫像功能,完成設(shè)計文檔。

2. 方案描述

首先我們明確一下將用戶的畫像問題看作一個多分類任務(wù),確定好模型的輸入輸出。模型的輸入是設(shè)計好的用戶操作特征,模型輸出的是該用戶的類型。而要從原始的審計日志到用戶特征需要經(jīng)過特征工程模塊;在用戶操作模型中選用的是以邏輯回歸為基礎(chǔ)分類器的多分類模型。

整體的流程如下圖所示:

1. 首先需要收集指定時間段的審計審計日志;

2. 通過分析改日志來篩除一些無效的數(shù)據(jù),設(shè)計一些用戶特征,例如用戶的一次操 作需要包括主體、客體、操作類型(哪個用戶對誰做了什么)等信息;

3. 接著需要處理數(shù)據(jù)集,例如給類別數(shù)據(jù)編號,劃分數(shù)據(jù)集;

4. 使用為了評估模型分類的好壞,這里選擇準確率作為指標;

5. 根據(jù)指標的好壞,我們可以調(diào)整模型的超參數(shù),使得模型在訓(xùn)練集上分類得更好;

6. 選定好超參數(shù)后模型就可以使用了,之后數(shù)據(jù)庫中又會產(chǎn)生許多的用戶操作日志,我們可以重新收集日志來迭代模型。

3. 關(guān)鍵問題&解決辦法

如何獲取審計日志數(shù)據(jù)

我們的目標就是使用審計日志來進行用戶畫像,但是因為自己先前并沒有使用過openGauss數(shù)據(jù)庫手上沒有現(xiàn)成的日志數(shù)據(jù),于是只好在網(wǎng)上找找看有沒有別人公開的。但是對于開發(fā)者來說數(shù)據(jù)庫的日志屬于很機密的數(shù)據(jù)很少會公開出來,查找了幾天都沒有結(jié)果,便只好自己模擬出來。所以在日志數(shù)據(jù)獲取上花費的時間要比預(yù)期多些。

那具體怎么模擬呢?首先確定的是需要一個多用戶操作的數(shù)據(jù)庫,不然只給一名用戶畫像就沒意義了;其次模擬既要盡可能的貼近真實同時也要簡單。最后我選擇設(shè)計一個多用戶的教務(wù)管理系統(tǒng)并使用python腳本來自動模擬用戶的操作,模擬結(jié)束后在openGauss中導(dǎo)出審計日志。

數(shù)據(jù)庫設(shè)計

多用戶設(shè)計

opengauss:超級管理員,創(chuàng)建用戶pm

pm:項目架構(gòu)師;負責(zé)設(shè)計、創(chuàng)建數(shù)據(jù)庫、表格、視圖;創(chuàng)建下面的用戶

t_coder:老師端,主要對成績表增、改,對教師表查詢

s_coder:學(xué)生端,成績、學(xué)生表查詢

affair:教務(wù)處,負責(zé)增刪學(xué)生表、老師表、課程表


用戶畫像怎么實現(xiàn)

一開始看到要對用戶畫像其實并不好怎么下手,于是我調(diào)研了一些用戶畫像的案例,學(xué)習(xí)一下當前做畫像的主流算法和步驟,這樣在心中也大概有譜了。

可以看到大多對用戶行為的數(shù)據(jù)經(jīng)過統(tǒng)計學(xué)分析,才確定好用戶的特征,這些特征就是對用戶的畫像;接下來可以使用機器學(xué)習(xí)模型對用戶進行分類。于是我認真分析了審計日志,并統(tǒng)計了主體、客體、操作類型的分布。

原始的審計日志中每條數(shù)據(jù)包括下面這些屬性:

用戶操作類型的統(tǒng)計

依據(jù)前面對操作類型的觀察,可以發(fā)現(xiàn)操作主要分為:

  • 系統(tǒng)級操作,如登錄,創(chuàng)建用戶,分配權(quán)限,設(shè)置參數(shù)

  • 數(shù)據(jù)庫級操作,創(chuàng)建數(shù)據(jù)庫,模式,表

  • 表級操作,對表的增刪改查

因此,在設(shè)計操作特征的時候,也按照這些類別創(chuàng)建了各類操作的視圖(所有視圖均是統(tǒng)計每天的次數(shù)),最后便得到了下面的用戶特征表,每一條數(shù)據(jù)表示某一天該用戶的操作特征,包括一下8個屬性:

  • query_login,用戶每天的登錄次數(shù)

  • query_sys,除了登錄操作,其他的系統(tǒng)級操作次數(shù)

  • query_db,數(shù)據(jù)庫級的操作次數(shù)

  • query_insert_all,所有對表的插入操作

  • query_insert_score,所有對score表的插入操作

  • query_insert_score,所有對score表的插入操作

  • query_sel_info,各類信息表的查詢

  • query_sel_score,對成績表的查詢

從日志中提取到操作特征后,計算出訓(xùn)練數(shù)據(jù)中各個特征的下四分位值a_25作為我們的判定閾值。即有75%的數(shù)據(jù)是大于這個a_25;同時防止該特征出現(xiàn)的很少例如操作數(shù)據(jù)庫的特征,絕大部分數(shù)據(jù)都會等于0此時,對于這種情況我們手動設(shè)置該閾值為1。如果用戶在該屬性上大于閾值就賦予對應(yīng)的標簽于是就實現(xiàn)了用戶畫像。

用戶畫像

最后我還提出了使用用戶操作特征的來識別危險的用戶,具體做法是訓(xùn)練一個機器學(xué)習(xí)模型讓模型學(xué)習(xí)區(qū)分各種類型的用戶,這屬于多分類模型,如果遇到異常的用戶行為,由于與以往該用戶的行為有區(qū)別,模型便會將其判斷出來時可疑的用戶。

例如在下面的測試中,將學(xué)生端的insert_score屬性改為了1,模擬學(xué)生端用戶修改了成績表,這是與異常操作,最后我們的模型確實能夠識別出來。

使用訓(xùn)練的log_m1模型預(yù)測用戶類別
包含異常數(shù)據(jù)的數(shù)據(jù)集
識別的可疑用戶


# 開源之夏個人隨訪

--項目經(jīng)歷--

OSPP請簡單介紹一下自己吧。

唐武國大家好,我叫唐武國,是中南大學(xué)計算機學(xué)院的一名研二學(xué)生,這是我第一次參與開源之夏的活動,也是第一次參加開源項目。

OSPP你是如何了解并參與到開源之夏的?你認為完成一個項目任務(wù)的關(guān)鍵是什么?

唐武國其實最早我是在大四的時候從同學(xué)的口中了解到有開源之夏這個活動的,覺得這個活動形式非常好并決定挑戰(zhàn)一下自己,但比較可惜的是當時已經(jīng)過了報名時間,所以我一直都有關(guān)注OSPP的官網(wǎng),并很早就將報名的時間記錄到日程中。也算是比較幸運,第一次申請就成功了。

相比OSPP中的各種開源項目都是“大”工程,自己以往的那些項目只能算是小demo,自己只管把功能實現(xiàn)了而沒有考慮實際用戶體驗、性能和安全性。但正這些小項目也為我積累了許多的經(jīng)驗和試錯機會,我也從中體會到團隊合作的樂趣。我印象最深的是和隊友做一個尋找走失老人的救援指揮系統(tǒng),這是我第一次參與比較大的項目了,我們需要在幾個月的時間內(nèi)做好用于報案和救援的微信小程序,給隊長指揮調(diào)度的網(wǎng)頁應(yīng)用。通過看教程、文檔快速入門小程序開發(fā)和地圖API的使用,最后經(jīng)過與隊友的共同努力還是順利提交了作品。

比賽答辯前一天還在修bug


為了趕進度被關(guān)在實驗樓

--參與開源--

OSPP你眼中的開源是什么?

唐武國在我看來,開源組織和開源貢獻者都是很了不起的。通過開源可以集中全球開發(fā)者的力量來做好一個項目,這件事聽起來就讓人激動。我在參加OSPP的過程中也了解到中國的開發(fā)者也在努力貢獻自己的成果,領(lǐng)導(dǎo)開發(fā)了許多優(yōu)秀的項目:openEuler、鴻蒙操作系統(tǒng),openGauss數(shù)據(jù)庫等等。

OSPP結(jié)合你自身經(jīng)歷,你認為高校學(xué)生參與開源有必要嗎?學(xué)生會把參與開源作為一種優(yōu)先級比較高的選擇嗎?

唐武國在我看來高校學(xué)生可能還是不會把參加開源項目作為優(yōu)先選擇,我身邊的同學(xué)還是實習(xí)、參加競賽的比較多。可能大多人知道開源這回事但并不知如何開始,也害怕參與開源項目的時候沒有人指導(dǎo)。而剛好OSPP就提供了這樣一個平臺,對接了開源組織、導(dǎo)師、學(xué)生三方,還有獎勵機制所以我還是很推薦大家參加的,我自己也希望能夠繼續(xù)參與開源之夏的活動。

--收獲與寄語--

OSPP有什么話想對計劃參加開源之夏活動以及開源的學(xué)弟學(xué)妹們說?

唐武國參與開源真的是件很有意義的事,當你的名字出現(xiàn)在開源項目的貢獻者名單中是很驕傲的。在整個參與這次開源的項目中,我確實收獲了很多:了解如何參與開源、國產(chǎn)的開源數(shù)據(jù)庫、如何構(gòu)建用戶畫像等等,這種收獲不僅是具體的知識也是學(xué)習(xí)能力的提升。在我開發(fā)的過程中也有幸能夠得到與來自華中科大的湯學(xué)明老師、李浩然學(xué)長的悉心指導(dǎo),讓我不斷改進代碼,順利完成項目要求。最后,可能你還是會擔(dān)心項目太難、自己的能力不夠。但相信我只要你肯投入一定的時間,你也可以的。

[1]https://www.heywhale.com/mw/project/5ed9c13fb772f5002d6dc07c

[2]https://www.heywhale.com/mw/project/64001b982bed561a3a9b9edc

[3]https://www.kaggle.com/code/liamwoodly/eda-prediction

[4]https://dl.ccf.org.cn/article/articleDetail.html?type=qkwz&_ack=1&id=5460231971866624


END

專欄編輯:大夢

校對:校大山、唐武國

制圖:GoodWhite

專欄投稿請聯(lián)系開源小助手:kaiyuanzhixia 或?qū)诰庉嫞篐ungryfish34(備注“專欄投稿”加速通過),或填寫下方專訪信息收集問卷。



項目經(jīng)驗分享|openGauss 唐武國:成為開源項目的貢獻者是一件驕傲的事情的評論 (共 條)

分享到微博請遵守國家法律
疏勒县| 徐汇区| 宕昌县| 启东市| 台江县| 疏附县| 涿州市| 长乐市| 辰溪县| 孟津县| 灵璧县| 浠水县| 罗田县| 建阳市| 临澧县| 城市| 江源县| 永兴县| 博罗县| 宁德市| 都江堰市| 星子县| 浦东新区| 环江| 鸡东县| 罗定市| 林西县| 海宁市| 嘉兴市| 斗六市| 垣曲县| 耿马| 绥阳县| 乌恰县| 兴国县| 阿拉尔市| 仙桃市| 神木县| 谢通门县| 长宁区| 枣阳市|