Conjuntos de Dados (Dataset) para Machine Learning
Modelos de machine learning precisam de conjuntos de dados para treinamento. Antes, esses conjuntos eram difíceis de serem obtidos. Hoje, muitas plataformas disponibilizam conjuntos de dados sobre os mais variados tópicos gratuitamente. Porém, o acesso aos conjuntos é feito remotamente em muitos casos. Embora isso seja vantajoso em termos de armazenamento, é ruim se sua internet não é boa ou se você prefere trabalhar offline. Felizmente, salvar os dados localmente é fácil. Neste post, mostraremos alguns exemplos que podem facilmente ser modificados para outros casos.
yfinance
A biblioteca Python yfinance disponibiliza dados de ações do Yahoo Finance. Basta instalar a biblioteca e você já terá acesso a um monte de dados de ações cobrindo um amplo período.
pip install yfinance
import yfinance as yf
msft_data = yf.download('MSFT', start='2010-1-1', end='2020-1-1', auto_adjust=True)
Para salvar esses dados localmente, basta convertê-los em CSV (ou JSON) e nomear o arquivo.
nome = "msft_data.csv" # nome do arquivo
msft_data.to_csv(nome)
Hugging Face
A Hugging Face é, atualmente, uma das melhores fontes de conjuntos de dados para treinar modelos de machine learning. Eles são facilmente acessados com o comando load_dataset e o nome do dataset que voce deseja.
from datasets import load_dataset
dataset = load_dataset("told-br") # exemplo de dataset
Antes, precisa instalar a biblioteca datasets da plataforma:
pip install datasets
Para salvar um conjunto de dados localmente, pode-se usar um for loop como mostrado abaixo. O termo split serve para salvar conjuntos de treino e teste em arquivos separados. Modelos de machine learning são treinados em um conjunto de dados de treinamento e testados em um conjunto de dados de teste. Muitos conjuntos da Hugging Face estão separados nesses dois subconjuntos. Alguns possuem um terceiro conjunto de validação. O split mostrado no for loop garante que os diferentes conjuntos serão salvos em arquivos separados.
for split, dataset in dataset.items():
dataset.to_csv(f"told-br-{split}.csv", index=None)
Gemini API para Criptomoedas
A Gemini API não tem nada a ver com o Gemini do Google. Ela é uma API que fornece cotações de criptomoedas. Esses dados, obviamente, podem ser usados para treinar modelos de machine learning. Os dados podem ser facilmente baixados com o comando abaixo (precisa da biblioteca pandas e requests).
import pandas as pd
import requests
import json
def get_cripto(symbol='btcusd', time_frame='1day'):
symbol = symbol.lower()
url = f'https://api.gemini.com/v2/candles/{symbol}/{time_frame}' # url com placeholdes para período e símbolo
response = requests.get(url)
if response.status_code == 200: # verifica resposta
data = json.loads(response.text) # carrega os dados com json
data_pd = pd.DataFrame(data, columns=['unix', 'open', 'high', 'low', 'close', 'volume']) # transforma em dataframe do pandas
data_pd['date'] = pd.to_datetime(data_pd['unix'], unit='ms')
filename = f'Gemini_{symbol}_{time_frame}.csv' # nome do arquivo
data_pd.to_csv(filename, index=False) # salva arquivo
print(f"Arquivo salvo: {filename}")
SYM = 'btcusd' # símbolo da cripto moeda
timeframe = '1day' # janela temporal aceita [1m, 5m, 15m, 30m, 1hr, 6hr, 1day]
get_cripto(symbol='btcusd', time_frame='1day')
A função já salva o arquivo baixado como CSV.
Veja também:
O que é machine learning (aprendizado de máquina)?
Como machine learning (aprendizado de máquina) funciona?
Como machine learning (aprendizado de máquina) aprende?
Como implementar um modelo de machine learning?
Como escolher um bom modelo de machine learning?
Classificação e regressão em machine learning
O que é conjunto de dados (dataset) em machine learning?
Onde conseguir conjuntos de dados para machine learning?
Salve localmente conjuntos de dados para machine learning
Pré-processamento de dados em machine learning
Regressão Linear e Machine Learning
Conjuntos de treinamento e teste em machine learning
Função de perda em machine learning
Scikit-learn para machine learning
Matrizes de Confusão em Machine Learning
Floresta aleatória com Scikit-learn
Detecção de anomalias com Isolation Forest
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.