Como utilizar o API Kaggle no google colab

Como utilizar o API Kaggle no google colab
Uma das maiores fontes de aprendizado e criação de portfólio para todo cientista de dados passa pelo Kaggle. Essa plataforma disponibiliza diversas competições de modelagem preditiva e é bem interessante todo e qualquer cientista de dados, ou aspirante a tal tarefa, passear um pouco pelo Kaggle.

Uma forma interessante de interagir com o Kaggle é utilizando sua API. Com ela, fica mais facilitado o download de notebooks de outros usuários, datasets, avaliação e premiação das competições, submissão de notebooks, dentre outras funções.

Este artigo consiste em mostrar como utilizar esta API no google colab. Todo ele foi escrito baseado na própria documentação do Kaggle-API (documentação). Vamos dividir quatro simples tópicos:

  • Conseguindo as credenciais;
  • Instalando a ferramenta de linha de comando Kaggle-api;
  • Como listar competições e notebooks;
  • Importando conjuntos de dados

O primeiro passo é acessar sua conta no Kaggle e obter o arquivo de nome “kaggle.json”. Para isso basta clicar em “My account” no seu avatar no site da plataforma, e lá, busque a seção como na imagem abaixo. Click em “Create New API Token” (caso já tenha criado anteriormente, busque o arquivo “kaggle.json”, ou expire-o e gere novas credenciais).

O download das suas credenciais será feito. Agora vamos fazer o upload delas no google colab.

from google.colab import files
files.upload()

Ao aparecer o ícone de escolha de arquivo, selecione o arquivo que foi baixado, anteriormente.

É necessário instalar uma ferramenta que nos ajuda a usar a API do Kaggle no google colab, vamos instala-la com o código abaixo.

!pip install kaggle --upgrade

Note que o uso da exclamação será necessário sempre no início, já que na verdade estão sendo usados linhas de comando e não código Python.

Após a instalação, teremos de criar um diretório oculto de nome “.kaggle”, copiar o arquivo “kaggle.json” para esta pasta criada. Abaixo, as duas primeiras linhas são responsáveis pela criação do diretório, bem como a cópia do arquivo, respectivamente. A ultima linha apenas serve para listar o que há na pasta oculta. Caso seja listado no nome do arquivo “kaggle.json” quer dizer que tudo correu de forma correta.

!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!ls ~/.kaggle

Agora, com tudo devidamente instalado e nos seus devidos lugares, vamos ver algumas boas funcionalidades desta API.

!kaggle competitions list

Image for post

Acima podemos ver uma lista genérica com competições existentes na plataforma e suas respectivas datas de entrega, categoria, premio, quantidade de equipes inscritas e se o meu usuário esta inscrito nelas. Percebe-se que basta utilizar o comando “kaggle” e em seguida definir alguns parâmetros, que neste caso trata-se do “competitions” mais o “list”, ou seja, listar todas as competições. Automaticamente a API faz paginação dos resultados.

Para explorar mais funções, vamos utilizar os mesmo parâmetros da consulta anterior, e como adicional definir o preço da recompensa como variável que ordena essa lista de competições. Para isto apenas adicionamos “ — sort-by prize”

!kaggle competitions list --sort-by prize

Image for post

Como exemplo, escolhemos a competição “birdsong-recognition”. Abaixo listamos os notebooks (kernels) referentes a ela. O parâmetro “ –page-size 10” diz que será retornado apenas dez resultados por página.

!kaggle kernels list --competition birdsong-recognition --page-size 10

Image for post

Com a competição escolhida, vamos ver quais são os dados que estão contidas nesta competição. Em particular, este conjunto de dados é de cantos de pássaros, por isso a grande quantidade de arquivos .mp3. Para listar os dados, de forma muito semelhante a como temos feito até então, utilizamos o parâmetro “files” ao invés do “list”, acompanhado do nome da competição escolhida.

!kaggle competitions files birdsong-recognition

Image for post

Resolvemos utilizar como exemplo o arquivo “trains.csv”. Este arquivo consiste em variáveis atrelada a cada arquivo de áudio na pasta “train_audio”. Junto a cada arquivo de áudio, existem variáveis como, qualidade do áudio, data de coleta, nota, dentre outras.

Com o comando abaixo, o arquivo .csv foi baixado.

!kaggle competitions download -f train.csv birdsong-recognition

Como forma de mostrar a praticidade, vamos agora refazer uma descritiva rápida utilizando o Pandas e o Seaborn. Tomamos como base o este notebook (em link).

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

Importamos os dados utilizando o pandas. Nota-se que o nome atribuindo ao arquivo é seguido da extensão .zip, o que não se torna um problema para que o Pandas possa realizar seu trabalho utilizando o método “read_csv”.

Criamos uma variável de ano para título de descrição dos dados.

df = pd.read_csv('train.csv.zip')
df['year'] = df['date'].apply(lambda x: x.split('-')[0])
df.head(5)

Abaixo um gráfico de frequência de cantos de pássaros coletados ao longo dos anos da pesquisa. Aparentemente há algumas inconsistências.

plt.figure(figsize=(16, 6))
ax = sns.countplot(df['year'], palette="hls")
plt.title("Year of the Audio Files Registration", fontsize=16)
plt.xticks(rotation=90, fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel("Frequency", fontsize=14)
plt.xlabel("")

Image for post

Por fim, veremos a frequência da qualidade de cada áudio no conjunto de dados de teste.

plt.figure(figsize=(16, 6))
ax = sns.countplot(df['pitch'], palette="hls", order = df['pitch'].value_counts().index)
plt.title("Frequência de qualidade de som (pitch)", fontsize=16)
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.ylabel("Frequência", fontsize=14)
plt.xlabel("");

Image for post

Apesar de não ser crucial para criação de um trabalho no Kaggle, a sua API, facilita muitas tarefas. Aqui apenas fizemos uma breve demostração de um possível uso para ela. Vale lembrar que diversas outras funcionalidades seriam possíveis com esta API, inclusive submissão de notebooks e entrega de resultados preditivos. Pode ser bastante prático e conveniente para quem se disponha a aprender a utilizar esta ferramenta.

Sobre o Autor

Renan Bispo
Renan Bispo

Graduado em Ciência e Tecnologia pela Universidade Federal da Bahia (2014). Graduação (Ultimo Semestre) em Estatística pela Universidade Federal da Bahia (UFBA). Ótima habilidade avançada no software R e Python. Desenvolvimento web utilizando Django (para geração de visualizações de dados). Participação na construção dos conteúdos da Flai - Inteligência artificial.Pesquisa na área de Machine learning e métodos não paramétricos na análise de séries temporais. Experiência na área de Saúde Coletiva, atuando, principalmente, na pesquisa da Zika, Chikungunya, Epidemiologia e Dengue, dentro do grupo de pesquisa ”Estudo clínico e epidemiológico de infecções por arbovírus em Salvador, Brasil” (ISC - UFBA). Experiência junto a ABG consultoria desenvolvendo análises estatísticas. Conhecimento em estatística espacial com o uso do R. Conhecimento básico em banco de dados Postgre e MongoDB.

0 Comentários

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *