İçeriğe geç

Makine Öğrenmesi Verilerin Birleştirilmesi

Şuana kadar yaptıklarımız biraz karışık gelmiş olabilir yani gittik bir kolon aldık aldığımız kolonu işledik ve öylece bıraktık. Peki işimiz bitti mi? Tabi ki hayır bizim aldığımız düzenlediğimiz bu kolonları bir veri setine dönüştürmemiz lazım.

Öncelikle düzenlenilen yapıların tekrar pandas yardımı ile data frame’lere dönüştürmek.

import numpy as np
import pandas as pd

veriseti = pd.read_csv('bank/bank-full.csv', sep=';')

from sklearn.preprocessing import LabelEncoder
egitim=veriseti[['education']].values
le=LabelEncoder()
egitim[:,0]=le.fit(egitim[:,0]).transform(egitim[:,0])
print egitim
print list(le.classes_)
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(categorical_features='all')
egitim=ohe.fit_transform(egitim).toarray()
egitim_data_frame=pd.DataFrame(data=egitim, index=range(len(egitim)), columns=list(le.classes_))

Bunun için bu kod yeterlidir. Burada eğitim durumunu düzenlemiştik ve daha sonra bunu data frame’e çevirme işlemibi gerçekleştiriyoruz. Burada data kısmı kullanılacak olan data, index id değerleri için oluşturulacak olan kısım(range verilen sayıya kadar range objesi döner 0 dan o sayıya kadar), columns ise kolonların adları. En son durumda print egitim_data_frame yapıldığında aşağıdaki gibi bir çıktı olacaktır.

       primary  secondary  tertiary  unknown
0            0          0         1        0
1            0          1         0        0
2            0          1         0        0
3            0          0         0        1

Benim birde housing alanı için çevirdiğim binary veri setim vardı. Bunuda yine data frame çevirmeliyim.

from sklearn.preprocessing import LabelBinarizer
house=veriseti[['housing']].values
lb=LabelBinarizer()
house=lb.fit_transform(house)
print house
house_data_frame=pd.get_dummies(house[:,0], prefix='house')
print house_data_frame

Burada çevirirken tek kolon olması sebebi ile get_dummies kullandım. Pandas sürümü 14 olması sebebi ile kolonları adlandıramadım. Fakat üst sürümlerde dataframe gibi isimlendirebilirsiniz. Buradan gelen ekran çıktısı şu şekilde.

       house_0  house_1
0            0        1
1            0        1
2            0        1
3            0        1

Benim şuan 2 kolonum var biri eğitim diğeri ev durumu bunları birleştirip bir veri seti elde etmeliyim. Yine pandas yardımcı olacaktır.

egitim_house=pd.concat([egitim_data_frame,house_data_frame], axis=1)
print egitim_house

Burada egitim ve house yani ev bilgisini birleştirerek ve axis ile satırları dikkate almasını belirterek verileri birleştirdim sonuç olarak ekran çıktısı aşağıdaki gibi oldu.

       primary  secondary  tertiary  unknown  house_0  house_1
0            0          0         1        0        0        1
1            0          1         0        0        0        1
2            0          1         0        0        0        1
3            0          0         0        1        0        1
4            0          0         0        1        1        0
5            0          0         1        0        0        1
6            0          0         1        0        0        1
7            0          0         1        0        0        1

Ben örnek olarak burada 2 kolon işlemi ve bu kolonların birleştirilmesi işlemini gerçekleştirdim. Fakat iş burada bitmemekte bu işlemi tüm kolonlar üzerinde yapıp(sayısal olmayanlar) tüm veri setini ele almalıyız.

 

 

Tarih:Makine Öğrenmesi

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir