Regresyon analizi, istatistik ve makine öğreniminde en önemli alanlardan biridir. Birçok regresyon yöntemi mevcuttur. Doğrusal regresyon da bunlardan biridir.
Regresyon Nedir?
Regresyon değişkenler arasındaki ilişkileri ortaya koyan ve buna göre tahminler üretilmesini sağlayan istatistiksel bir ölçümdür.
Örneğin, bir şirkette çalışanları gözlemleyerek maaşlarının deneyim, eğitim seviyesi, rol, çalıştıkları şehir vb. özelliklere bağlı olarak nasıl değiştiğini anlayabiliriz. Bu her çalışanla ilgili verinin gözlemi temsil ettiği bir regresyon problemidir. Bu problemde deneyim, eğitim seviyesi, rol ve şehir bağımsız değişkenler iken, maaş ise bu değişkenlere bağlı olarak değiştiği için bağımlı değişken olarak kabul edilir.
Benzer şekilde, ev fiyatları ile konum, oda sayısı, şehir merkezine olan uzaklık gibi değişkenler arasında da bir matematiksel bağlantı vardır.
Regresyon problemleri genellikle sürekli ve sınırsız bağımlı değişkene sahiptir. Problemlerin girdileri; cinsiyet, milliyet, marka vb. sürekli, ayrık hatta kategorik veriler olabilir.
Problemin çıktılarını 𝑦 ile girdilerini 𝑥 ile göstermek yaygın bir uygulamadır. İki veya daha fazla bağımsız değişken varsa, bunlar 𝐱 = (𝑥₁,…, 𝑥ᵣ) vektörü olarak temsil edilebilir. Burada 𝑟 girdi sayısıdır.
Regresyona Ne Zaman İhtiyacımız Var?
Bazı olayların diğerini etkileyip etkilemediğini, nasıl etkilediğini veya birkaç değişkenin arasında nasıl bir ilişki olduğunu cevaplamak için regresyona ihtiyaç duyarız. Örneğin, deneyim veya cinsiyetin maaşları etkileyip etkilemediğini ve ne ölçüde etkilediğini belirlemek için regresyonu kullanabiliriz.
Regresyon, yeni bir tahmin seti kullanarak bir yanıtı tahmin etmek istediğinizde de yararlıdır. Örneğin, açık hava sıcaklığı, günün saati ve o hanedeki konut sakinlerinin sayısı göz önüne alındığında, bir evin elektrik tüketimini önümüzdeki saat için tahmin etmeye çalışabiliriz.
Regresyon ekonomi, bilgisayar bilimi, sosyal bilimler gibi birçok farklı alanda kullanılmaktadır. Regresyonun önemi, veri miktarının artması ve verilerin değeri konusunda artan farkındalık ile her geçen gün artmaktadır.
Basit Doğrusal Regresyon
Öncelikle doğrusal regresyon temel kavramlarından bahsedelim:
Basit doğrusal regresyon, iki değişken arasında var olan doğrusal ilişkinin açıklanmasını sağlayan bir regresyon modeli (bir doğrunun denklemi) üretilmesinden oluşur. Bağımlı değişken Y ve bağımsız değişken X olarak tanımlanır.
Doğrusal regresyon denklemi: y=ax+b
a eğimi ,
y bağımlı değişkeni,
x bağımsız değişkeni,
b ise doğrunun ne kadar kaydırılacağını gösterir.
Bu makalede pyhtonda doğrusal regresyonun uygulanmasını göstereceğiz.
Doğrusal Regresyon Uygulaması
Öncelikle hangi kütüphaneleri kullanacağımızdan bahsedelim.
• Matplotlib → Veri görselleştirme için kullanılan python kütüphanesidir.
• Pandas → Veri analizi yapmak için kullanılan python kütüphanesidir.
• Scikit-Learn(sklearn) → Yaygın olarak kullanılan açık kaynak kodlu makine öğrenmesi kütüphanesidir.
Öncelikle modelimize gerekli olan kütüphaneleri ekleyelim.
1 2 |
import matplotlib.pyplot as plt import pandas as pd |
Verimizi pandas kütüphanesinde yaygın olarak kullanılan read_csv methodu yardımı ile okuyalım.
1 |
veriler = pd.read_csv('satislar.csv') |
Aylar,Satislar
Aylar,Satislar
8,19671.5
10,23102.5
11,18865.5
12,2662.5
14,19945.5
19,28321
19,60074
20,27222.5
20,32222.5
23,27594.5
25,31609
25,27897
25,28478.5
27,28790.5
29,30555.5
31,33969
32,33014.5
34,41544
37,40681.5
38,4697
42,45869
43,48136.5
47,50651
50,56906
53,58715.5
55,52791
59,58484.5
59,56317.5
64,61195.5
65,60936
#Aylar ve Satışlar kolonlarını ayıralım.
Satışlar aylara göre değişen bağımlı değişken,
Aylar ise bağımsız değişkendir.
1 2 |
aylar = veriler[['Aylar']] satislar = veriler[['Satislar']] |
#Verileri egitim ve test icin bölelim.
1 2 |
from sklearn.cross_validation import train_test_split x_train, x_test,y_train,y_test = train_test_split(aylar,satislar,test_size=0.33, random_state=0) |
Lineer regresyon modelini inşa edelim.
1 2 |
from sklearn.linear_model import LinearRegression lr = LinearRegression() |
x_trainden y_traini öğrenelim.
1 |
lr.fit(x_train,y_train) |
Test datamızla modelimize tahmin ürettirelim.
1 2 |
prediction = lr.predict(x_test) print(prediction) |
1 2 3 4 5 6 7 8 9 10 11 12 |
# İndexe göre sıralama x_train = x_train.sort_index() y_train = y_train.sort_index() #Grafik çizme plt.plot(x_train,y_train) plt.plot(x_test,lr.predict(x_test)) #Grafik başlığı,x ve y için etiket oluşturma plt.title("Aylara Göre Satış") plt.xlabel("Aylar") plt.ylabel("Satışlar") |

1 2 3 |
from sklearn.metrics import r2_score print("Lineer R2 değeri:") print(r2_score(y_test,lr.predict(x_test))) |
0.923833189633769
Business Intelligence Specialist
Halil İbrahim AKCA
Eline sağlık Pınar Hanım, gayet bilgilendirici ve yalın bir anlatım olmuş. Sayenizde Bu konu hakkında fikir sahip olmuş oldum. Kendi adıma ve okuyan diğer arkadaşlar adına böyle bir içeriği bizler ile paylaştığınız için teşekkür ederim 🙂