Garfield
YZF Admin
Python ile yapay zekâ projesine başlamak için önce küçük ve ölçülebilir bir problem seçin; ardından veriyi hazırlayıp bir model eğitin, daha önce görülmemiş verilerle test edin ve sonucu basit bir arayüz veya API üzerinden kullanıma açın. Başlangıç için e-posta metnini “istenmeyen” veya “normal” olarak sınıflandıran bir proje uygundur: Girdi metin olur, model metindeki kelime örüntülerini öğrenir, çıktı ise sınıf ve tahmin güvenidir.
Python; veri hazırlama, model eğitimi, test, görselleştirme ve uygulamaya alma aşamalarını aynı ekosistemde birleştirdiği için yapay zekâ projelerinde sık kullanılır. Ancak Python tek başına yapay zekâ sağlamaz. Sonucu belirleyen temel unsurlar problem tanımı, veri kalitesi, doğru test yöntemi ve seçilen modeldir.
Tablodaki zorluk seviyeleri kesin bir ölçüm değildir. Veri miktarı, hazır model kullanımı, donanım ve projenin hata maliyeti arttıkça aynı proje türü daha karmaşık hâle gelebilir. Örneğin kişisel bir yorum sınıflandırıcısı ile tıbbi karar destek sistemi aynı teknik başlığa girse de güvenlik ve doğrulama gereksinimleri aynı değildir.
Aşağıdaki örnek varsayımsaldır ve küçük bir eğitim verisi kullanır. Gerçek bir uygulamada daha fazla, dengeli ve farklı kişilerden toplanmış veriye ihtiyaç vardır. Modelin eğitim verisini ezberlemesi, yeni metinlerde başarılı olduğu anlamına gelmez.
Ön koşul olarak Python’un kurulu olması ve komut satırını kullanabilmeniz gerekir. Projeyi ayrı bir klasörde ve sanal ortam içinde çalıştırın; böylece bu projeye ait paketler diğer Python çalışmalarını etkilemez.
İlk aşamada daha fazla ve dengeli örnek toplayın. Eğitim, doğrulama ve test verilerini birbirinden ayırın; test verisini model geliştirme sırasında tekrar tekrar kullanmayın. Yanlış sınıflandırılan metinleri ayrı inceleyin: sorun yazım farklılıkları, yetersiz veri, yanlış etiket veya modelin bağlamı anlayamaması olabilir.
Sonraki adım, modeli bir komut satırı programı yerine Flask veya FastAPI gibi bir web servisine bağlamak ve tahmini bir arayüzden almaktır. Model kişisel veri işliyorsa verileri gereksiz yere saklamayın, günlük kayıtlarına hassas metinleri yazmayın ve tanılama çıktısını iş bittikten sonra kaldırın. İnsanların güvenliğini veya parasını etkileyen kararlar için bu küçük örneği doğrudan üretimde kullanmayın; bağımsız test, hata incelemesi ve insan denetimi gerekir.
Python ile hangi yapay zekâ projeleri yapılabilir?
Python; veri hazırlama, model eğitimi, test, görselleştirme ve uygulamaya alma aşamalarını aynı ekosistemde birleştirdiği için yapay zekâ projelerinde sık kullanılır. Ancak Python tek başına yapay zekâ sağlamaz. Sonucu belirleyen temel unsurlar problem tanımı, veri kalitesi, doğru test yöntemi ve seçilen modeldir.
| Proje türü | Girdi | Örnek çıktı | Başlangıç zorluğu |
|---|---|---|---|
| Metin sınıflandırma | E-posta veya yorum | Spam, normal veya duygu sınıfı | Düşük |
| Tahmin | Geçmiş sayısal veriler | Geleceğe yönelik tahmin | Orta |
| Görüntü sınıflandırma | Fotoğraf | Nesne veya kategori | Orta |
| Öneri sistemi | Kullanıcı ve ürün davranışı | Önerilen içerik | Orta-yüksek |
| Üretken yapay zekâ uygulaması | Metin, belge veya komut | Yanıt, özet veya içerik | Model ve API seçimine bağlı |
İlk proje: metin sınıflandırıcısı
Aşağıdaki örnek varsayımsaldır ve küçük bir eğitim verisi kullanır. Gerçek bir uygulamada daha fazla, dengeli ve farklı kişilerden toplanmış veriye ihtiyaç vardır. Modelin eğitim verisini ezberlemesi, yeni metinlerde başarılı olduğu anlamına gelmez.
Kurulum ve çalıştırma
Ön koşul olarak Python’un kurulu olması ve komut satırını kullanabilmeniz gerekir. Projeyi ayrı bir klasörde ve sanal ortam içinde çalıştırın; böylece bu projeye ait paketler diğer Python çalışmalarını etkilemez.
- Proje klasörünü ve sanal ortamı oluşturun. Komut satırında aşağıdaki komutları çalıştırın. Sanal ortam etkinleştiğinde komut satırının başında genellikle ortamın adı görünür.
Python:mkdir yapay_zeka_projesi cd yapay_zeka_projesi python -m venv .venv # Windows .venv\\Scripts\\activate # macOS veya Linux source .venv/bin/activate - Gerekli paketleri yükleyin. Metinleri sayısal özelliklere dönüştürmek ve sınıflandırma modeli eğitmek için scikit-learn paketini yükleyin.
Python:python -m pip install scikit-learn - Python dosyasını oluşturun. Klasörde
spam_modeli.pyadında bir dosya açın ve aşağıdaki kodu ekleyin.
Python:from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.pipeline import Pipeline from sklearn.metrics import classification_report metinler = [ "Ücretsiz ödülünüzü kazanmak için hemen bağlantıya tıklayın", "Toplantı yarın saat onda başlayacak", "Hesabınızı doğrulamak için ödül fırsatını kaçırmayın", "Bugün gönderdiğiniz raporu inceledim", "Acil kampanya fırsatı, hemen başvurun", "Akşam yemeği için alışveriş yapmamız gerekiyor", "Bedava hediye kazanmak için formu doldurun", "Dosyayı güncelleyip size tekrar göndereceğim", ] etiketler = [ "spam", "normal", "spam", "normal", "spam", "normal", "spam", "normal" ] x_egitim, x_test, y_egitim, y_test = train_test_split( metinler, etiketler, test_size=0.25, random_state=42, stratify=etiketler, ) model = Pipeline([ ("vektor", TfidfVectorizer()), ("siniflandirici", LogisticRegression()), ]) model.fit(x_egitim, y_egitim) tahminler = model.predict(x_test) print(classification_report(y_test, tahminler, zero_division=0)) ornek = ["Ödülünüz hazır, almak için bağlantıyı açın"] print("Tahmin:", model.predict(ornek)[0]) print("Olasılıklar:", model.predict_proba(ornek)[0]) - Modeli çalıştırın. Dosyanın bulunduğu klasörde
python spam_modeli.pykomutunu çalıştırın. Rapor bölümünde doğruluk, kesinlik, duyarlılık ve F1 skoru gibi ölçümler; son satırlarda ise örnek metnin tahmini görünür.
- Sonucu yeni verilerle kontrol edin. Kod içindeki
orneklistesini eğitim verisinde bulunmayan birkaç cümleyle değiştirin. Model sürekli aynı sınıfı döndürüyorsa veri dengesini, metin çeşitliliğini ve etiketlerin doğru yazılıp yazılmadığını kontrol edin.
TfidfVectorizer, kelimelerin belgelerdeki ayırt edici önemini sayısal özelliklere dönüştürür. LogisticRegression ise bu özelliklerden sınıf tahmini öğrenir. Çıktıdaki olasılıklar kesin doğruluk anlamına gelmez; modelin kendi içindeki göreli güvenini gösterir. Küçük veriyle yüksek skor almak, gerçek dünyada da yüksek başarı kanıtı değildir.Projeyi büyütürken neyi değiştirmelisiniz?
İlk aşamada daha fazla ve dengeli örnek toplayın. Eğitim, doğrulama ve test verilerini birbirinden ayırın; test verisini model geliştirme sırasında tekrar tekrar kullanmayın. Yanlış sınıflandırılan metinleri ayrı inceleyin: sorun yazım farklılıkları, yetersiz veri, yanlış etiket veya modelin bağlamı anlayamaması olabilir.
Sonraki adım, modeli bir komut satırı programı yerine Flask veya FastAPI gibi bir web servisine bağlamak ve tahmini bir arayüzden almaktır. Model kişisel veri işliyorsa verileri gereksiz yere saklamayın, günlük kayıtlarına hassas metinleri yazmayın ve tanılama çıktısını iş bittikten sonra kaldırın. İnsanların güvenliğini veya parasını etkileyen kararlar için bu küçük örneği doğrudan üretimde kullanmayın; bağımsız test, hata incelemesi ve insan denetimi gerekir.
Sık sorulan sorular
Yapay zekâ projesi için güçlü bir bilgisayar gerekir mi?
Küçük metin sınıflandırma ve tablo verisi projeleri çoğu bilgisayarda çalışabilir. Büyük görüntü veya dil modellerini sıfırdan eğitmek ise daha fazla bellek, işlem gücü ve veri gerektirir. Başlangıçta hazır modelleri kullanmak veya küçük veri kümeleriyle çalışmak daha uygulanabilirdir.
Modelin doğruluk oranı yüksekse proje başarılı sayılır mı?
Hayır. Sınıflar dengesizse doğruluk oranı yanıltıcı olabilir. Spam örneklerinin çok, normal örneklerin az olduğu bir veri kümesinde model her metne spam diyerek yüksek görünen bir doğruluk elde edebilir. Bu nedenle özellikle kesinlik, duyarlılık, F1 skoru ve yanlış sınıflandırılan örnekler birlikte incelenmelidir.