Carregamento de dados para projetos de ML
Suponha que se você deseja iniciar um projeto de ML, qual é a primeira e mais importante coisa que você precisa? São os dados que precisamos carregar para iniciar qualquer projeto de ML. Com relação aos dados, o formato de dados mais comum para projetos de ML é CSV (valores separados por vírgula).
Basicamente, CSV é um formato de arquivo simples que é usado para armazenar dados tabulares (número e texto), como uma planilha em texto simples. Em Python, podemos carregar dados CSV de diferentes maneiras, mas antes de carregar os dados CSV, devemos ter cuidado com algumas considerações.
Consideração ao carregar dados CSV
O formato de dados CSV é o formato mais comum para dados de ML, mas precisamos tomar cuidado ao seguir as principais considerações ao carregá-los em nossos projetos de ML -
Cabeçalho do Arquivo
Em arquivos de dados CSV, o cabeçalho contém as informações de cada campo. Devemos usar o mesmo delimitador para o arquivo de cabeçalho e para o arquivo de dados, porque é o arquivo de cabeçalho que especifica como os campos de dados devem ser interpretados.
A seguir estão os dois casos relacionados ao cabeçalho do arquivo CSV que devem ser considerados -
Case-I: When Data file is having a file header - Ele atribuirá automaticamente os nomes a cada coluna de dados se o arquivo de dados tiver um cabeçalho de arquivo.
Case-II: When Data file is not having a file header - Precisamos atribuir os nomes a cada coluna de dados manualmente se o arquivo de dados não tiver um cabeçalho de arquivo.
Em ambos os casos, devemos especificar explicitamente se nosso arquivo CSV contém o cabeçalho ou não.
Comentários
Os comentários em qualquer arquivo de dados têm seu significado. No arquivo de dados CSV, os comentários são indicados por um hash (#) no início da linha. Precisamos considerar os comentários ao carregar dados CSV em projetos de ML porque, se houver comentários no arquivo, talvez seja necessário indicar, depende do método que escolhemos para o carregamento, se devemos esperar esses comentários ou não.
Delimitador
Em arquivos de dados CSV, o caractere de vírgula (,) é o delimitador padrão. A função do delimitador é separar os valores nos campos. É importante considerar a função do delimitador ao fazer o upload do arquivo CSV em projetos de ML porque também podemos usar um delimitador diferente, como uma tabulação ou um espaço em branco. Mas no caso de usar um delimitador diferente do padrão, devemos especificá-lo explicitamente.
citações
Em arquivos de dados CSV, aspas duplas (“”) são o caractere de aspas padrão. É importante considerar a função das aspas ao enviar o arquivo CSV para projetos de ML, pois também podemos usar outro caractere de aspas além das aspas duplas. Mas no caso de usar um caractere de aspas diferente do padrão, devemos especificá-lo explicitamente.
Métodos para carregar arquivo de dados CSV
Ao trabalhar com projetos de ML, a tarefa mais importante é carregar os dados corretamente nele. O formato de dados mais comum para projetos de ML é CSV e vem em vários sabores e com diferentes dificuldades de análise. Nesta seção, vamos discutir sobre três abordagens comuns em Python para carregar arquivos de dados CSV -
Carregar CSV com Python Standard Library
A primeira e mais usada abordagem para carregar o arquivo de dados CSV é o uso da biblioteca padrão do Python, que nos fornece uma variedade de módulos integrados, nomeadamente csv modulee a função leitor (). A seguir está um exemplo de carregamento de arquivo de dados CSV com a ajuda dele -
Example
Neste exemplo, estamos usando o conjunto de dados da flor da íris, que pode ser baixado em nosso diretório local. Depois de carregar o arquivo de dados, podemos convertê-lo emNumPyarray e usá-lo para projetos de ML. A seguir está o script Python para carregar arquivo de dados CSV -
Primeiro, precisamos importar o módulo csv fornecido pela biblioteca padrão Python da seguinte forma -
import csv
Em seguida, precisamos importar o módulo Numpy para converter os dados carregados no array NumPy.
import numpy as np
Agora, forneça o caminho completo do arquivo, armazenado em nosso diretório local, tendo o arquivo de dados CSV -
path = r"c:\iris.csv"
Em seguida, use a função csv.reader () para ler os dados do arquivo CSV -
with open(path,'r') as f:
reader = csv.reader(f,delimiter = ',')
headers = next(reader)
data = list(reader)
data = np.array(data).astype(float)
Podemos imprimir os nomes dos cabeçalhos com a seguinte linha de script -
print(headers)
A seguinte linha do script imprimirá a forma dos dados, ou seja, o número de linhas e colunas no arquivo -
print(data.shape)
A próxima linha do script fornecerá as três primeiras linhas do arquivo de dados -
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]
]
Carregar CSV com NumPy
Outra abordagem para carregar o arquivo de dados CSV é a função NumPy e numpy.loadtxt (). A seguir está um exemplo de carregamento de arquivo de dados CSV com a ajuda dele -
Exemplo
Neste exemplo, estamos usando o Pima Indians Dataset contendo os dados de pacientes diabéticos. Este conjunto de dados é um conjunto de dados numérico sem cabeçalho. Ele também pode ser baixado em nosso diretório local. Depois de carregar o arquivo de dados, podemos convertê-lo em um array NumPy e usá-lo para projetos de ML. A seguir está o script Python para carregar arquivo de dados CSV -
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])
Resultado
(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.]
]
Carregar CSV com Pandas
Outra abordagem para carregar o arquivo de dados CSV é por Pandas e pandas.read_csv()function. Esta é a função muito flexível que retorna umpandas.DataFrameque pode ser usado imediatamente para plotagem. A seguir está um exemplo de carregamento de arquivo de dados CSV com a ajuda dele -
Exemplo
Aqui, iremos implementar dois scripts Python, primeiro com o conjunto de dados Iris com cabeçalhos e o outro com o uso do conjunto de dados Pima Indians, que é um conjunto de dados numérico sem cabeçalho. Ambos os conjuntos de dados podem ser baixados no diretório local.
Script-1
A seguir está o script Python para carregar arquivo de dados CSV usando Pandas no conjunto de dados Iris -
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 seguir está o script Python para carregar o arquivo de dados CSV, junto com o fornecimento dos nomes dos cabeçalhos também, usando o conjunto de dados Pandas no Pima Indians Diabetes -
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
A diferença entre as três abordagens utilizadas acima para carregar o arquivo de dados CSV pode ser facilmente compreendida com a ajuda dos exemplos fornecidos.