C ile yazılmış, modüler ve hafif bir regresyon kütüphanesi. Lineer/Logistik/Poisson/Ridge/Lasso/Elastic Net/Robust/SVR modelleri; analitik çözücüler (Normal Denklem, QR, SVD) ve zengin optimizasyon algoritmaları (GD, SGD, Momentum, Nesterov, Adagrad, Adadelta, RMSProp, Adam, AdamW, Adamax, Nadam, Newton, Quasi-Newton, L-BFGS, Koordinat İnişi) ile.
- Modeller: Linear, Logistic, Poisson, Ridge, Lasso, Elastic Net, Robust Regression, SVR
- Optimizasyon: İlk-dereceden (GD, SGD, Momentum, Nesterov, Adagrad, Adadelta, RMSProp, Adam, AdamW, Adamax, Nadam), İkinci-dereceden (Newton, Quasi-Newton, L-BFGS), Koordinat inişi
- Analitik çözücüler: Normal denklem, QR ayrışımı, SVD
- Kayıplar: MSE, MAE, LogLoss, Huber
- Metrikler: Accuracy, R²,
- Bağımlılık yok, C99, kolay derlenir (GCC/Clang)
- Public başlıklar
include/altında; örnekler yalnızcacreg.hüzerinden tüm API’ye erişir. src/tarafında her modül kendi public başlığını include eder ve gerektiğindetypes.h,utils/*başlıklarını kullanır.- Ayrıntılar için
ARCHITECTURE.mddosyasına bakın.
include/: Public API (modeller, optimizers, analytic, loss, metrics, utils,types.h,creg.h)src/: Modül implementasyonları (modeller, optimizers, analytic, loss, metrics, utils)examples/: Derlenebilir, minimal örnek programlar (yalnızca<stdio.h>+creg.hiçerir)Makefile: Örnekleri derlemek için üst seviye make kurallarıARCHITECTURE.md: Mimari kurallar ve include sözleşmeleri
Önkoşullar: GCC ya da Clang (C99), make.
Örnekleri derlemek için proje kökünde:
makeTemizlemek için:
make cleanmake tüm examples/ altındaki .c dosyalarını derleyip aynı dizinlerde çalıştırılabilirler üretir (repoda .gitignore ile takip dışıdır).
- Örnekler: Yalnızca
#include "creg.h"(ve gerekiyorsa<stdio.h>). Başka internal başlık include edilmez. - src implementasyonları: Kendi public başlığını ve ihtiyaca göre
types.h,utils/matrix.h,utils/math.h,loss/loss.hvb. include eder.
PR’lar ve issue’lar memnuniyetle karşılanır. Yeni bir modül eklerken:
- Public başlığı
include/<kategori>/<isim>.haltında oluşturun. - Implementasyonu
src/<kategori>/<isim>/<isim>.caltında konumlandırın. - Örnek gerekiyorsa
examples/altında minimal bir.cdosyası ekleyin ve yalnızcacreg.hkullanın.
- Temel veri yapıları ve API’lerin doldurulması (şu an bir kısmı placeholder)
- Test altyapısı ve CI (GitHub Actions ile
makedoğrulaması) - Dokümantasyon ve basit benchmark örnekleri
Bu proje MIT lisansı ile lisanslanmıştır. Ayrıntılar için LICENSE dosyasına bakın.
Lightweight, modular regression library in C. Models: Linear/Logistic/Poisson/Ridge/Lasso/Elastic Net/Robust/SVR; Analytic solvers (Normal Equation, QR, SVD); Optimizers (GD, SGD, Momentum, Nesterov, Adagrad, Adadelta, RMSProp, Adam, AdamW, Adamax, Nadam, Newton, Quasi-Newton, L-BFGS, Coordinate Descent). No external deps, C99, easy to build.
Quick build
make
make cleanArchitecture highlights
- Public headers live under
include/and examples only includecreg.h(+<stdio.h>) - Implementations under
src/include their own public headers andtypes.h/utils/*as needed