Titanic Verisetinin Görselleştirilmesi
Bu blog postta Titanic verisetinin Matplotlib, Pandas ve Seaborn kütüphaneleriyle görselleştirmesi yapılacaktır.
Öncelikle Titanic verisini indirelim.
Bu aşamada Jupyter Notebook ve Python programlama kullanılacaktır.
Haydi başlayalım.
KÜTÜPHANELERİN YÜKLENMESİ
import numpy as np
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
%matplotlib qt
# pip install PyQt5
from IPython.display import Image
%matplotlib inline → to reverse back to inline
VERİYE İLK BAKIŞ
Verisetinin ilk 5 satırına baktığımızda categorical, int ve floattan oluşan 12 değişken vardır. Değişkenlerin tanımları aşağıdaki gibidir.
PassengerId : Yolcu id
Survived : Titanic gemisinde hayatta kalanlar 1 , hayatta kalmayanlar 0
Pclass : 1 : Ekonomi statüsüdür
1st = Upper
2nd = Middle
3rd = Lower
Name : Yolcuların isimleri
Sex : Male/Female
Age : Yolcuların Yaşları
SlipSp : abi/abla (1 or 0)
Parch : ebeveyn/çocuk (1 or 0)
Ticket : Bilet numaraları
Fare : Bilet fiyatı
Cabin : Kabin numarası
Embarked : Liman isimleri (C, Q, S)
C = Cherbourg, Q = Queenstown, S = Southampton
read_csv( )
Csv datasetini pandas kütüphanesi ile okuduk.
data=pd.read_csv("train.csv", sep=",")
data.head(5)
value_counts( )
549 kişinin hayatta kalmadığını, 342 kişinin hayatta kaldığını inceledik.
data.Survived.value_counts()0 549
1 342
Name: Survived, dtype: int64data.Fare.value_counts().head(10)
8.0500 43
13.0000 42
7.8958 38
7.7500 34
26.0000 31
10.5000 24
7.9250 18
7.7750 16
26.5500 15
0.0000 15
Name: Fare, dtype: int64
info( )
Datasetinin Dataframeden oluştuğunu, 891 observation (gözlem) 12 variable(değişken), datasetinin 83.6 KB boyutta olduğunu inceliyoruz.Buna ek olarak değişkenlerde 5 ader int, 5 adet kategorik ve 2 adet float bilgisine ulaşıyoruz.
data.info()<class 'pandas.core.frame.DataFrame'>
RangeIndex: 891 entries, 0 to 890
Data columns (total 12 columns):
PassengerId 891 non-null int64
Survived 891 non-null int64
Pclass 891 non-null int64
Name 891 non-null object
Sex 891 non-null object
Age 714 non-null float64
SibSp 891 non-null int64
Parch 891 non-null int64
Ticket 891 non-null object
Fare 891 non-null float64
Cabin 204 non-null object
Embarked 889 non-null object
dtypes: float64(2), int64(5), object(5)
memory usage: 83.6+ KB
dtypes( )
Her bir değişkenin veri tiplerini görüyoruz.
data.dtypes
PassengerId int64
Survived int64
Pclass int64
Name object
Sex object
Age float64
SibSp int64
Parch int64
Ticket object
Fare float64
Cabin object
Embarked object
dtype: object
size( ) : Bu dataset toplam 10692 adet veriden oluşmaktadır.
data.size
10692
shape( )
891 gözlem, 12 değişkenden oluşmaktadır.
data.shape
(891, 12)
describe( ).T
Bu komut yalnızca sayısal değişkenlerin min,max,mean ve standart sapma gibi istatistiksel değerlerini verir.
data.describe().T
type( )
datasetin typeını gösterir.
type(data)pandas.core.frame.DataFrame
count( ) : Her bir değişkenin gözlem sayısını verir.
data.count()
MissingValue
Eksik gözlem değerinin olup olmadığına bakarak True veya False döndürür.
data.isnull().values.any()
True
Missing Valueların Toplam Sayısı
Age değişkeninde toplam 177 missing value vardır.
Cabin değişkeninde toplam 687 missing value vardır.
Embarked değişkeninde toplam 2 missing value vardır.
data.isnull().sum()
SEABORN İLE VERİ GÖRSELLEŞTİRME
BARPLOT
a=sns.barplot(x="Sex", y="Survived", hue="Sex", data=data);
a.set_title("Cinsiyete Göre Survived Dağılımı");
CATPLOT — ViOLİN
sns.catplot(x=”Pclass”, y=”Fare”, kind=”violin”, hue=”Pclass”, col=”Sex”, orient=”v”, data=data);
CATPLOT — BAR
sns.catplot(x=”Pclass”, y=”Fare”, kind=”bar”, hue=”Pclass”, col=”Sex”, orient=”v”, data=data);
Distplot
sns.distplot(data.Pclass)
KDEPLOT
#kdeplot
sns.kdeplot(data.Fare).set_title(“Fare Distribution”);
Pair plot
sns.pairplot(data);
HeatMap
import matplotlib.pyplot as plt
corr=data.corr()
plt.figure(figsize=(8, 8))
sns.heatmap(corr, vmax=.8, linewidths=0.05,square=True,annot=True,linecolor=”pink”);
MATPLOTLIB KÜTÜPHANESİ İLE VERİ GÖRSELLEŞTİRME
BARPLOT
plt.style.use("fivethirtyeight")plt.bar(data.Age, data.Fare, color="#444444")plt.xlabel("Age")
plt.ylabel("Fare")
plt.title("Fare Distribution By Age")plt.legend(loc='upper left')
plt.grid(True)
plt.tight_layout()plt.show()
HİSTOGRAM
ages=data["Age"]
fare=data["Fare"]plt.style.use("classic")plt.hist(ages, color="#B0E0E6")plt.title("Fare Plot By Age")
plt.xlabel("ages")
plt.ylabel("fare")plt.tight_layout()plt.show()
Şimdilik görselleştirme blog postunun sonuna gelmiş bulunmaktayız. Bir başka blog postta görüşmek üzere..