You need to enable JavaScript to run this app.

Ana içeriğe geç

Administrator
Öğrenci Notunu Tahmin Etme
Öğrenci Notunu Tahmin Etme 

Kodlar.tr için bir örnekle başlayacağız. Elimizde bir grup öğrencinin sınav öncesinde çalıştığı saatler ve aldıkları sınav notları var. Amacımız, yeni bir öğrencinin çalışma saatini bildiğimizde, bu öğrencinin sınav notunu tahmin edebilecek basit bir makine öğrenmesi modeli oluşturmak.
Veri:
Aşağıdaki gibi basit bir veri setimiz olduğunu varsayalım:


Kod:
Python

import numpy as np

# Çalışma saatleri (saat)
calisma_saatleri = np.array([2, 3, 5, 7, 8, 10])

# Sınav notları
sinav_notlari = np.array([60, 75, 82, 90, 93, 98])
Çözüm:
Bu basit doğrusal ilişkiyi modellemek için doğrusal regresyon (Linear Regression) algoritmasını kullanabiliriz. Python'da bu algoritmayı uygulamak için
Kod:
scikit-learn
kütüphanesini kullanacağız.

Kod:
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# Doğrusal regresyon modelini oluştur
model = LinearRegression()

# Modeli verilere göre eğit
model.fit(calisma_saatleri.reshape(-1, 1), sinav_notlari)

# Yeni bir çalışma saati için not tahmini yap
yeni_calisma_saati = 6
tahmin_edilen_not = model.predict([[yeni_calisma_saati]])
print(f"{yeni_calisma_saati} saat çalışan bir öğrencinin tahmini notu: {tahmin_edilen_not[0]:.2f}")

# Veri noktalarını ve regresyon çizgisini görselleştir
plt.scatter(calisma_saatleri, sinav_notlari, color='blue', label='Gerçek Notlar')
plt.plot(calisma_saatleri, model.predict(calisma_saatleri.reshape(-1, 1)), color='red', label='Doğrusal Regresyon Çizgisi')
plt.scatter(yeni_calisma_saati, tahmin_edilen_not, color='green', marker='x', s=100, label='Tahmin Edilen Not')
plt.xlabel('Çalışma Saatleri')
plt.ylabel('Sınav Notları')
plt.title('Çalışma Saatleri ve Sınav Notları İlişkisi')
plt.legend()
plt.grid(True)
plt.show()
  1. Veri İçe Aktarma:
    Kod:
    numpy
    kütüphanesini kullanarak çalışma saatleri ve sınav notlarını içeren NumPy dizileri oluşturduk.
  2. Model Oluşturma:
    Kod:
    sklearn.linear_model
    modülünden
    Kod:
    LinearRegression
    sınıfını kullanarak bir doğrusal regresyon modeli nesnesi oluşturduk.
  3. Modeli Eğitme:
    Kod:
    fit()
    metodu ile modelimizi mevcut çalışma saatleri ve sınav notları verileriyle eğittik.
    Kod:
    reshape(-1, 1)
    ifadesi,
    Kod:
    scikit-learn
    'ün beklentisi doğrultusunda tek özellikli (çalışma saatleri) veriyi iki boyutlu bir diziye dönüştürmek için kullanılır.
  4. Tahmin Yapma: Eğitilmiş modeli kullanarak yeni bir çalışma saati (örneğimizde 6 saat) için sınav notu tahmini yaptık.
    Kod:
    predict()
    metodu, girdi olarak iki boyutlu bir dizi beklediği için
    Kod:
    [[yeni_calisma_saati]]
    şeklinde bir girdi verdik.
  5. Görselleştirme:
    Kod:
    matplotlib.pyplot
    kütüphanesi ile gerçek veri noktalarını, elde edilen doğrusal regresyon çizgisini ve tahmin edilen notu bir grafik üzerinde gösterdik. Bu, modelin veriye ne kadar iyi uyduğunu görsel olarak anlamamıza yardımcı olur.
Bu basit örnek, Python'da
Kod:
scikit-learn
kütüphanesi kullanılarak temel bir makine öğrenmesi görevinin (regresyon) nasıl gerçekleştirilebileceğini göstermektedir. Gerçek dünya problemleri genellikle daha karmaşık veri setleri ve daha gelişmiş algoritmalar gerektirse de, bu örnek temel prensipleri anlamak için iyi bir başlangıç noktasıdır.