查看原文
其他

C#使用ML.Net完成人工智能预测

kiba518 脚本之家 2022-04-23

 关注“脚本之家”,与百万开发者在一起

作者 | kiba518

出品 | 脚本之家(ID:jb51net)



Visual Studio2019 Preview中提供了图形界面的ML.Net,所以,只要我们安装Visual Studio2019 Preview就能简单的使用ML.Net了,因为我的电脑已经安装了Visual Studio2019,所以我不需要重头安装Visual Studio2019 Preview,只要更新即可。


安装


首先找到Visual Studio Installer安装包,如下图。

运行,然后选择如下:


创建项目


我们创建一下新项目,如下图:

然后选择。

然后添加机器学习。

点击机器学习时,如果我们没有开启MLNET模型创建功能,则会弹出提示,让我们开启。

当然我们也可以手动在选项中开启,如下图:

点击【机器学习】之后会有图形界面,如下图:

然后我们可以看到,它提供了一些方案,如语义识别,图像识别,数值预测等。

我们选择数值预测,然后进入下一步,如下图:

在环境页面,选择本地训练,然后点击下一步获取数据,如下图:

这里需要选择一个数据源,我们去官网上下载一下可用的测试数据源。

这里我们下载【产品销售数据】。

方案示例数据Label特征
分类预测销售异常产品销售数据产品销售额月份

预测网站评论的情绪网站评论数据标签(负面情绪为 0,正面情绪为 1)评论、年份

预测信用卡欺诈交易信用卡数据类(存在欺诈性为 1,否则为 0)金额,V1-V28(匿名处理后的特征)

预测 GitHub 存储库中的问题类型GitHub 问题数据区域标题、描述
值预测预测出租车费用价格出租车费数据车费行程时间、距离
图像分类预测花卉的类别花卉图像花卉类型:雏菊、蒲公英、玫瑰、向日葵、郁金香图像数据本身
建议预测他人喜欢的电影电影评分用户、电影评级

 << 滑动查看更多内容>>

选择完预测数据文件,我们配置要预测的列,然后点击训练,如下图:

训练界面如下:

点击训练,大约2分钟,训练完成,输出界面会输出如下内容。

训练完成后,如下图:

我们点击评估,如下图:

如上图,预测到1月销售数据是262.8。

然后点击代码,将ML.Net代码添加到解决方案中,如下图:

添加ML.Net代码后,如下图:

生成的MLNetConsoleML.ConsoleApp项目是入口项目,Main函数如下:

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();
}

可以看到,我们预测的是Month = @"1-Jan"。

再打开ModelBuilder文件,可以看到,这里一开始就配置了数据地址和模型地址,如下图:

到这里,我们ML.Net就算初步学会使用了。


训练时长


模型生成器使用 AutoML 浏览多个模型,以查找性能最佳的模型。

更长的训练周期允许 AutoML 通过更多设置来浏览更多模型。

下表汇总了在本地计算机上为一组示例数据集获取良好性能所花的平均时间。

数据集大小训练的平均时间
0 - 10 MB10 秒
10 - 100 MB10 分钟
100 - 500 MB30 分钟
500 - 1 GB60 分钟
1 GB 以上3 小时以上

到此C#使用ML.Net完成人工智能预测的基本使用已经介绍完了,代码已经传到Github上了,欢迎大家下载。

Github地址:https://github.com/kiba518/MLNetConsole

本文作者:kiba518,.NET系统架构师

声明:本文为 脚本之家专栏作者 投稿,未经允许请勿转载。

写的不错?赞赏一下


长按扫码赞赏我

●  为何安卓一定要大内存,越用就越卡?

●  人人都欠微软一个正版? 

●  去了两家外包公司,颠覆了我的认知!

● 这一顿神操作!我把 3000 行代码重构成 15 行!

 积分兑换,来就“兑”了

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存