Polinomal Regresyon -Makine Öğrenmesi (2020)
2 min readDec 18, 2020
Makine Öğrenmesinde Polinomal Regresyon ile karşınızdayım. Bu algoritma, lineer regresyon’la beraber kullanılarak modelin eğitilmesi sağlanır.
1- Veri Setini Getirme/İnceleme
import seaborn as sns
import pandas as pd
import numpy as np
from sklearn.impute import SimpleImputer
data = sns.load_dataset("tips")
df = pd.DataFrame(data)
# Eksik Verileri Ortalama ile Doldurma
imputer = SimpleImputer(missing_values=np.nan, strategy="mean")
imputer = imputer.fit(df[["total_bill"]])
df[["total_bill"]] = imputer.transform(df[["total_bill"]])
# Kategorik Olmayan Değişkenler
total_bill = df[["total_bill"]]
tip = df[["tip"]]
size = df[["size"]]
# Kategorik Değişkenler İçin 0-1 Dönüşümü
smoker = pd.get_dummies(df[["smoker"]])
time = pd.get_dummies(df[["day"]])
# Kukla Değişkeni Silme
smoker = smoker.drop("smoker_Yes", axis=1)
# Verileri Birleştirme
new_data = pd.concat([total_bill, size, smoker, time, tip], axis=1)
# Train ve Test Belirleme
training = new_data.iloc[:, 0:7]
testing = new_data.iloc[:, 7:8]
# Train Test Ayırma
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(training, testing, test_size=0.30, random_state=42)
2- Model Eğitme
from sklearn.linear_model import LinearRegression linear_reg = LinearRegression() linear_reg.fit(x_train, y_train)from sklearn.preprocessing import PolynomialFeatures polynomial_reg = PolynomialFeatures(degree=3) xp = polynomial_reg.fit_transform(x_train)linear_reg2=LinearRegression()
linear_reg2.fit(xp, y_train)
3- İstenilen Değerlerle Tahmin
print(linear_reg2.predict(polynomial_reg.fit_transform([[16.99,2,1,0,0,0,1]])))
4- MSE (Mean Squared Error)
from sklearn.metrics import mean_squared_error
y_pred = linear_reg2.predict(polynomial_reg.fit_transform(x_test))
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print("Test RMSE: ", rmse)
5- Tahmin v Gerçek
y_pred = linear_reg2.predict(polynomial_reg.fit_transform(x_test))
y_tahmin=pd.DataFrame(data = y_pred)
y_normal = pd.DataFrame(data = y_test)
y_tahmin.index = y_normal.index
result=pd.concat([y_tahmin, y_normal],axis=1)
result.columns=[["Tahmin","Gerçek"]]
print(result)
Umarım faydalı olmuştur. Diğer algoritmalarda görüşmek üzere :)
Önceki Yazı (Çoklu Lineer Regresyon)/ Sonraki Yazı (Destek Vektör Regresyonu)