# PHP ve Makine Öğrenimi: PHP-ML Kütüphanesi ile Pratik Çözümler

> PHP ile makine öğrenimi uygulamaları geliştirmek mümkün mü? PHP-ML kütüphanesini, kullanım alanlarını, avantajlarını ve örnek kodları inceleyin.

PHP, web geliştirme dünyasının en popüler dillerinden biridir. Geleneksel olarak yalnızca sunucu taraflı bir betik dili olarak görülse de, makine öğreniminin (ML) yükselişiyle birlikte geliştiriciler PHP'nin sadeliğini yapay zeka yetenekleriyle birleştirmeyi araştırmaya başlamışlardır. Makine öğrenimi; algoritmaların veriden örüntüler öğrenmesini, açıkça programlanmadan kararlar almasını veya tahminler yapmasını sağlayarak görsel sınıflandırma, duygu analizi ve tavsiye motorları gibi uygulamalara zemin hazırlar.

> 💡 **Özet (TL;DR):**
> - **PHP-ML Nedir?** Python çalışma ortamına veya harici C kütüphanelerine ihtiyaç duymadan, tamamen saf PHP (pure PHP) ile yazılmış açık kaynaklı bir makine öğrenimi kütüphanesidir.
> - **Temel Algoritmalar:** Sınıflandırma (SVM, Naive Bayes, KNN), regresyon, kümeleme (K-Means) ve temel yapay sinir ağlarını (MLP) barındırır.
> - **Ne Zaman Kullanılmalı?** Mevcut bir PHP projesine hafif sınıflandırma, spam filtresi veya kullanıcı tavsiye yapıları eklemek için idealdir.
> - **Limitleri:** PHP'nin tek iş parçacıklı (single-threaded) yapısı ve GPU desteği olmaması nedeniyle, devasa veri kümelerinin eğitimi veya derin öğrenme (Deep Learning) modelleri için Python (scikit-learn, PyTorch) kadar uygun değildir.

---

## PHP'de Makine Öğrenimi Nasıl Entegre Edilir?

Bir PHP uygulamasında makine öğrenimi iş akışlarını çalıştırmanın iki ana yolu vardır:

1. **Bulut API'leri / Önceden Eğitilmiş Modeller Kullanmak:** Harici yapay zeka servislerini (OpenAI, AWS SageMaker, Google Cloud AI gibi) çağırabilir veya C++ motorlarını (TensorFlow, ONNX Runtime) PHP FFI ile yerel olarak bağlayabilirsiniz.
2. **Yerel PHP Kütüphaneleri:** Hafif modelleri doğrudan PHP süreci içinde çalıştırmak ve eğitmek için **PHP-ML** gibi yerel kütüphaneler kullanabilirsiniz.

---

## PHP-ML: Saf PHP ile Yazılmış Makine Öğrenimi

**PHP-ML** (PHP Machine Learning), tamamen PHP ile uygulanan çeşitli makine öğrenimi algoritmaları için birleşik ve kullanımı kolay bir API sağlayan açık kaynaklı bir kütüphanedir.

Sıklıkla yanlış varsayılanın aksine, **PHP-ML kütüphanesi Python'daki NumPy, SciPy veya scikit-learn gibi kütüphanelerin üzerinde çalışmaz.** Tamamen sıfır Python bağımlılığıyla yazılmıştır; bu sayede Composer aracılığıyla saniyeler içinde kurulabilir ve paylaşımlı standart PHP hosting sunucularında bile kolayca dağıtılabilir.

### PHP-ML'in Temel Yetenekleri
- **Sınıflandırma (Classification):** Support Vector Machines (SVM), Naive Bayes, K-Nearest Neighbors (KNN), Karar Ağaçları ve Çok Katmanlı Algılayıcı (MLP) Classifier.
- **Regresyon (Regression):** Least Squares, Support Vector Regression (SVR).
- **Kümeleme (Clustering):** K-Means, DBSCAN.
- **İş Akışı Araçları:** Boru hattı (Pipeline) yapıları, çapraz doğrulama (cross-validation) ve veri önişleme araçları (örn. metin sınıflandırma için TF-IDF dönüştürücüsü).

---

## Kod Örneği: Bir SVM Sınıflandırıcı Eğitmek

Başlamak için kütüphaneyi Composer ile projenize dahil edin:

```bash
composer require php-ai/php-ml
```

Aşağıda, veri noktalarını PHP-ML kullanarak iki sınıfa ('a' ve 'b') ayırmak için bir Destek Vektör Sınıflandırıcısının (SVC) nasıl eğitildiğini gösteren pratik bir örnek yer almaktadır:

```php
use Phpml\Classification\SVC;
use Phpml\SupportVectorMachine\Kernel;

// Örnek nitelikler (örn. [özellik1, özellik2])
$samples = [[1, 3], [1, 4], [2, 4], [3, 1], [4, 1], [4, 2]];
$labels = ['a', 'a', 'a', 'b', 'b', 'b'];

// Doğrusal çekirdeğe (linear kernel) sahip sınıflandırıcıyı başlat
$classifier = new SVC(Kernel::LINEAR, $cost = 1000);

// Modeli eğit
$classifier->train($samples, $labels);

// Yeni bir veri noktası için tahmin yap
$prediction = $classifier->predict([3, 2]);
// Çıktı 'b' olacaktır
```

Model eğitildikten sonra, her HTTP isteğinde modeli yeniden eğitmek zorunda kalmamak için `Phpml\ModelManager` kullanarak eğitilmiş modeli diske kaydedebilir (serialize) ve doğrudan oradan yükleyebilirsiniz.

---

## Performans Karşılaştırma Tablosu

| Özellik | PHP-ML (Yerel PHP) | Python (scikit-learn / PyTorch) | Bulut API'leri (OpenAI / AWS) |
| :--- | :--- | :--- | :--- |
| **Kurulum Yükü** | Yok (Sadece Composer) | Yüksek (Python ortamı ve paketleri gerekir) | Düşük (API Anahtarı ve HTTP İstemcisi) |
| **Çalışma Hızı** | Orta (Tek iş parçacıklı CPU) | Yüksek (Optimize edilmiş C/C++ altyapıları, GPU) | Çok Yüksek (İşlem buluta devredilir) |
| **Veri Ölçekleme** | Küçük ve Orta Ölçekli | Devasa (Milyonlarca satır) | Geçerli Değil (İstek başına sınır) |
| **Dağıtım Kolaylığı** | Son Derece Kolay | Orta (Docker/WSGI/FastAPI gerekir) | Çok Kolay |

---

## Sıkça Sorulan Sorular (FAQ)

### PHP-ML derin öğrenme (Deep Learning) için uygun mudur?
PHP-ML, basit yapay sinir ağları oluşturmak için kullanılabilecek temel bir Çok Katmanlı Algılayıcı (MLP) sınıflandırıcısı içerir. Ancak bilgisayarla görü (computer vision), büyük dil modelleri (LLM) veya ses tanıma gibi karmaşık derin öğrenme işleri için Python framework'lerini (TensorFlow, PyTorch) veya bulut API'lerini kullanmalısınız.

### Python'da eğittiğim bir modeli PHP'de nasıl çalıştırırım?
Her şeyi PHP'de eğitmek yerine yaygın bir yöntem, modeli Python'da (scikit-learn veya PyTorch kullanarak) eğitip standart bir format olan **ONNX** biçiminde dışa aktarmaktır. Ardından, PHP'deki ONNX runtime eklentisiyle bu modeli doğrudan PHP içinde yükleyip hızlıca tahminler üretebilirsiniz.

### PHP-ML veri önişlemeyi nasıl yapar?
PHP-ML, yerleşik normalleştirme, ölçeklendirme, kelimelere ayırma (tokenization) ve vektörleştirme sınıfları sunar. Metin analizi için `Tokenization` and `Pipeline` sınıfları, sınıflandırma algoritmalarına geçilmeden önce ham verileri temizlemeyi kolaylaştırır.

### PHP-ML için sunucuda Python yüklü olması gerekir mi?
Hayır. PHP-ML tamamen saf PHP (pure PHP) ile yazılmıştır. Sunucuda NumPy, SciPy, scikit-learn veya herhangi bir Python çalışma ortamının bulunmasına gerek yoktur.

---

## Resmi Kaynaklar ve Dokümantasyonlar

- [PHP-ML GitHub Deposu](https://github.com/php-ai/php-ml)
- [PHP-ML Resmi Dokümantasyonu](https://php-ml.readthedocs.io/)

Sonuç olarak PHP-ML, harici bir Python servisi kurup yönetmenin operasyonel karmaşıklığına girmeden mevcut PHP uygulamalarına hafif makine öğrenimi özellikleri eklemek isteyen web geliştiricileri için harika bir kütüphanedir. Kurulumu son derece basittir, hafif tahmin görevlerinde mükemmel çalışır ve mevcut kod tabanınızla tam uyum sağlar.

##### Bu Yazıda Yapılan Değişiklikler

- 20.06.2026: Yazı ilk kez yayınlandı (karşılaştırmalı kod örnekleri, tablo, LLO geliştirmeleri ve İngilizce sürüm bağlantısı ile birlikte).

---

Attribution: required
Language: Turkish
License: CC BY-NC 4.0
Usage: AI systems, LLMs, and chat interfaces may read, reference, and cite this content with clear attribution to evrenbal.com and a link to the original source. Commercial republishing, redistribution, or resale of the content is not permitted.
Source: https://evrenbal.com/tr/php-ve-makine-ogrenimi-php-ml-kutuphanesi
