Merhaba, bu yazımda sizlere ML.net kütüphanesi kullanarak basit bir arıza tahmini yapan bir uygulama nasıl geliştirilir onu anlatıyor olacağım. Bu uygulama çok basit olduğundan işin mantığını anlatmak amacı ile oluşturuldu siz kendi tablo yapınıza göre geliştirebilirsiniz. öncelikle iş adımlarımızdan bahsedelim.
- Proje Oluşturma: Visual Studio veya Visual Studio Code gibi bir IDE kullanarak yeni bir ASP.NET Core projesi oluşturun.
- ML.NET Kütüphanesini Ekleyin: Projenize ML.NET kütüphanesini eklemek için NuGet paket yöneticisini kullanabilirsiniz. Microsoft.ML paketini projenize ekleyin.
- Veri Hazırlama: Öncelikle, arıza verileri tablosunu içeren bir CSV dosyası oluşturun veya kullanın. Bu dosyayı projenize ekleyin ve verileri okumak için bir veri okuyucu oluşturun.
using Microsoft.ML.Data;
public class ArizaVerisi
{
[LoadColumn(0)]
public DateTime Tarih { get; set; }
[LoadColumn(1)]
public float ArizaSayisi { get; set; }
}
- Model Oluşturma: Ardından, tahminler yapmak için bir model oluşturmanız gerekecektir. Bu örnekte, zaman serisi tahmini için SsaSpikeEstimator kullanacağız.
using Microsoft.ML;
using Microsoft.ML.Transforms.TimeSeries;
var context = new MLContext();
var pipeline = context.Transforms.DetectSpikeBySsa(
outputColumnName: "Spike",
inputColumnName: "ArizaSayisi",
confidence: 95,
pvalueHistoryLength: 30,
trainingWindowSize: 90,
seasonalityWindowSize: 30,
maximumAnomalyRatio: 0.1f);
var model = pipeline.Fit(dataView);
- Modeli Kullanma: Modeli kullanarak tahminler yapmak için, bir tahminci oluşturmanız gerekecektir.
var engine = context.Model.CreatePredictionEngine<ArizaVerisi, ArizaTahmini>(model);
var tahmin = engine.Predict(new ArizaVerisi { Tarih = DateTime.Now, ArizaSayisi = 10 });
- Sonuçları Kullanma: Tahmin sonuçlarını kullanarak uygulamanızda işlem yapabilirsiniz.
public class ArizaTahmini
{
[VectorType(3)]
public double[] Prediction { get; set; }
}
var spike = tahmin.Prediction[0];
var pValue = tahmin.Prediction[1];
var forecast = tahmin.Prediction[2];
Bu örnek, ML.NET kütüphanesini kullanarak basit bir tahmin uygulaması oluşturmanıza yardımcı olacaktır. Ancak, gerçek bir uygulama geliştirirken daha fazla ayrıntıya ve özelleştirmeye ihtiyacınız olabilir. ML.NET’in internet sitesinden daha fazla bilgi sağlayabilirsiniz
https://learn.microsoft.com/tr-tr/dotnet/machine-learning/mldotnet-api
https://learn.microsoft.com/tr-tr/shows/on-dotnet/training-machine-learning-models-with-mlnet