C#使用ML.Net完成人工智能預(yù)測(cè)
前言
Visual Studio2019 Preview中提供了圖形界面的ML.Net,所以,只要我們安裝Visual Studio2019 Preview就能簡(jiǎn)單的使用ML.Net了,因?yàn)槲业碾娔X已經(jīng)安裝了Visual Studio2019,所以我不需要重頭安裝Visual Studio2019 Preview,只要更新即可。
安裝
首先找到Visual Studio Installer安裝包,如下圖。
運(yùn)行,然后選擇如下:
創(chuàng)建項(xiàng)目
我們創(chuàng)建一下新項(xiàng)目,如下圖:
然后選擇。
然后添加機(jī)器學(xué)習(xí)。
點(diǎn)擊機(jī)器學(xué)習(xí)時(shí),如果我們沒(méi)有開(kāi)啟MLNET模型創(chuàng)建功能,則會(huì)彈出提示,讓我們開(kāi)啟。
當(dāng)然我們也可以手動(dòng)在選項(xiàng)中開(kāi)啟,如下圖:
點(diǎn)擊【機(jī)器學(xué)習(xí)】之后會(huì)有圖形界面,如下圖:
然后我們可以看到,它提供了一些方案,如語(yǔ)義識(shí)別,圖像識(shí)別,數(shù)值預(yù)測(cè)等。
我們選擇數(shù)值預(yù)測(cè),然后進(jìn)入下一步,如下圖:
在環(huán)境頁(yè)面,選擇本地訓(xùn)練,然后點(diǎn)擊下一步獲取數(shù)據(jù),如下圖:
這里需要選擇一個(gè)數(shù)據(jù)源,我們?nèi)ス倬W(wǎng)上下載一下可用的測(cè)試數(shù)據(jù)源。
這里我們下載【產(chǎn)品銷售數(shù)據(jù)】。
方案 | 示例 | 數(shù)據(jù) | Label | 特征 |
---|---|---|---|---|
分類 | 預(yù)測(cè)銷售異常 | 產(chǎn)品銷售數(shù)據(jù) | 產(chǎn)品銷售額 | 月份 |
預(yù)測(cè)網(wǎng)站評(píng)論的情緒 | 網(wǎng)站評(píng)論數(shù)據(jù) | 標(biāo)簽(負(fù)面情緒為 0,正面情緒為 1) | 評(píng)論、年份 | |
預(yù)測(cè)信用卡欺詐交易 | 信用卡數(shù)據(jù) | 類(存在欺詐性為 1,否則為 0) | 金額,V1-V28(匿名處理后的特征) | |
預(yù)測(cè) GitHub 存儲(chǔ)庫(kù)中的問(wèn)題類型 | GitHub 問(wèn)題數(shù)據(jù) | 區(qū)域 | 標(biāo)題、描述 | |
值預(yù)測(cè) | 預(yù)測(cè)出租車費(fèi)用價(jià)格 | 出租車費(fèi)數(shù)據(jù) | 車費(fèi) | 行程時(shí)間、距離 |
圖像分類 | 預(yù)測(cè)花卉的類別 | 花卉圖像 | 花卉類型:雛菊、蒲公英、玫瑰、向日葵、郁金香 | 圖像數(shù)據(jù)本身 |
建議 | 預(yù)測(cè)他人喜歡的電影 | 電影評(píng)分 | 用戶、電影 | 評(píng)級(jí) |
選擇完預(yù)測(cè)數(shù)據(jù)文件,我們配置要預(yù)測(cè)的列,然后點(diǎn)擊訓(xùn)練,如下圖:
訓(xùn)練界面如下:
點(diǎn)擊訓(xùn)練,大約2分鐘,訓(xùn)練完成,輸出界面會(huì)輸出如下內(nèi)容。
訓(xùn)練完成后,如下圖:
我們點(diǎn)擊評(píng)估,如下圖:
如上圖,預(yù)測(cè)到1月銷售數(shù)據(jù)是262.8。
然后點(diǎn)擊代碼,將ML.Net代碼添加到解決方案中,如下圖:
添加ML.Net代碼后,如下圖:
生成的MLNetConsoleML.ConsoleApp項(xiàng)目是入口項(xiàng)目,Main函數(shù)如下:
static void Main(string[] args) { // Create single instance of sample data from first line of dataset for model input ModelInput sampleData = new ModelInput() { Month = @"1-Jan", }; // Make a single prediction on the sample data and print results var predictionResult = ConsumeModel.Predict(sampleData); Console.WriteLine("Using model to make single prediction -- Comparing actual ProductSales with predicted ProductSales from sample data...\n\n"); Console.WriteLine($"Month: {sampleData.Month}"); Console.WriteLine($"\n\nPredicted ProductSales: {predictionResult.Score}\n\n"); Console.WriteLine("=============== End of process, hit any key to finish ==============="); Console.ReadKey(); }
可以看到,我們預(yù)測(cè)的是Month = @"1-Jan"。
再打開(kāi)ModelBuilder文件,可以看到,這里一開(kāi)始就配置了數(shù)據(jù)地址和模型地址,如下圖:
到這里,我們ML.Net就算初步學(xué)會(huì)使用了,下面,再提供一個(gè)官網(wǎng)GIF圖片供大家參考。
訓(xùn)練時(shí)長(zhǎng)
模型生成器使用 AutoML 瀏覽多個(gè)模型,以查找性能最佳的模型。
更長(zhǎng)的訓(xùn)練周期允許 AutoML 通過(guò)更多設(shè)置來(lái)瀏覽更多模型。
下表匯總了在本地計(jì)算機(jī)上為一組示例數(shù)據(jù)集獲取良好性能所花的平均時(shí)間。
數(shù)據(jù)集大小 | 訓(xùn)練的平均時(shí)間 |
---|---|
0 - 10 MB | 10 秒 |
10 - 100 MB | 10 分鐘 |
100 - 500 MB | 30 分鐘 |
500 - 1 GB | 60 分鐘 |
1 GB 以上 | 3 小時(shí)以上 |
----------------------------------------------------------------------------------------------------
參考網(wǎng)址:https://docs.microsoft.com/zh-cn/dotnet/machine-learning/automate-training-with-model-builder
----------------------------------------------------------------------------------------------------
到此C#使用ML.Net完成人工智能預(yù)測(cè)的基本使用已經(jīng)介紹完了。
代碼已經(jīng)傳到Github上了,歡迎大家下載。
Github地址:https://github.com/kiba518/MLNetConsole
到此這篇關(guān)于C#使用ML.Net完成人工智能預(yù)測(cè)的文章就介紹到這了,更多相關(guān)C#人工智能預(yù)測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#遍歷文件夾及其子目錄的完整實(shí)現(xiàn)方法
這篇文章主要介紹了C#遍歷文件夾及其子目錄的方法,涉及C#文件與目錄的基本操作技巧,簡(jiǎn)單實(shí)用,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06巧用Dictionary實(shí)現(xiàn)日志數(shù)據(jù)批量插入
這篇文章主要介紹了巧用Dictionary實(shí)現(xiàn)日志數(shù)據(jù)批量插入,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼
這篇文章主要介紹了基于C#實(shí)現(xiàn)的端口掃描器實(shí)例代碼,需要的朋友可以參考下2014-07-07.NET企業(yè)級(jí)項(xiàng)目中遇到的國(guó)際化問(wèn)題和解決方法
這篇文章主要介紹了.NET企業(yè)級(jí)項(xiàng)目中遇到的國(guó)際化問(wèn)題和解決方法,說(shuō)明了理國(guó)際化問(wèn)題的一些典型例子和經(jīng)驗(yàn)之談,需要的朋友可以參考下2014-07-07C# SQLite序列操作實(shí)現(xiàn)方法詳解
這篇文章主要介紹了C# SQLite序列操作實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了C#實(shí)現(xiàn)SQLite序列操作的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-07-07Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成
這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)動(dòng)態(tài)列表生成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04C#定義并實(shí)現(xiàn)單鏈表實(shí)例解析
這篇文章主要介紹了C#定義并實(shí)現(xiàn)單鏈表實(shí)例解析,有助于讀者加深對(duì)C#實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的理解,需要的朋友可以參考下2014-07-07C# linq查詢之動(dòng)態(tài)OrderBy用法實(shí)例
這篇文章主要介紹了C# linq查詢之動(dòng)態(tài)OrderBy用法,實(shí)例分析了C#采用linq方式查詢時(shí)動(dòng)態(tài)排序的相關(guān)技巧,需要的朋友可以參考下2015-06-06