Simple Linear Regression

Kategori: Machine Learning , 27 Kasım 2019 , JanFranco


Linear regression algoritması, y = ax + b denklemine dayanan bir tahmin algoritmasıdır. Verileri görselleştirdiğimizde, tüm verilerin yakın da olsa, tam olmasa da uyabileceği bir çizgi çizmek temel amaçtır. Tabi ki bunlar matematiksel olarak yapılır. Görselleştirme algoritmanın içinde yoktur ve bunu kendimiz yapacağız.

İlk olarak çalışacağımız verisetini inceleyelim. Aylar ve satış verileri olarak 2 sütundan oluşmakta ve toplamda 30 satır veri bulunmaktadır. Aylar düzenli olarak artarken satışların düzenli bir artışı yoktur. İlk olarak kullanacağımız kütüphaneleri import edelim ve veri kümesini okuyalım:


import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

df = pd.read_csv('simple_linear_regression_sales.csv')
train_test_split methodu için verileri ve tahmin edilecek verileri ayrı ayrı vermemiz gerekli. Burada satışları tahmin edeceğiz. Verisetini ayıralım:


months = df[['Aylar']]
sales = df[['Satislar']]

x_train, x_test, y_train, y_test = train_test_split(months, sales, test_size=.33, random_state=0)
sklearn kütüphanesindeki LinearRegression sınıfını kullanarak bir obje oluşturacağız. Bu objenin fit ve predict methodlarını kullanacağız.


lr = LinearRegression()
lr.fit(x_train, y_train)
results = lr.predict(x_test)
Burada fit methoduna x_train ve y_train listelerini göndererek, makineye verileri öğretmiş olduk. Buradan sonra predict methodu ile herhangi bir veri gönderdiğimizde, algoritma, modelimiz bize bir sonuç üretebilecektir. Burada da x_test listesini göndererek üretilen sonuçları results değişkenine atadık. Şimdi grafikleri çizdirelim:


x_train = x_train.sort_index()
y_train = y_train.sort_index()
plt.plot(x_train, y_train)
plt.plot(x_test, results)
plt.title("Sales by Months")
plt.xlabel("Months")
plt.ylabel("Sales")
plt.legend()
plt.show()
simple linear regression

train_test_split methodunda random özelliği aktif ettiğimizden dolayı, veriler karışmıştır. İlk sırada 15. ay varken ikinci sırada 3. ay var gibi. Bu da grafikte büyük bir anlam karmaşasına neden olur. Bu sebeple ilk olarak verileri sıralamalıyız. Daha sonra x_train ve y_train listelerini kullanarak orjinal veri grafiğimizi çizdirdik. Daha sonra x_test ve results listelerini kullanarak tahmin ettiğimiz verileri çizdirdik.


Sonraki Yazı: Multiple Linear Regression, Preprocessing
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın