Пример простого машинного обучения с .NET Core

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Я думаю, что более полутора лет назад я прочитал в“реальном мире машинного обучения” Хенрик грани, Джозеф Ричардс и Марк Fetherolf. Книга, которая легко читается и идет "в точку"!!! Я уверен, что ты понимаешь, о чем я.

В то время единственное, что мешало мне действительно наслаждаться образцами книг, было то, что не было простого способа “перевести” их в .NET Core.

Ну что ж, времена изменились, и теперь ML.NET (ака Майкрософт.Мл) существует: с открытым исходным кодом и кросс-платформенный станок рамках обучения .Чистая.

Следующий пример покажет вам, как обучить модель с двоичным алгоритмом классификатора, чтобы определить, выжил ли пассажир на борту Титаника или нет (на основе образца, приведенного в главе 3 книги).

1. Создание проекта


Откройте командную строку и запустите

md titanic.ml cd titanic.ml dotnet new console 

2. Добавить ссылку на ML.NET


Nuget-пакета для ML.NET это: корпорация Майкрософт.Мл чтобы добавить ссылку на него

dotnet add package Microsoft.ML -v 0.2.0 dotnet restore 

3. Замените содержимое программы.цезий


Замените содержимое программы.cs со следующим содержанием

using Microsoft.ML; using Microsoft.ML.Data; using Microsoft.ML.Runtime.Api; using Microsoft.ML.Trainers; using Microsoft.ML.Transforms; using System; using System.Threading.Tasks;  namespace Titanic.ML {     class Program     {         static async Task Main(string[] args)         {             // Create a learning pipeline             var pipeline = new LearningPipeline();              // Load training data and add it to the pipeline             string dataPath = @".data	itanic.training.csv";             var data = new TextLoader(dataPath).CreateFrom<TitanicData>(useHeader: true, separator: ',');             pipeline.Add(data);              // Transform any text feature to numeric values             pipeline.Add(new CategoricalOneHotVectorizer(                 "Sex",                 "Ticket",                 "Fare",                 "Cabin",                 "Embarked"));              // Put all features into a vector             pipeline.Add(new ColumnConcatenator(                 "Features",                 "Pclass",                 "Sex",                 "Age",                 "SibSp",                 "Parch",                 "Ticket",                 "Fare",                 "Cabin",                 "Embarked"));              // Add a learning algorithm to the pipeline.             // This is a classification scenario (Did this passenger survive?)             pipeline.Add(new FastTreeBinaryClassifier() { NumLeaves = 5, NumTrees = 5, MinDocumentsInLeafs = 2 });              // Train your model based on the data set             Console.WriteLine($"Training Titanic.ML model...");             var model = pipeline.Train<TitanicData, TitanicPrediction>();              // Optional: Save the model to a file. You can use teh model in another program!!!             var modelPath = @".data	itanic.model";             await model.WriteAsync(modelPath);              // Use your model to make a prediction. Let's predict what happened to this passenger             var prediction = model.Predict(new TitanicData()             {                 Pclass = 3f,                 Name = "Braund, Mr. Owen Harris",                 Sex = "male",                 Age = 31,                 SibSp = 0,                 Parch = 0,                 Ticket = "335097",                 Fare = "7.75",                 Cabin = "",                 Embarked = "Q"             });              Console.WriteLine($"Did this passenger survive? {(prediction.Survived ? "Yes" : "No")}");              // Evaluate the model using the test data. In other words let's test the model              // to see how accurate it is.             Console.WriteLine($"Evaluating Titanic.ML model...");             dataPath = @".data	itanic.csv";             data = new TextLoader(dataPath).CreateFrom<TitanicData>(useHeader: true, separator: ',');             var evaluator = new Microsoft.ML.Models.BinaryClassificationEvaluator();             var metrics = evaluator.Evaluate(model, data);              Console.WriteLine($"Accuracy: {metrics.Accuracy:P2}");             Console.WriteLine($"Auc: {metrics.Auc:P2}");             Console.WriteLine($"F1Score: {metrics.F1Score:P2}");         }     } } 

Примечание: я разделен исходный набор данных из книги на этот пост.

Пожалуйста, найдите код и файлы данных здесь.

Надеюсь, это поможет!


Источник: carlos.mendible.com

Комментарии: