Çoklu Doğrusal Regresyon (multiple linear regression), bir veri setine ait bağımlı değişken ile birkaç bağımsız değişken arasındaki en iyi ilişkiyi tahmin etmek için kullanılabilen ve makine öğrenmesi altında uygulanan regresyon modellerinden birisidir.
#1. kutuphaneler
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#2.1. Veri Yukleme
veriler = pd.read_csv('veriler.csv')
#3.1 Veri Ön İşleme
boy_kilo_yas = veriler.iloc[:,1:4].values
#encoder: Kategorik -> Numeric
ulke = veriler.iloc[:,0:1].values
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
ulke[:,0] = le.fit_transform(ulke[:,0])
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(categorical_features='all')
ulke=ohe.fit_transform(ulke).toarray()
cinsiyet = veriler.iloc[:,-1:].values
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
cinsiyet[:,0] = le.fit_transform(cinsiyet[:,0])
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(categorical_features='all')
cinsiyet=ohe.fit_transform(cinsiyet).toarray()
#4.1numpy dizileri dataframe donusumu
#Eğitim test işleminden önce DataFrame birleştirme-Concat
ulke_df = pd.DataFrame(data = ulke, index = range(22), columns=['fr','tr','us'] )
boy_kilo_yas_df =pd.DataFrame(data = boy_kilo_yas, index = range(22), columns = ['boy','kilo','yas'])
cinsiyet_df = pd.DataFrame(data = cinsiyet[:,:1] , index=range(22), columns=['cinsiyet'])
#dataframe birlestirme islemi
ilk_birlestirme=pd.concat([ulke_df,boy_kilo_yas_df],axis=1)
son_birlestirme= pd.concat([ilk_birlestirme,cinsiyet_df],axis=1)
#5.1 Boy tahmini yapacağımız için kolonları tekrar ayır
boy = son_birlestirme.iloc[:,3:4].values
sol = son_birlestirme.iloc[:,:3]
sag = son_birlestirme.iloc[:,4:]
#boy kolonu hariç diğer kolonları birleştir
veri = pd.concat([sol,sag],axis=1)
#verilerin egitim ve test icin bolunmesi
from sklearn.model_selection import train_test_split
x_train, x_test,y_train,y_test = train_test_split(veri,boy,test_size=0.33, random_state=0)
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(x_train,y_train)
y_pred = regressor.predict(x_test)