ML.NET 示例:多類(lèi)分類(lèi)之問(wèn)題分類(lèi)

ML.NET 示例:多類(lèi)分類(lèi)之問(wèn)題分類(lèi)

寫(xiě)在前面

準(zhǔn)備近期將微軟的machinelearning-samples翻譯成中文,水平有限檐春,如有錯(cuò)漏逻淌,請(qǐng)大家多多指正。

如果有朋友對(duì)此感興趣疟暖,可以加入我:https://github.com/feiyun0112/machinelearning-samples.zh-cn

GitHub Labeler

ML.NET 版本API 類(lèi)型狀態(tài)應(yīng)用程序類(lèi)型數(shù)據(jù)類(lèi)型場(chǎng)景機(jī)器學(xué)習(xí)任務(wù)算法

v0.7動(dòng)態(tài) API最新的控制臺(tái)應(yīng)用程序.csv 文件 和 GitHub 問(wèn)題問(wèn)題分類(lèi)多類(lèi)分類(lèi)SDCA 多類(lèi)分類(lèi)器

這是一個(gè)簡(jiǎn)單的原型應(yīng)用程序卡儒,演示如何使用ML.NET?APIs。主要的重點(diǎn)是創(chuàng)建俐巴、訓(xùn)練和使用在 Predictor.cs 類(lèi)中實(shí)現(xiàn)的ML(機(jī)器學(xué)習(xí))模型骨望。

概述

GitHubLabeler 是一個(gè).NET Core控制臺(tái)應(yīng)用程序, 它的功能如下:

在被標(biāo)記的GitHub問(wèn)題上訓(xùn)練ML模型欣舵,以教導(dǎo)模型如何為新問(wèn)題分配標(biāo)簽擎鸠。 (例如,您可以使用corefx-issues-train.tsv文件缘圈,該文件包含來(lái)自包含來(lái)自公共的corefx存儲(chǔ)庫(kù)的問(wèn)題)

標(biāo)記新問(wèn)題劣光。 應(yīng)用程序?qū)腶ppsettings.json文件中指定的GitHub存儲(chǔ)庫(kù)中獲取所有未標(biāo)記的未解決問(wèn)題,并使用在上面步驟中創(chuàng)建的受過(guò)訓(xùn)練的ML模型對(duì)其進(jìn)行標(biāo)記

這個(gè)ML模型使用ML.NET的多類(lèi)分類(lèi)算法(SdcaMultiClassTrainer)糟把。

輸入您的GitHub配置數(shù)據(jù)

在appsettings.json文件中提供您的GitHub數(shù)據(jù):

為了允許應(yīng)用程序在GitHub存儲(chǔ)庫(kù)中標(biāo)記問(wèn)題绢涡,您需要向 appsettings.json 文件中提供以下數(shù)據(jù)。

{"GitHubToken":"YOUR-GUID-GITHUB-TOKEN","GitHubRepoOwner":"YOUR-REPO-USER-OWNER-OR-ORGANIZATION","GitHubRepoName":"YOUR-REPO-SINGLE-NAME"}

您的用戶(hù)帳戶(hù)(GitHubToken)應(yīng)具有對(duì)存儲(chǔ)庫(kù)(GitHubRepoName)的寫(xiě)入權(quán)限遣疯。

點(diǎn)擊這里查看如何創(chuàng)建Github令牌雄可。

GitHubRepoOwner可以是GitHub用戶(hù)ID(即“MyUser”),也可以是GitHub組織(即“dotnet”)另锋。

提供訓(xùn)練文件

a. 您可以使用現(xiàn)有的corefx_issues.tsv數(shù)據(jù)文件來(lái)體驗(yàn)該程序。 在這種情況下狭归,將從corefx存儲(chǔ)庫(kù)的標(biāo)簽中選擇預(yù)測(cè)的標(biāo)簽夭坪。 無(wú)需更改。

b. 要使用GitHub存儲(chǔ)庫(kù)中的標(biāo)簽过椎,您需要在數(shù)據(jù)上訓(xùn)練模型室梅。為此,請(qǐng)從您的存儲(chǔ)庫(kù)中導(dǎo)出GitHub問(wèn)題到.tsv文件,文件包含以下幾列:

ID - 問(wèn)題 ID

Area - 問(wèn)題的標(biāo)簽(以這種方式命名以避免與ML.NET中的Label概念混淆)

Title - 問(wèn)題的標(biāo)題

Description - 問(wèn)題的描述

將文件添加到Data文件夾下亡鼠。更新DataSetLocation段以匹配您的文件名:

privatestaticstringDataSetLocation =$"{BaseDatasetsLocation}/corefx-issues-train.tsv";

訓(xùn)練

訓(xùn)練是通過(guò)已知示例(在本例中赏殃,是包含標(biāo)簽的問(wèn)題)運(yùn)行ML模型并教授它如何標(biāo)記新問(wèn)題的過(guò)程。在這個(gè)示例中间涵,它是通過(guò)在控制臺(tái)應(yīng)用程序調(diào)用下列方法來(lái)完成:

BuildAndTrainModel(DataSetLocation, ModelFilePathName);

訓(xùn)練完成后仁热,模型將保存為MLModels\GitHubLabelerModel.zip。

標(biāo)記

當(dāng)模型被訓(xùn)練后勾哩,它可以用于預(yù)測(cè)新問(wèn)題的標(biāo)簽抗蠢。

對(duì)于沒(méi)有連接到真正的GitHub存儲(chǔ)庫(kù)的單個(gè)測(cè)試/演示,請(qǐng)?jiān)诳刂婆_(tái)應(yīng)用程序中調(diào)用下列方法:

TestSingleLabelPrediction(ModelFilePathName);

要訪問(wèn)GitHub存儲(chǔ)庫(kù)的實(shí)際問(wèn)題思劳,請(qǐng)?jiān)诳刂婆_(tái)應(yīng)用程序中調(diào)用另一個(gè)方法:

awaitPredictLabelsAndUpdateGitHub(ModelFilePathName);

為了便于在從GitHub倉(cāng)庫(kù)中讀取問(wèn)題時(shí)進(jìn)行測(cè)試迅矛,它只會(huì)加載過(guò)去10分鐘中創(chuàng)建的并且需要標(biāo)記的未標(biāo)記問(wèn)題。 但是您可以修改這個(gè)配置:

Since = DateTime.Now.AddMinutes(-10)

您可以修改這些設(shè)置潜叛。 在預(yù)測(cè)標(biāo)簽后秽褒,程序會(huì)使用預(yù)測(cè)的標(biāo)簽更新GitHub倉(cāng)庫(kù)中的問(wèn)題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末威兜,一起剝皮案震驚了整個(gè)濱河市销斟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牡属,老刑警劉巖票堵,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異逮栅,居然都是意外死亡悴势,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)措伐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)特纤,“玉大人,你說(shuō)我怎么就攤上這事侥加∨醮妫” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵担败,是天一觀的道長(zhǎng)昔穴。 經(jīng)常有香客問(wèn)我,道長(zhǎng)提前,這世上最難降的妖魔是什么吗货? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮狈网,結(jié)果婚禮上宙搬,老公的妹妹穿的比我還像新娘笨腥。我一直安慰自己,他們只是感情好勇垛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布脖母。 她就那樣靜靜地躺著,像睡著了一般闲孤。 火紅的嫁衣襯著肌膚如雪谆级。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,737評(píng)論 1 305
  • 那天崭放,我揣著相機(jī)與錄音哨苛,去河邊找鬼。 笑死币砂,一個(gè)胖子當(dāng)著我的面吹牛建峭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播决摧,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼亿蒸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了掌桩?” 一聲冷哼從身側(cè)響起边锁,我...
    開(kāi)封第一講書(shū)人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎波岛,沒(méi)想到半個(gè)月后茅坛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡则拷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年贡蓖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片煌茬。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斥铺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出坛善,到底是詐尸還是另有隱情晾蜘,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布眠屎,位于F島的核電站剔交,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏改衩。R本人自食惡果不足惜岖常,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望燎字。 院中可真熱鬧腥椒,春花似錦、人聲如沸候衍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蛉鹿。三九已至滨砍,卻和暖如春方妖,著一層夾襖步出監(jiān)牢的瞬間企锌,已是汗流浹背隶校。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工闯冷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留累贤,地道東北人真朗。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓咆课,卻偏偏與公主長(zhǎng)得像唤崭,于是被迫代替她去往敵國(guó)和親棕孙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舔亭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容