赞
踩
VS软件开发工具越来越强大,针对.NET开发2019年6月26号上线了机器学习框架ML.NET,但是只针对Visual Studio 2017 15.9.12及以后版本。所以各位要使用他要更新下自己的软件。同时,要下载ML.NET
开始正文,
注意我们要建立一个基于.NET Core2.1框架的应用,二不是. NET framework 4.6.1。不然后面在配unpnkg会出错。
1 我们新建一个myMLApp(Console App)项目,在解决方案管理器在工程上右键—添加---- Machine Learning。
这是弹出如下所示对话框
要生成您的模型,您需要选择您的机器学习场景,在这里我们Sentiment Analysis 场景,根据客户评论的内容(文本)预测用户的情绪。
2 下载数据进行分析,点击下载,将他保存成wikipedia-detox-250-line-data.csv 格式到你创建的工程中。然后,选择文件
在Column to Predict(Label)选择“Sentiment.”Label是你要预测的的结果,在本例中是在数据集第一列中找到的情绪。其余的列(在本例中是来自第二列评论的实际情感文本)是特性,这些特性有助于预测标签。
3 接下来开始训练你的模型,在对话框最左边选择Trian,
模型构建器使用不同的设置评估许多模型,以提供性能最佳的模型。注意,训练时间默认10秒。如果数据量越大,你应该设置更长的训练时间。
然后点击 Start training
Status——这显示了模型训练过程的状态;这将告诉您在培训过程中还剩多少时间,还将告诉您培训过程何时完成.
Best Accuracy—这显示了模型构建器迄今为止找到的最佳模型的精度。较高的精度意味着模型对测试数据的预测更加准确。
Best algorithm ——这将向您展示在模型构建器的探索过程中哪个算法执行得最好。
Last algorithm—这显示了Model Builder探索的最后一个算法。
4 评估你的模型
其中显示了各种输出,包括研究了多少个模型和ML任务(在本例中是二进制分类),Model Builder还显示了已探索的前5个模型,并显示了这5个前5个模型的几个评估指标,包括AUC、AUPRC和F1-score,您可以在这里了解更多信息。
5 创建代码
选择Add Projects.解决方案管理器中会添加机器学习模型和将定制模型应用到方案中
myMLAppML.ConsoleApp是一个. net控制台应用程序,其中包含ModelBuilder.cs(用于构建/培训模型)和Program.cs(用于运行模型)。
myMLAppML.Model是一个. net标准类库,其中包含ModelInput.cs和ModelOutput.cs(用于模型培训和使用的输入/输出类)以及MLModel.zip(生成的序列化ML模型)。
要尝试该模型,您可以运行控制台应用程序(myMLAppML.ConsoleApp)来使用该模型预测单个语句的情绪。
6 使用模型
Model Builder已经为您生成了经过训练的模型和代码,所以您现在可以在其他.NET应用程序(例如myMLApp console应用程序)中使用该模型
<1>从您的myMLApp应用程序中,向生成的库项目(myMLAppML.Model)添加一个引用。
右键单击您的myMLApp项目并选择添加 > 引用。在引用管理器中,检查myMLAppML。建模并选择OK。
<2>在你的myMLApp,安装 ML.NET NuGet package.
注意,你可能会不断出现下面这个问题,你只需要不断下载nupkg文件就可以了。
<3>myMLAppML.Model中,右击选择属性,复制到输出目录改为“”始终复制“”
<4>将myMLApp中program.cs代码改为如下所示
using System; using MyMLAppML.Model.DataModels; using Microsoft.ML; namespace myMLApp { class Program { static void Main(string[] args) { ConsumeModel(); } public static void ConsumeModel() { // Load the model MLContext mlContext = new MLContext(); ITransformer mlModel = mlContext.Model.Load("MLModel.zip", out var modelInputSchema); var predEngine = mlContext.Model.CreatePredictionEngine<ModelInput, ModelOutput>(mlModel); // Use the code below to add input data var input = new ModelInput(); input.SentimentText = "Type your sentiment"; // Try model on sample data // True is toxic, false is non-toxic ModelOutput result = predEngine.Predict(input); Console.WriteLine($"Text: {input.SentimentText} | Prediction: {(Convert.ToBoolean(result.Prediction) ? "Toxic" : "Non Toxic")} sentiment"); } } }
input.SentimentText = "That is rude.";
运行,得到预测结果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。