Python ile makine öğrenmesi

Merhaba. Python ile program yazmaya yeni başladım. Makine öğrenmesi ile ilgili basit bir önek çalışma yaptım. Örnekte doğrusal regresyon ile verilen bir kaç sıcaklık örneğine göre havanın sıcak ya da soğuk olduğunu tahmin edecek. Program verilen sıcaklıklara belirli oranlarda doğru cevap veriyor. Ancak benim sorum yüklenen dataset içinde karşılığı olan bir sıcaklık için bile %100 oran vermiyor. Kod aşağıdadır.
Yardımcı olursanız sevinirim.

TRAIN_INPUT = list()
TRAIN_OUTPUT = list()

a=-5
op=0
TRAIN_INPUT.append([a])
TRAIN_OUTPUT.append(op)

a=0
op=0
TRAIN_INPUT.append([a])
TRAIN_OUTPUT.append(op)

a=5
op=1
TRAIN_INPUT.append([a])
TRAIN_OUTPUT.append(op)


#print(TRAIN_OUTPUT)

from sklearn.linear_model import LinearRegression

predictor = LinearRegression(n_jobs=-1)
predictor.fit(X=TRAIN_INPUT, y=TRAIN_OUTPUT)
sicaklik=-5
X_TEST = [[sicaklik]]
outcome = predictor.predict(X=X_TEST)
if outcome > 0.5:
    sonuc = "Hava sıcak. Ceket giyme"
else:
    sonuc = "Oooo hava çok soğuk. Ceket giy"

coefficients = predictor.coef_

print('Sıcaklık : {} \nSonuç : {} \nOutcome : {} \nCoefficients : {}'.format(sicaklik, sonuc, outcome, coefficients))

bkz: Soru Sorarken Sıkça Düşülen Hatalar #1

İyi de sen sınıflandırma bile olabilecek, regresyon olarak düşünüldüğünde ise lojistik ya da belki en yakın komşu ile yapılması gereken bir şeyi direk doğrusal regresyonla yapmışsın.

Bir de çıkardığın doğrusal regresyon modelinin katsayısını alarak ne yapmayı düşünüyorsun, bu sadece modeli kurmak içindir. Yani katsayıyı aldığında bağımlı değişkendeki sonuca göre yorum yapacaksın, katsayıya göre değil. Yani model kurmanın mantığı budur.

Modeli kurduktan sonra yeni X değerleri ile tahminlemeler yaparsın. Ki Doğrusal Regresyon modeli çok iyi bir tahminci değildir.

Ayrıca n_jobs’u kullanmana gerek yok, zira bu kadar basit değişkenlerle CPU’yu yoruyor olmayacağın için çekirdekle ilgili bir durumda pek olacak gibi görünmüyor.

Bence daha çok model kurma üzerine çalışmalısın.

Ayrıca %100 diye bir tahminci yoktur. O istatistiksel, yani içinde hata terimi barındıran bir matematiksel fonksiyon olmaz, doğrudan matematiksel yani deterministik-matematiksel fonksiyon olur ki, bu durumda ilgilendiğiniz veri setinin tamamına(yani parametresine, yani anakütlenin tamamına) ulaşmışsınız demektir. Zaten bu durumda da regresyondan çok, bilineer interpolasyon kullanılır. Artık o olasılıksal bir şeyi bulmak değil, kesin bir şeyi tespit etmekle ilgili bir konudur.

Makine Öğrenmesi ve İstatistikte böye bir şey söz konusu değil. Mutlaka bir hata payı vardır. Alpha değeri bunun içindir. Hatta ML modellerinde bunun parametreleri vardır, hatta buna özel hata ve test başarı oranını kontrol eden çeşitli fonksiyonlar vardır.

%100 bulan bir model varsa bize de haber et, biz de öyle bir test kadar “eğitimsiz” kalmayalım.

Merhaba. açıklamaların için çok teşekkürler. Ama dediğim gibi bu işte çok yeniyim. Hatta açıklmalarında belirttiğin bazı kavramları bile daha önce duymamıştım. Bu da benim eksikliğim :slight_smile:
Makine öğreniminin en basit örneğini aradım internet üzerinde bulduğum bir kodun örneklerini azaltarak basitleştirmeye çalıştım. Açıklamalarınız için çok teşekkürler. Makine öğrenimi için varsa çok temelden ileriye bir kaç örnek paylaşırsanız sevinirim.

Yakın zamanda (1-3 ay), güzel birkaç adet kanal açacağım, linki buradan paylaşırım, ona kadar internette yeterli kaynak bulabilirsin ve birkaç yayınevinde güzel kitaplar da var. Kolay gelsin.

1 Beğeni