c#机器学习开发者的福音,ML.NET

目前的机器学习框架很多,TensorFlow更是其中最热门的机器框架。但是,适合C#开发者的机器学习框架却不多,TensorFlow虽然有TensorFlowSharp供C#开发者来写TensorFlow程序,但是按照GitHub的例子写却一直报错。

但是微软在Build 2018大会上兴奋地宣布了http://ML.NET的预览版,这是一种跨平台的开源机器学习框架。http://ML.NET将让广大.NET开发人员可以开发自己的模型,并且将自定义的机器学习融入到其应用程序中,无需之前拥有开发或调整机器学习模型方面的专业知识。

http://ML.NET首先是一个框架,这意味着它经扩展后可以添加流行的机器学习库,http://ML.NET将充分利用流行的深度学习库(比如TensorFlow、Caffe2和CNTK)以及一般的机器学习库(比如http://Accord.NET),从而支持其他机器学习场景,比如推荐系统、异常检测及其他方法(比如深度学习)。

今天小编测试编写了鸢尾花的分类示例,真的好写的感动到哭。

// 步骤2:创建管道并加载数据             var pipeline = new LearningPipeline();
            // 如果在VisualStudio中工作,请确保IrIS-DATA.TXT的“复制到输出目录”属性设置为“始终复制”。             string dataPath = "iris-data.txt";
            pipeline.Add(new TextLoader<IrisData>(dataPath, separator: ","));

            // 第3步:转换数据             // 将数值分配给“标签”列中的文本,因为只有在模型训练过程中才能处理数字。             pipeline.Add(new Dictionarizer("Label"));

            // 将所有特征放入向量中             pipeline.Add(new ColumnConcatenator("Features", "SepalLength", "SepalWidth", "PetalLength", "PetalWidth"));
            // 第4步:增加学习者             // 将学习算法添加到流水线中。             // 这是一个分类场景(这是什么类型的鸢尾花?)             pipeline.Add(new StochasticDualCoordinateAscentClassifier());

            // 将标签转换为原始文本(在步骤3中转换为数字)             pipeline.Add(new PredictedLabelColumnOriginalValueConverter() { PredictedLabelColumn = "PredictedLabel" });

            // 第5步:根据数据集训练模型             var model = pipeline.Train<IrisData, IrisPrediction>();

            // 第6步:使用你的模型进行预测             // 你可以改变这些数字来测试不同的预测。             var prediction = model.Predict(new IrisData()
            {
                SepalLength = 3.3f,
                SepalWidth = 1.6f,
                PetalLength = 0.2f,
                PetalWidth = 5.1f,
            });

            Console.WriteLine($"Predicted flower type is: {prediction.PredictedLabels}");

通过这段代码,我觉得有点像用rapidminer的感觉,对于初级开发者来说,来给成功例子,比直接上来就手写训练模型来的简单,而且容易成功!我相信,http://ML.NET陆续的也会开放自定义训练模型,现在就一直在GitHub上跟踪学习。

    原文作者:矿工小坑
    原文地址: https://zhuanlan.zhihu.com/p/36803287
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞