linkedin github youtube instagram

 

Lineer Regression

 

Lineer regression nedir?

 

Lineer regression niceliksel veriler arasındaki bağıntıları kullanarak bilinmeyen bir değeri tahmin etmemizi sağlayan matematiksel bir metottur. 

 

Örnek bir kullanım

 

Elimizde bir dataset var. Bunun içerisinde [deneyim,maas] adında iki sütun var. Örneğin 7 yıllık deneyime sahip olan birinin maaşını nasıl tahmin edebiliriz?

 Bunu X ekseni deneyim, y ekseni maaş olacak şekilde modelleyelim.

 

 

Arada bazı değerleriğimiz eksik, şimdi bunu tahmin etmek için bazı lineer çizgiler çizelim.

 

 

 

 

 

Çizgileirmizi çizdik. Resimlere baktığımızda en mantıklısı 4.resim gözüksede bunu göz kararı çizip karar veremeyiz. Gelin bunu hesaplayalım.

 

Residual Values = y - y_head

 

Örneğin x=6 noktasına bakarsak y değerimiz 7500, çizdiğimiz çizgiye göre y_head değeri ise 9000.

 

Bu durumda x=6 noktası için residual = 7500-9000 olacaktır. Ayriyeten eksiliği yok etmek için karesini alıyoruz.

 

Bu durumu tüm değerler için yapıp residual değerlerini topladıktan sonra eleman sayısına bölüyoruz.

 

MSE(Mean squared error) = sum(residual^2)/n

 

 

 

Diğer çizgilerin de MSE değerini hesaplayarak hata miktarı en az olan MSE değeri bizim için en az olan lineer doğru bizim için en doğru sonucu verecek doğrudur. Tabikide MSE değerini kendimiz hesaplamıyoruz çeşitli kütüphaneler yardımıyla bilgisayar bizim için en uygun doğruyu bulacaktır.

 

from sklearn.linear_model import LinearRegression

linear_regression = LinearRegression()

x_axis = df.deneyim.values.reshape(-1, 1)
y_axis = df.maas.values.reshape(-1, 1)

linear_regression.fit(x_axis,y_axis)
linear_regression.predict([[20]])
linear_regression.predict([[0]])

 

Örneğin yukarıdaki yazdığımız kod ile 20 yıllık bir çalışanın maaşının 24bin lira, 0 yıllık deneyimi olan çalışanın maaşının 1700lira olacağını tahmin edebiliyoruz.

 

 

 

Denklemin Grafiği

 

Bildiğiniz üzere doğrusal denklemlerin matematiksel formülü

 

y = mx+n 

 

Burada x değerine 0 verdiğimiz zaman bize sabit olan n'i verecektir. Ardından bir nokta seçip m değerinide bulabiliriz ama bunun için hazır fonksiyonları kullanıyoruz.

 

n = linear_regression.intercept_
m = linear_regression.coef_

 

Burada n değerini 1663 , m değerini 1138 olarak hesapladı. Bu durumda denklemimiz

 

y = 1138x+1663

maaş = 1138*deneyim + 1663

 

olacaktır.

 

İyi günler dilerim