ML Projeleri için Veri Yükleme

Bir ML projesi başlatmak istiyorsanız, ihtiyacınız olan ilk ve en önemli şey nedir? ML projelerinden herhangi birini başlatmak için yüklememiz gereken veriler budur. Verilerle ilgili olarak, makine öğrenimi projeleri için en yaygın veri biçimi CSV'dir (virgülle ayrılmış değerler).

Temel olarak CSV, bir elektronik tablo gibi tablo verilerini (sayı ve metin) düz metinde depolamak için kullanılan basit bir dosya biçimidir. Python'da, CSV verilerini farklı yollarla yükleyebiliriz, ancak CSV verilerini yüklemeden önce bazı hususlara dikkat etmemiz gerekir.

CSV verilerini Yüklerken Dikkat Edilmesi Gerekenler

CSV veri biçimi, makine öğrenimi verileri için en yaygın biçimdir, ancak aynı şeyi makine öğrenimi projelerimize yüklerken önemli hususlara dikkat etmemiz gerekir -

Dosya Başlığı

CSV veri dosyalarında başlık, her alanla ilgili bilgileri içerir. Başlık dosyası ve veri dosyası için aynı sınırlayıcıyı kullanmalıyız çünkü veri alanlarının nasıl yorumlanacağını belirten başlık dosyasıdır.

Aşağıdakiler, dikkate alınması gereken CSV dosyası başlığıyla ilgili iki durumdur -

  • Case-I: When Data file is having a file header - Veri dosyası bir dosya başlığına sahipse, her bir veri sütununa adları otomatik olarak atayacaktır.

  • Case-II: When Data file is not having a file header - Veri dosyası bir dosya başlığına sahip değilse, her veri sütununa isimleri manuel olarak atamamız gerekir.

Her iki durumda da, CSV dosyamızın başlık içerip içermediğini açıkça belirtmemiz gerekir.

Yorumlar

Herhangi bir veri dosyasındaki yorumların önemi vardır. CSV veri dosyasında, yorumlar satırın başında bir kare (#) ile belirtilir. CSV verilerini ML projelerine yüklerken yorumları dikkate almalıyız çünkü dosyada yorumlarımız varsa, bu yorumları bekleyip beklememek, yüklemek için seçtiğimiz yönteme bağlı olarak belirtmemiz gerekebilir.

Sınırlayıcı

CSV veri dosyalarında, virgül (,) karakteri standart ayırıcıdır. Sınırlayıcının rolü, alanlardaki değerleri ayırmaktır. CSV dosyasını ML projelerine yüklerken sınırlayıcının rolünü göz önünde bulundurmak önemlidir çünkü aynı zamanda sekme veya beyaz boşluk gibi farklı bir sınırlayıcı da kullanabiliriz. Ancak standart olandan farklı bir sınırlayıcı kullanılması durumunda, bunu açıkça belirtmemiz gerekir.

Alıntılar

CSV veri dosyalarında, çift tırnak (“”) işareti varsayılan tırnak karakteridir. CSV dosyasını ML projelerine yüklerken tekliflerin rolünü dikkate almak önemlidir, çünkü çift tırnak işaretinden başka tırnak karakteri de kullanabiliriz. Ancak standart olandan farklı bir alıntı karakteri kullanılması durumunda, bunu açıkça belirtmemiz gerekir.

CSV Veri Dosyasını Yükleme Yöntemleri

Makine öğrenimi projeleriyle çalışırken, en önemli görev, verileri uygun şekilde içine yüklemektir. Makine öğrenimi projeleri için en yaygın veri biçimi CSV'dir ve çeşitli tatlarda ve ayrıştırılması çeşitli zorluklarda gelir. Bu bölümde, CSV veri dosyasını yüklemek için Python'da üç yaygın yaklaşımı tartışacağız -

CSV'yi Python Standart Kitaplığı ile yükleyin

CSV veri dosyasını yüklemek için ilk ve en çok kullanılan yaklaşım, bize çeşitli yerleşik modüller sağlayan Python standart kitaplığının kullanılmasıdır. csv moduleve okuyucu () işlevi. Aşağıdaki, yardımıyla CSV veri dosyasını yüklemenin bir örneğidir -

Example

Bu örnekte, yerel dizinimize indirilebilen iris çiçeği veri setini kullanıyoruz. Veri dosyasını yükledikten sonra, onuNumPydizi ve ML projeleri için kullanın. Aşağıda, CSV veri dosyasını yüklemek için Python betiği verilmiştir -

Öncelikle Python standart kitaplığı tarafından sağlanan csv modülünü aşağıdaki gibi içe aktarmamız gerekiyor -

import csv

Daha sonra, yüklenen verileri NumPy dizisine dönüştürmek için Numpy modülünü içe aktarmamız gerekiyor.

import numpy as np

Şimdi, yerel dizinimizde depolanan ve CSV veri dosyasına sahip olan dosyanın tam yolunu sağlayın -

path = r"c:\iris.csv"

Ardından, CSV dosyasından verileri okumak için csv.reader () işlevini kullanın -

with open(path,'r') as f:
   reader = csv.reader(f,delimiter = ',')
   headers = next(reader)
   data = list(reader)
   data = np.array(data).astype(float)

Başlıkların adlarını aşağıdaki komut dosyası satırıyla yazdırabiliriz -

print(headers)

Aşağıdaki komut dosyası satırı, verilerin şeklini, yani dosyadaki satır ve sütun sayısını yazdıracaktır -

print(data.shape)

Sonraki komut dosyası satırı, veri dosyasının ilk üç satırını verecektir -

print(data[:3])

Output

['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
(150, 4)
[  [5.1  3.5  1.4  0.2]
   [4.9  3.   1.4  0.2]
   [4.7  3.2  1.3  0.2]
]

CSV'yi NumPy ile yükle

CSV veri dosyasını yüklemeye yönelik başka bir yaklaşım, NumPy ve numpy.loadtxt () işlevidir. Aşağıdaki, yardımıyla CSV veri dosyasını yüklemenin bir örneğidir -

Misal

Bu örnekte, diyabetik hastaların verilerini içeren Pima Indians Veri Kümesini kullanıyoruz. Bu veri kümesi, başlığı olmayan sayısal bir veri kümesidir. Yerel dizinimize de indirilebilir. Veri dosyasını yükledikten sonra onu NumPy dizisine çevirip ML projeleri için kullanabiliriz. Aşağıdaki, CSV veri dosyasını yüklemek için Python betiğidir -

from numpy import loadtxt
path = r"C:\pima-indians-diabetes.csv"
datapath= open(path, 'r')
data = loadtxt(datapath, delimiter=",")
print(data.shape)
print(data[:3])

Çıktı

(768, 9)
[  [ 6.  148.  72.  35.  0.  33.6  0.627  50. 1.]
   [ 1.  85.   66.  29.  0.  26.6  0.351  31. 0.]
   [ 8.  183.  64.  0.   0.  23.3  0.672  32. 1.]
]

CSV'yi Pandalarla Yükleme

CSV veri dosyasını yüklemeye yönelik başka bir yaklaşım da Pandas ve pandas.read_csv()function. Bu, bir döndüren çok esnek işlevdirpandas.DataFrameçizim için hemen kullanılabilir. Aşağıdaki, yardımıyla CSV veri dosyasını yüklemenin bir örneğidir -

Misal

Burada, iki Python betiğini uygulayacağız, ilki başlıklara sahip Iris veri seti ile, diğeri başlıksız sayısal bir veri seti olan Pima Indians Veri Kümesini kullanarak. Her iki veri seti de yerel dizine indirilebilir.

Script-1

Aşağıda, Iris Veri kümesinde Pandalar kullanılarak CSV veri dosyasını yüklemek için Python betiği verilmiştir -

from pandas import read_csv
path = r"C:\iris.csv"
data = read_csv(path)
print(data.shape)
print(data[:3])

Output:

(150, 4)
   sepal_length   sepal_width  petal_length   petal_width
0         5.1     3.5          1.4            0.2
1         4.9     3.0          1.4            0.2
2         4.7     3.2          1.3            0.2

Script-2

Aşağıdaki, CSV veri dosyasını yüklemek için Python betiğidir ve Pima Indians Diabetes veri kümesinde Pandas'ı kullanarak başlık adlarını da sağlar -

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

Output

(768, 9)
   preg  plas  pres   skin  test   mass    pedi    age   class
0   6    148    72      35    0     33.6   0.627    50      1
1   1    85     66      29    0     26.6   0.351    31      0
2   8    183    64      0     0     23.3   0.672    32      1

CSV veri dosyasını yüklemek için yukarıda kullanılan üç yaklaşım arasındaki fark, verilen örnekler yardımıyla kolayca anlaşılabilir.