ML - Görselleştirme ile Verileri Anlama

Giriş

Önceki bölümde, verileri istatistiklerle anlamak için bazı Python tarifleriyle birlikte Makine Öğrenimi algoritmaları için verilerin önemini tartıştık. Verileri anlamak için Görselleştirme denen başka bir yol var.

Veri görselleştirme yardımıyla verilerin nasıl göründüğünü ve verilerin nitelikleri tarafından ne tür bir korelasyon olduğunu görebiliriz. Özelliklerin çıktıya karşılık gelip gelmediğini görmenin en hızlı yoludur. Python tariflerini takip ederek makine öğrenimi verilerini istatistiklerle anlayabiliriz.

Tek Değişkenli Grafikler: Öznitelikleri Bağımsız Olarak Anlama

En basit görselleştirme türü, tek değişkenli veya "tek değişkenli" görselleştirmedir. Tek değişkenli görselleştirme yardımıyla, veri setimizin her bir özelliğini bağımsız olarak anlayabiliriz. Aşağıdakiler, tek değişkenli görselleştirmeyi uygulamak için Python'da bazı tekniklerdir -

Histogramlar

Histogramlar verileri bölmelerde gruplandırır ve veri kümesindeki her bir özelliğin dağılımı hakkında fikir edinmenin en hızlı yoludur. Aşağıdakiler histogramların bazı özellikleridir -

  • Görselleştirme için oluşturulan her bir bölmedeki gözlemlerin sayısını bize sağlar.

  • Çöp kutusunun şeklinden dağılımı kolaylıkla gözlemleyebiliriz, yani hava durumu Gauss şeklindedir, çarpık veya üsteldir.

  • Histogramlar ayrıca olası aykırı değerleri görmemize yardımcı olur.

Misal

Aşağıda gösterilen kod, Pima Indian Diabetes veri kümesinin özelliklerinin histogramını oluşturan bir Python komut dosyası örneğidir. Burada, histogramlar oluşturmak için Pandas DataFrame üzerinde hist () işlevini kullanacağız vematplotlib onları çizmek için.

from matplotlib import pyplot
from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=names)
data.hist()
pyplot.show()

Çıktı

Yukarıdaki çıktı, veri kümesindeki her bir öznitelik için histogramı oluşturduğunu gösterir. Bundan, belki de yaş, pedi ve test özniteliğinin üstel dağılım gösterebileceğini, kütle ve plazmanın Gauss dağılımına sahip olabileceğini gözlemleyebiliriz.

Yoğunluk Grafikleri

Her bir öznitelik dağılımını elde etmek için bir başka hızlı ve kolay teknik, Yoğunluk grafikleridir. Aynı zamanda histogram gibidir, ancak her bölmenin üstünden düzgün bir eğri çizilir. Bunları soyut histogramlar olarak adlandırabiliriz.

Misal

Aşağıdaki örnekte, Python komut dosyası, Pima Indian Diabetes veri kümesinin özelliklerinin dağıtımı için Yoğunluk Grafikleri oluşturacaktır.

from matplotlib import pyplot
from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=names)
data.plot(kind='density', subplots=True, layout=(3,3), sharex=False)
pyplot.show()

Çıktı

Yukarıdaki çıktıdan, Yoğunluk grafikleri ve Histogramlar arasındaki fark kolayca anlaşılabilir.

Kutu ve Bıyık Grafikleri

Kısaca boxplots olarak da adlandırılan Box ve Whisker grafikleri, her bir özelliğin dağılımının dağılımını gözden geçirmek için başka bir yararlı tekniktir. Aşağıdakiler bu tekniğin özellikleridir -

  • Doğası gereği tek değişkenlidir ve her bir özelliğin dağılımını özetler.

  • Orta değer, yani medyan için bir çizgi çizer.

  • % 25 ve% 75 civarında bir kutu çizer.

  • Ayrıca bize verilerin yayılması hakkında fikir verecek bıyıklar da çizer.

  • Bıyıkların dışındaki noktalar, aykırı değerleri belirtir. Aykırı değerler, ortadaki verilerin yayılma boyutundan 1.5 kat daha büyük olacaktır.

Misal

Aşağıdaki örnekte, Python komut dosyası, Pima Indian Diabetes veri kümesinin özelliklerinin dağıtımı için Yoğunluk Grafikleri oluşturacaktır.

from matplotlib import pyplot
from pandas import read_csv
path = r"C:\pima-indians-diabetes.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=names)
data.plot(kind='box', subplots=True, layout=(3,3), sharex=False,sharey=False)
pyplot.show()

Çıktı

Yukarıdaki öznitelik dağılım grafiğinden, yaşın, testin ve cildin daha küçük değerlere doğru çarpık göründüğü gözlemlenebilir.

Çok Değişkenli Grafikler: Birden Çok Değişken Arasındaki Etkileşim

Başka bir görselleştirme türü, çok değişkenli veya "çok değişkenli" görselleştirmedir. Çok değişkenli görselleştirme yardımıyla, veri setimizin birden çok özelliği arasındaki etkileşimi anlayabiliriz. Aşağıdakiler, Python'da çok değişkenli görselleştirmeyi uygulamak için bazı tekniklerdir -

Korelasyon Matrisi Grafiği

Korelasyon, iki değişken arasındaki değişiklikler hakkında bir göstergedir. Önceki bölümlerimizde, Pearson Korelasyon katsayılarını ve Korelasyonun önemini tartışmıştık. Hangi değişkenin başka bir değişkene göre yüksek veya düşük bir korelasyona sahip olduğunu göstermek için korelasyon matrisini çizebiliriz.

Misal

Aşağıdaki örnekte, Python komut dosyası, Pima Indian Diabetes veri kümesi için korelasyon matrisi oluşturacak ve grafiğini çizecektir. Pandas DataFrame üzerinde corr () fonksiyonu yardımıyla üretilebilir ve pyplot yardımı ile grafiği çizilebilir.

from matplotlib import pyplot
from pandas import read_csv
import numpy
Path = r"C:\pima-indians-diabetes.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(Path, names=names)
correlations = data.corr()
fig = pyplot.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(correlations, vmin=-1, vmax=1)
fig.colorbar(cax)
ticks = numpy.arange(0,9,1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_xticklabels(names)
ax.set_yticklabels(names)
pyplot.show()

Çıktı

Korelasyon matrisinin yukarıdaki çıktısından simetrik olduğunu görebiliriz, yani sol alt sağ üst ile aynıdır. Her bir değişkenin birbiriyle pozitif korelasyon içinde olduğu da gözlenmektedir.

Dağılım Matrisi Grafiği

Dağılım grafikleri, bir değişkenin diğerinden ne kadar etkilendiğini veya aralarındaki ilişkiyi iki boyuttaki noktalar yardımıyla gösterir. Dağılım grafikleri, veri noktalarını çizmek için yatay ve dikey eksenleri kullanma konseptinde çizgi grafiklere çok benzer.

Misal

Aşağıdaki örnekte, Python komut dosyası, Pima Indian Diabetes veri kümesi için Dağılım matrisi oluşturacak ve grafiğini çizecektir. Pandas DataFrame üzerinde scatter_matrix () fonksiyonu yardımıyla oluşturulabilir ve pyplot yardımı ile grafiği çizilebilir.

from matplotlib import pyplot
from pandas import read_csv
from pandas.tools.plotting import scatter_matrix
path = r"C:\pima-indians-diabetes.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(path, names=names)
scatter_matrix(data)
pyplot.show()

Çıktı