Boston Housing Dataset ile Python’da Veri Analizi

Giriş: Boston Housing Dataset Nedir?

Boston Housing Dataset, makine öğrenimi ve veri analizi uygulamalarında sıkça kullanılan, klasik bir veri setidir. Bu veri seti, 1970’lerde Boston, Massachusetts’teki konut fiyatlarını etkileyen çeşitli özellikler hakkında bilgiler içerir. Analizler ve modelleme çalışmaları için kullanıma sunulan bu set, özellikle konut fiyatlarının tahmin edilmesi konusunda önemli bir kaynak sağlar. Bu veri setini kullanarak, konut fiyatlarının tahmin edilmesine yardımcı olan faktörleri inceleyebiliriz.

Boston Housing veri seti, toplam 506 bireysel konutun fiyatını ve bunları etkileyen 13 bağımsız değişkeni içerir. Bu değişkenler arasında krim oranları, suç oranları, yaş, okula yakınlık gibi birçok özellik bulunmaktadır. Bu özellikler, konut fiyatlarını etkileyen önemli faktörler olarak kabul edilir ve veri setinde yer alır.

Bu yazıda, Python kullanarak Boston Housing Dataset üzerinde veri analizi gerçekleştireceğiz. Analiz adımlarında, veri setinin yüklenmesi, verilerin ön işlenmesi, bazı temel istatistiklerin hesaplanması ve görselleştirilmesi gibi öğelere yer vereceğiz. Ayrıca, veri setini daha iyi anlamak için bazı temel makine öğrenimi tekniklerini de kullanacağız.

Boston Housing Dataset’i Python ile Yükleme

İlk adım olarak, Boston Housing veri setini Python ortamına yüklemek için gerekli kütüphaneleri kullanacağız. Genellikle büyük veri setleri ile çalışırken pandas kütüphanesi, verileri kolay bir şekilde okuma ve işleme konusunda oldukça faydalıdır. Aşağıda, gerekli kütüphanelerin yüklenmesi ve veri setinin pandas DataFrame olarak yüklenmesi sürecini inceleyeceğiz.

import pandas as pd
from sklearn.datasets import load_boston

# Veri setini yükle
boston_data = load_boston()

# DataFrame olarak dönüştür
boston_df = pd.DataFrame(data=boston_data.data, columns=boston_data.feature_names)
# Hedef değişkeni ekle
boston_df['PRICE'] = boston_data.target
print(boston_df.head())

Yukarıdaki kod, Boston Housing veri setini yükler ve özellikleri bir pandas DataFrame’e dönüştürür. ‘PRICE’ sütunu, konutların fiyatlarını temsil etmektedir. head() fonksiyonu ile veri setinin ilk beş satırını görüntüleyerek veri hakkında daha fazla bilgi edinebiliriz. Burada, veri setinin yapısını anlamak için bazı temel istatistikleri de gözlemlemek faydalı olacaktır.

Veri Setinin Genel Yapısı

Veri setinin yapısını değerlendirmek için info() ve describe() fonksiyonlarını kullanabiliriz. Bu fonksiyonlar, veri setinin veri türlerini, eksik değerleri ve temel istatistiksel bilgileri sağlamak için kullanılır.

# Veri setinin yapısını göster
boston_df.info()

# Temel istatistik değerlerini göster
boston_df.describe()

Yukarıdaki kod parçacıkları, bize veri setinin her sütununa ait bilgileri gösterecek ve temel istatistikleri (ortalama, medyan, standart sapma, minimum, maksimum gibi) hesaplayacaktır. Bu aşama, verinin durumunu anlamak ve analiz yapmak için oldukça önemlidir. Eğer veri setinde kayıp değerler veya anormallikler varsa, bu aşamada fark edeceğiz.

Veri Temizleme ve Ön İşleme

Evere’nin temeli sağlam atmak için, veri setinde bazı temizlik ve ön işleme adımları gerçekleştirmeliyiz. Eksik değerlerin kontrol edilmesi, anormal değerlerin temizlenmesi ve gereksiz sütunların kaldırılması gibi işlemleri yapmalıyız. Bu adımlar, daha doğru modelleme sonuçları elde etmemizi sağlar.

# Kayıp değer kontrolü
missing_values = boston_df.isnull().sum()
print(missing_values[missing_values > 0])

Yukarıdaki kod, eksik değerleri kontrol ederek eğer varsa bunları listeleyecektir. Eğer eksik değerler bulunuyorsa, bu değerleri ortalama, medyan veya başka bir yöntemle doldurabiliriz.

Ayrıca, verisetinin belirli sütunlarında aykırı değerler olup olmadığını görmek de önemlidir. Aykırı değerler, modelimizin doğruluğunu etkileyebilir. Aşağıdaki kod kullanılarak aykırı değer analizi yapılabilir:

# Aykırı değer analizi için kutu grafiği çiz
import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(12, 6))
sns.boxplot(data=boston_df)
plt.xticks(rotation=90)
plt.title('Kutu Grafiği ile Aykırı Değer Analizi')
plt.show()

Bu kutu grafiği, tüm değişkenler için aykırı değerleri görselleştirmemize yardımcı olacaktır. Eğer aykırı değerler belirlendiğinde, bu değerlerin veri setinden çıkarılması veya düzeltilmesi gerekip gerekmediğini değerlendirmeliyiz.

Veri Analizi ve Görselleştirme

Veri setinin analizi için birkaç temel istatistik ve görselleştirme adımı atılabilir. Örneğin, fiyatların dağılımını ve bağımsız değişkenler ile olan ilişkisini analiz etmek için histogramlar ve dağılım grafikleri kullanabiliriz.

# Fiyatların dağılımını göster
plt.figure(figsize=(12, 6))
sns.histplot(boston_df['PRICE'], bins=30, kde=True)
plt.title('Fiyat Dağılımı')
plt.xlabel('Fiyat')
plt.ylabel('Frekans')
plt.show()

Burada fiyat dağılımının görselleştirilmesi, fiyatların genel dağılımını anlamamıza yardımcı olur. Fiyatların normal bir dağılım gösterip göstermediğini değerlendirebiliriz.

Ayrıca, bağımsız değişkenlerle fiyat arasında ilişkiyi görmek için scatter plot (dağılım grafiği) kullanabiliriz. Örneğin, krim oranının fiyat üzerindeki etkisini değerlendirebiliriz:

# Krim oranı ve fiyat ilişkisinin scatter plot'u
plt.figure(figsize=(10, 6))
sns.scatterplot(x='CRIM', y='PRICE', data=boston_df)
plt.title('Krim Oranı ile Fiyat İlişkisi')
plt.xlabel('Krim Oranı')
plt.ylabel('Fiyat')
plt.show()

Bu tür görselleştirmeler, veri arasındaki ilişkiyi anlamak için kritik öneme sahiptir. Farklı bağımsız değişkenlerin fiyat üzerinde nasıl etki ettiğini ve hangi değişkenlerin daha güçlü bir korelasyona sahip olduğunu belirlemek önemlidir.

Makine Öğrenimi ile Fiyat Tahmini

Şimdi, veri setini kullanarak bir makine öğrenimi modeli oluşturma adımına geçelim. İlk olarak verimizi eğitim ve test verisi olarak ikiye böleceğiz, ardından basit bir regresyon modeli kurarak fiyat tahmini yapmayı deneyelim. Bu örnekte, Lineer Regresyon algoritmasını kullanacağız.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# Özellikler ve hedef değişkenleri ayır
X = boston_df.drop('PRICE', axis=1)
y = boston_df['PRICE']

# Veri setini eğitim ve test olarak ayır
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Modeli oluşturalım
model = LinearRegression()
model.fit(X_train, y_train)

Yukarıdaki kodda, öncelikle hedef değişkeni ve bağımsız değişkenleri ayırdık. Ardından verimizi eğitim ve test setlerine böldük. Eğitim seti ile modelimizi oluşturup eğittiğimizde, modelimiz konut fiyatlarını tahmin etmek için hazır hale gelecektir. Şimdi modelimizin başarımını değerlendirmek için test seti üzerinde tahminler yapabiliriz.

Modeli Değerlendirme

Modelin başarımını değerlendirmek için birkaç metrik kullanabiliriz. En yaygın olarak kullanılan metriklerden biri Ortalama Mutlak Hata (MAE) ve R² skoru’dur. Bu metriklerle modelimizin tahmin doğruluğunu kontrol edebiliriz:

from sklearn.metrics import mean_absolute_error, r2_score

# Test seti üzerinde tahmin yap
y_pred = model.predict(X_test)

# Başarım metriklerini hesapla
mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print('Ortalama Mutlak Hata:', mae)
print('R² Skoru:', r2)

Bu metrikler ile modelimizin tahmin yeteneğini değerlendirebiliriz. Eğer R² skoru 1’e yakınsa, modelimiz veri setini iyi bir şekilde modellemiştir. Tam bir değerlendirme süreci ile modelimizi geliştirebilir, farklı algoritmalar deneyebilir ve hiperparametre ayarları yaparak tahmin doğruluğunu artırabiliriz.

Sonuç ve Gelecek Adımlar

Bu yazıda, Boston Housing Dataset kullanarak Python’da veri analizi ve makine öğrenimi modeli oluşturma sürecini inceledik. Veri setini yükleme, veri temizleme, temel analizler ve görselleştirme adımlarından bahsettik. Ardından, bir regresyon modeli oluşturarak konut fiyatlarını tahmin etmeye çalıştık.

Gelecek adımlar olarak, farklı regresyon algoritmaları deneyebilir, hiperparametre ayarlama yöntemlerini uygulayabiliriz. Ayrıca, veri kümesini büyütmek veya farklı veri setleri ile karşılaştırmalar yapmak da ilginç sonuçlar ortaya çıkarabilir.

Son olarak, bu tür veri setleri üzerinde çalışarak, makine öğrenimi ve veri bilimi konularındaki yetkinliğimizi geliştirip, pratik deneyim kazanmış olacağız. Unutmayın ki, her proje kendine özgüdür; bu nedenle verilere ve modellerin davranışlarına her zaman dikkat etmek gereklidir. Şimdi yapmanız gereken, öğrendiklerinizi projelerinizde uygulamak ve bu verilerle düşüneceğiniz yeni yollar bulmaktır.

Scroll to Top