营销网站制作企业虚拟主机网站建设步骤?
营销网站制作企业,虚拟主机网站建设步骤?,微信公众号推广平台,域名注册平台哪个好原文作者#xff1a;心莱科技肖鑫简单来说机器学习的核心步骤在于“获取学习数据#xff1b;选择机器算法#xff1b;定型模型#xff1b;评估模型#xff0c;预测模型结果”#xff0c;下面本人就以判断日报内容是否合格为例为大家简单的阐述一下C#的机器学习。第一步心莱科技肖鑫简单来说机器学习的核心步骤在于“获取学习数据选择机器算法定型模型评估模型预测模型结果”下面本人就以判断日报内容是否合格为例为大家简单的阐述一下C#的机器学习。第一步问题分析根据需求可以得出我们的模型是以日报的内容做为学习的特征确定的然后通过模型判断将该目标对象预测为是否符合标准合格与不合格简单来说就是一种分类场景此场景结果属于二元分类不是A就是B那么也就确定了核心算法为分类算法当然还有其它的分类算法有兴趣的可以自己去了解一下在这里就不多做说明了。第二步环境准备其他的代码编译运行的环境并没有太多要求你只需要引用C#机器学习的NuGet 包名为Microsoft.ML具体的安装步骤在此就不做详细介绍了。第三步准备数据这里会准备两个数据集 一个定型模型的数据集可以称之为学习资料wikipedia-detox-250-line-data.tsv数据实例部分展示如下你的数据按照这种排列格式即可该该格式的定义取决于你的输入数据集类的结构在下面会讲到SentimentSentimentText1 第一天上班 无事1 完成了领导的安排任务 1 编写了一些代码然后写了一些杂七杂八的文档 1 和一般的码农做了一样的事情1 和产品经理一起做了一些项目上的事情 1 早上来的时候就开始讨论需求然后开始写代码快下班的时候完成了整个过程的文档分享0 ***项目的整体编排会议设计图的首页以及我的个人中心制作 0 **项目需求的对接需求的梳理实体结构的定义数据库的迁移脑图的完善0 1、**项目的模板消息代码编写2、**项目管理后台的模板发送完善定型模型数据集准备好之后还有一个评估模型的测试数据集可以称之为标准答案wikipedia-detox-250-line-test.tsv格式与上面展示的评估数据集一样定型数据的数据越丰富算法的回归曲线方程就会越接近理想的模型方程你的模型预测结果就会越符合你的要求。第四步定义特征类根据分享的模型确定其分析的特征项并定义为相关的类并且需要引用机器学习的包using Microsoft.ML.Data;由此模型定义的数据集类如下结果可看注释 /// summary /// 输入数据集类 /// /summary public class SentimentData { /// summary /// 日志是否合格的值0为合格1不合格 /// /summary [Column(ordinal:0, name:Label)] public float Sentiment; /// summary /// 日报内容 /// /summary [Column(ordinal:1)] public string SentimentText; } /// summary /// 预测结果集类 /// /summary public class SentimentPrediction { /// summary /// 预测值是否合格 /// /summary [ColumnName(PredictedLabel)] public bool Prediction {get;set; } /// summary /// 或然率结果分布概率 /// /summary [ColumnName(Probability)] public float Probability {get;set; } }第一个SentimentData类为输入数据集类指的就是根据定型的数据集的特征项定义的集类第二个SentimentPrediction类为预测结果集类也就是你所需要的结果的类定义 该类的结构一般受你所使用的学习算法影响根据你的学习管道输出的结果以及个人需求的综合考虑来定义。输入集类带的Column属性标注其在数据集的格式位置的编排以及何为Label值。预测集的PredictedLabel在预测和评估过程中使用。第五步代码实现首先定义以指定这些路径和 _textLoader 变量用来读取数据或者是保存实验数据具体如下所示_trainDataPath 具有用于定型模型的数据集路径。_testDataPath 具有用于评估模型的数据集路径。_modelPath 具有在其中保存定型模型的路径。_textLoader 是用于加载和转换数据集的 TextLoader。 然后定义程序的入口main函数以及相应的处理方法定义SaveModelAsFile方法将模型保存为 .zip 文件代码如下所示 private static void SaveModelAsFile(MLContext mlContext, ITransformer model) { using (var fs new FileStream(_modelPath, FileMode.Create, FileAccess.Write, FileShare.Write)) mlContext.Model.Save(model, fs); Console.WriteLine(模型保存路径为{0}, _modelPath); Console.ReadLine(); }定义Train方法选择学习方法并且创建相应的学习管道输出定型后的模型model代码如下所示 public static ITransformer Train(MLContext mlContext,string dataPath) { IDataView dataView _textLoader.Read(dataPath); //数据特征化按照管道所需的格式转换数据 var pipeline mlContext.Transforms.Text.FeaturizeText(inputColumnName:SentimentText, outputColumnName:Features) //根据学习算法添加学习管道 .Append(mlContext.BinaryClassification.Trainers.FastTree(numLeaves: 50, numTrees: 50, minDatapointsInLeaves: 20)); //得到模型 var model pipeline.Fit(dataView); Console.WriteLine(); //返回定型模型 return model; }模型定型之后我们需要创建一个方法Evaluate来评测该模型的质量根据你自己的标准测试数据集与该模型的符合程度来判断并且输出相应的指标该指标参数根据你所调用的评估方法返回具体的根据你的算法方程返回相应的方程的参数 。代码如下所示 public static void Evaluate(MLContext mlContext, ITransformer model) { var dataView _textLoader.Read(_testDataPath); Console.WriteLine(用测试数据评估模型的准确性); var predictions model.Transform(dataView); //评测定型模型的质量 var metrics mlContext.BinaryClassification.Evaluate(predictions,Label); Console.WriteLine(); Console.WriteLine(模型质量量度评估); Console.WriteLine(--------------------------------); Console.WriteLine($精度:{metrics.Accuracy:P2}); Console.WriteLine($Auc:{metrics.Auc:P2}); Console.WriteLine( 模型结束评价 ); Console.ReadLine();//评测完成之后开始保存定型的模型 SaveModelAsFile(mlContext, model); }定义单个数据的预测方法Predict与批处理预测的方法PredictWithModelLoadedFromFile单个数据集的预测代码如下所示 private static void Predict(MLContext mlContext, ITransformer model) { //创建包装器 var predictionFunction model.CreatePredictionEngineSentimentData, SentimentPrediction(mlContext); SentimentData sampleStatement new SentimentData { SentimentText 爱车新需求开发麦扣日志监控部分页面数据绑定 };//预测结果 var resultprediction predictionFunction.Predict(sampleStatement); Console.WriteLine(); Console.WriteLine(单个测试数据预测 ); Console.WriteLine(); Console.WriteLine($日报内容:{sampleStatement.SentimentText} | 是否合格:{(Convert.ToBoolean(resultprediction.Prediction) ?合格 :不合格)} | 符合率:{resultprediction.Probability} ); Console.WriteLine( 预测结束 ); Console.WriteLine(); Console.ReadLine(); }批处理数据集预测方法代码如下所示 public static void PredictWithModelLoadedFromFile(MLContext mlContext) { IEnumerableSentimentData sentiments new[] { new SentimentData { SentimentText 1、完成爱车年卡代码编写 2、与客户完成需求对接 }, new SentimentData { SentimentText 没有工作内容 } }; ITransformer loadedModel;using (var stream new FileStream(_modelPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { loadedModel mlContext.Model.Load(stream); } //创建预测也称之为创建预测房屋 var sentimentStreamingDataView mlContext.Data.ReadFromEnumerable(sentiments); var predictions loadedModel.Transform(sentimentStreamingDataView); //使用模型预测结果值为1不合格还是0 合格 var predictedResults mlContext.CreateEnumerableSentimentPrediction(predictions, reuseRowObject:false); Console.WriteLine(); Console.WriteLine( 多样本加载模型的预测试验 ); var sentimentsAndPredictions sentiments.Zip(predictedResults, (sentiment, prediction) (sentiment, prediction)); foreach (var itemin sentimentsAndPredictions) { Console.WriteLine($日报内容:{item.sentiment.SentimentText} | 是否合格:{(Convert.ToBoolean(item.prediction.Prediction) ?合格 :不合格)} | 符合率:{item.prediction.Probability} ); } Console.WriteLine( 预测结束 ); Console.ReadLine(); }在以上的方法定义完成之后开始进行方法的调用public static void Main(string[] args) {//创建一个MLContext为ML作业提供一个上下文 MLContext mlContext new MLContext(seed: 0);//初始化_textLoader以将其重复应用于所需要的数据集 _textLoader mlContext.Data.CreateTextLoader( columns:new TextLoader.Column[] { new TextLoader.Column(Label, DataKind.Bool,0), new TextLoader.Column(SentimentText, DataKind.Text,1) }, separatorChar:\t, hasHeader:true ); //定型模型 var model Train(mlContext, _trainDataPath);//评测模型 Evaluate(mlContext, model);//单个数据预测 Predict(mlContext, model); //批处理预测数据 PredictWithModelLoadedFromFile(mlContext); }准备代码之后你的小小的机器人就要开始学习啦好吧开始编译运行吧。。。。。。运行产生结果为 由于训练的数据集特征化参数的准确性以及数据的涵盖广度不够导致定义的模型质量非常的不理想因此我们可以看到我们的预测结果也是不够符合我们的理想状态可见我们小机器的学习之路是非常漫长的过程啊。由此次的机器学习的小小实践本人也深有体会机器就像一个小孩一样首先你得根据他的性格特征化参数确定应该给予他什么样的学习环境学习算法创建的学习管道并提供学习资料定型机器学习模型数据集然后为其确定一个发展目标评估模型数据集并且不断的进行考试单个数据的预测与批量数据的预测考试需要特定的考试场地预测所需要调用的方法。通过该种方式让机器不断的学习不断的精进。原文地址https://www.cnblogs.com/codelove/p/10493970.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87190.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!