Machine Learning (Makine öğrenimi) Kategorik ve Sayısal Bölüm 1

Kerem Metin
2 min readSep 3, 2020

--

PANDAS KULLANARAK KATEGORİK VERİLERİN SAYISAL VERİLERE DÖNÜŞTÜRME

Udemy’den aldığım eğitimleri hem kullanıcılara hemde kendime günlük olacak şekilde gördüğüm konulara buraya yazmaya karar verdim.İşlediğim konuları kurs hocamın anlatımıyla ve kendi düşüncelerimi de ekleyerek buraya yazacağım. https://github.com/E2Kerem01/Data1 github sayfama veriler1.csv adında bir dosya ekledim bu dosya içerisindeki verileri kullanarak , verileri makine öğreniminde işleyeceğimiz hale getireceğiz.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Kullanılacak kütüphaneleri import edelim.

İlk olarak pandası kullanarak eklediğimiz sınıf csv dosyasını okuyacağız. Bu sayede csv dosyası python için anlaşılır hale gelecektir.

“veriler = pd.read_csv(‘veriler1.csv’)” satırını kullanarak, pandas kütüphanesinde pd.read_csv sayesinde veriler bir anlaşılır hale getiriliyor.

“from sklearn import preprocessing” Scikit-learn, veri bilimi ve machine learning için en çok kullanılan Python kütüphanelerinden biridir. Birçok işlemi gerçekleştirmenizi sağlar ve çeşitli algoritmalar sağlar.

le = preprocessing.LabelEncoder()
ulke[:,0] = le.fit_transform(veriler.iloc[:,0])
print(ulke)

ilk satırda scikit-learn kütüphanesindeki preprocessing modelini kullandık. LabelEncoder()kategorik verileri sayısal verilere dönüştürür.

2. satırdaki fit_transform girilen kategorik verilerin sayısal verilere dönüşümünü tamamlar ulke[ :,0] a atar. Diğer bir kısım olan veriler.iloc[:,0] “iloc” pandas kütüphanesinden verilerin matris yöntemiyle alınmasını sağlar. Yani : kısım bütün satırları almayı ,0] kısmı iste ilk indeksi almamızı sağlar. Biz ulke üzerinde çalıştığımız için ilk sutundaki bütün satırları alacağız.

orjinal hali
LabelEncoder()

2 resmi incelediğimiz zaman sayısal kategorilerine ayırıldığını görüyoruz.

ohe = preprocessing.OneHotEncoder()
ulke = ohe.fit_transform(ulke).toarray()
print(ulke)

Bu method ise verilen değerleri binary tabanda yazdırır. Veriler1.csv dosyasında 3 tane ülke bulunmaktadır. “fr”,”tr”,”us” adıyla LabelEncoder() bu verileri 0 1 2 olarak ayırdı.Fakat OneHotEncoder() modülü o satırda bulunan değere 1 olmayana 0 verecek.

OneHotEncoder()

İlk satırda “tr” bulunduğu için 0 ve 2 indeksler “0” değerini alırken 1.index “1” değerini aldı. 9.satırda “us” bulunmaktadır. Onun olduğu 2.index “1” değerini alırken 0 ve 1 indeksler “0” değerini aldı. OneHotEncoder(), kategorik verilerin temsilinin daha etkileyici ve kolay olmasını sağlar. Yani kategorik verilerin sayısal verilere dönüştürülerek makine öğrenimi için daha iyi veri setleri setleri oluşturulması gerekmektedir. Bu bölüm bu kadardı diğer bölümde DataFrameleri inceleyeceğiz.

--

--

Kerem Metin

Electrical - Electronics Engineer Software Engineer in Test