"Scikit-learn kütüphanesinin regresyon modelleri ve bunların ONNX'e aktarılması" makalesi için tartışma

 

Yeni makaleye göz atın: Scikit-learn kütüphanesinin regresyon modelleri ve bunların ONNX'e aktarılması.

Bu makalede, Scikit-learn paketinden regresyon modellerinin uygulanmasını inceleyecek, bunları ONNX formatına dönüştürmeye çalışacak ve sonuçta ortaya çıkan modelleri MQL5 programlarında kullanacağız. Ayrıca, orijinal modellerin doğruluğunu hem float hem de double hassasiyet için ONNX versiyonlarıyla karşılaştıracağız. Ek olarak, regresyon modellerinin ONNX temsilini inceleyerek iç yapılarının ve çalışma prensiplerinin daha iyi anlaşılmasını sağlayacağız.

Scikit-learn, Python topluluğunda makine öğrenimi için en popüler ve yaygın olarak kullanılan kütüphanelerden biridir. Geniş bir algoritma yelpazesi, kullanıcı dostu bir arayüz ve iyi bir dokümantasyon sunar. "Scikit-learn kütüphanesinin sınıflandırma modelleri ve bunların ONNX'e aktarılması" başlıklı bir önceki makalede sınıflandırma modelleri ele alınmıştı.

Bu makalede ise Scikit-learn paketindeki regresyon modellerinin uygulanmasını inceleyeceğiz, test veri kümesi için parametrelerini double hassasiyetle hesaplayacağız, bunları float ve double hassasiyet için ONNX formatına dönüştürmeye çalışacağız ve elde edilen modelleri MQL5 programlarında kullanacağız. Ayrıca, float ve double hassasiyet için orijinal modellerin ve ONNX versiyonlarının doğruluğunu karşılaştıracağız. Ek olarak, regresyon modellerinin ONNX temsilini inceleyeceğiz, bu da iç yapılarının ve işleyişlerinin daha iyi anlaşılmasını sağlayacaktır.

Yazar: MetaQuotes

 

Hata ne olabilir, log:

2025.07.03 13:41:23.699 Core 1  2025.06.27 22:00:00   ONNX: Non-zero status code returned while running TreeEnsembleRegressor node. Name:'' Status Message: E:\workspace\external\onnx\onnx-runtime\src\core\framework\execution_frame.cc:173 onnxruntime::IExecutionFrame::GetOrCreateNodeOutputMLValue shape && tensor.Shape() == *shape was false. OrtValue shape verification failed. Current shape:{1} Requested shape:{1,1}

2025.07.03 13:41:23.699 Core 1  2025.06.27 22:00:00   ONNX: execute OnnxRun failed (OrtStatus: 6 'Non-zero status code returned while running TreeEnsembleRegressor node. Name:'' Durum Mesajı: E:\workspace\external\onnx\onnx\onnx-runtime\src\core\framework\execution_frame.cc:173 onnxruntime::IExecutionFrame::GetOrCreateNodeOutputMLValue shape && tensor.S...'...'), inspect code 'ôU! fìV' (130:4)

Catboost regressor modeli:

const ulong output_shape[] = {1};
   if(!OnnxSetOutputShape(ExtHandle, 0, output_shape)) // Ошибки нет!
     {
      Print("OnnxSetOutputShape 2 error ", GetLastError());
      return(INIT_FAILED);
     }
vectorf out2(1);
   
OnnxRun(ExtHandle, ONNX_DEFAULT, f, out2); // Возникают вышеприведенные ошибки

Anladığım kadarıyla, çıktı tensörünün (dizi) şekline küfrediyor. Ama doğru ayarlanmış.