Öncelikle, çalışma ortamının hazırlanması için önceki yazımı okuyarak oradaki adımları sırasıyla uyguladıktan sonra buraya dönüp uygulamaya devam edebilirsiniz.
Uygulamaya başlamadan önce, kullanacağımız veri setini temin etmek için www.kaggle.com adresine gidiyoruz ve “Red Wine Quality” adlı veri setini indiriyoruz. İsterseniz buraya tıklayarak hızlı bir şekilde indirebilirsiniz.
Uygulama
Bu uygulamada, veri setindeki bilgileri kullanarak bir model eğiteceğiz ve bu modeli kullanarak kırmızı şarabın kalitesini tahmin etmeye çalışacağız. Kaggle.com’daki bilgilere göre, kalite değeri 6,5 ve üstü ise “iyi”, değilse “kötü” olarak sınıflandırılması isteniyor.
Adım 1: Gerekli kütüphaneleri içe aktaralım ve veri setini yükleyelim.
import pandas as pd
# Veri setini yükle
data = pd.read_csv("winequality-red.csv")
Adım 2: Veri setini inceleyelim “kalite” sütununu yeniden etiketleyelim.
# Veri setini incele
print(data.head())
print(data.info())
Adım 3: Kalite (“quality”) sütununu yeniden etiketleyelim.
# Kaliteyi sınıflandır
data['quality'] = data['quality'].apply(lambda x: 1 if x >= 6.5 else 0)
Adım 4: Bağımlı ve bağımsız değişkenleri belirleyelim ve veriyi eğitim ve test setlerine bölelim.
# Bağımlı değişkeni belirle
X = data.drop(columns=['quality']) # Bağımsız değişkenler
Y = data['quality'] # Bağımlı değişken
# Veriyi eğitim ve test setlerine bölelim
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=42)
Adım 5: Ölçekleme işlemi uygulayalım.
# Ölçekleme işlemi uygulayalım
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
Adım 6: Logistik regresyon modelini oluşturalım ve eğitelim.
# Logistik regresyon modelini oluşturalım ve eğitelim
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train_scaled, Y_train)
Adım 7: Modelin performansını değerlendirelim.
# Test seti üzerinde modelin performansını değerlendirelim
Y_pred = model.predict(X_test_scaled)
from sklearn.metrics import accuracy_score, confusion_matrix
# Doğruluk değerini hesaplayalım
accuracy = accuracy_score(Y_test, Y_pred)
print("Doğruluk Değeri:", accuracy)
# Karışıklık matrisini görselleştirelim
conf_matrix = confusion_matrix(Y_test, Y_pred)
print("Karışıklık Matrisi:\n", conf_matrix)
Sonuç:
Doğruluk Değeri: 0.865625
Karışıklık Matrisi:
[[264 9]
[ 34 13]]
Sonuçlar incelendiğinde, doğruluk değeri 0.865625 olarak hesaplanmıştır ki bu da modelin genel olarak yüksek bir performans sergilediğini işaret etmektedir. Model, veri kümesindeki örneklerin çoğunu doğru bir şekilde sınıflandırmıştır. Ayrıca, karışıklık matrisi analizi yapıldığında, 1 sınıfı (iyi kalite) için doğru sınıflandırma sayısının 0 sınıfına (kötü kalite) göre belirgin şekilde daha yüksek olduğu gözlemlenmektedir. Bu durum, modelin genel olarak iyi kaliteyi doğru bir şekilde tanımlama yeteneğinin, kötü kaliteyi tanımlama yeteneğinden daha güçlü olduğunu göstermektedir.
Logistik Regresyon Uygulamasının Python kodlarını indirmek için tıklayınız.
