Inteligencia artificial (IA) e sua subárea machine learning são campos que requerem conhecimentos de várias disciplinas, incluindo estatística. Indiscutivelmente, o conhecimento estatístico mais fundamental que alguém precisa para aprender machine learning é a estatística descritiva. Sempre que lidamos com conjuntos de dados, a estatística descritiva é uma das chaves que nos ajuda a analisá-los.
Estatística Descritiva
A estatística descritiva se concentra em resumir e organizar conjuntos de dados para que eles possam ser mais facilmente compreendidos. De modo geral, a estatística descritiva é dividida em duas categorias: medidas de tendência central e medidas de dispersão (spread). Ambas são comumente utilizadas em machine learning para entender as características de um conjunto de dados antes do treinamento de um modelo.
Medidas de Tendência Central
Medidas de tendência central referem-se à ideia de que há um número que melhor resume todo o conjunto de medidas, um número que é de alguma forma “central” para o conjunto. Entre as medidas mais usadas como tendência central estão a média, a mediana e a moda.
Média
Média é uma tendência central dos dados, ou seja, um número em torno do qual um conjunto de dados inteiro está espalhado. Ela é calculada como a soma de observações (dados) dividida pelo seu número total.
import numpy as np
# Exemplo de conjunto de dados
arr = [3, 6, 10, 7]
media = np.sum(arr)/4 # média calculada como soma dividida pelo tamanho da amostra
print(f"Média = {media}")
# resultado: Média = 6.5
Ela também pode ser facilmente calculada com NumPy.
import numpy as np
media_np = np.mean(arr) # média calculada com o método mean do NumPy
print(f"Média = {media_np}")
# resultado: Média = 6.5
Mediana
Em estatística descritiva, a mediana representa o valor intermediário em um conjunto de dados. A mediana é uma alternativa mais robusta à média quando os dados podem ter valores atípicos ou extremos (outliers).
Para encontrar a mediana de um conjunto de dados, eles precisam ser organizados em ordem crescente ou decrescente. Isso cria uma lista ordenada onde é possível localizar facilmente o valor do meio. Se os dados tiverem um número ímpar de elementos, a mediana será o valor mais intermediário na lista ordenada. Se os dados tiverem um número par de elementos, a mediana será a média dos dois valores médios na lista ordenada.
Assim como a média, a mediana pode ser calculada diretamente com NumPy.
import numpy as np
dataset = [17, 18, 15, 27, 16, 28, 34, 39, 41, 43, 37]
# mediana calculada diretamente com NumPy
mediana = np.median(dataset)
print(mediana)
# resultado: 28.0
Moda
Moda é o elemento que aparece mais vezes no conjunto de dados, ou seja, o termo que tem a maior frequência. Embora ela possa ser calculada com NumPy, a forma mais fácil de obtê-la é com o módulo stats da biblioteca SciPy.
import numpy as np
from scipy import stats
# exemplo de um conjunto de dados
data = np.array([2, 5, 7, 2, 8, 5, 2])
# Calcula a moda usando scipy.stats.mode
moda, contagem = stats.mode(data) # retorna moda e total de ocorrências
print(f"A moda do conjunto de dados: {moda}. A contagem da moda: {contagem}")
# resultado: A moda do conjunto de dados: 2. A contagem da moda: 3
Medidas de Dispersão
Alcance (Range)
O alcance é uma das técnicas mais simples da estatística descritiva. Ele é calculado subtraindo o valor mínimo do valor máximo em um conjunto de dados.
import numpy as np
dataset = [17, 18, 15, 27, 16, 28, 34, 39, 41, 43, 37]
alcance = np.max(dataset) - np.min(dataset)
print(alcance)
# resultado: 28
Embora o alcance seja uma medida fácil de se compreender, ele pode ser sensível a outliers. Um único valor extremo pode inflar significativamente seu valor, sem necessariamente refletir a dispersão da maioria dos pontos de dados.
Intervalo Interquartil (IQR)
Em estatísticas e probabilidade, quartis são valores que dividem os dados em trimestres. Para calcular os quartis, os dados precisam ser ordenados crescentemente.
Há três valores de quartil. O valor do primeiro quartil (Q1) está no percentil 25. O segundo quartil é o percentil 50 e o terceiro quartil é o percentil 75. A mediana de um conjunto de dados é equivalente ao valor do segundo quartil (Q2). O Intervalo Interquartil (IQR) se concentra nos 50% médios dos dados, excluindo potenciais outliers. Ele é calculado encontrando a diferença entre o terceiro quartil e o primeiro quartil.
import numpy as np
# Exemplo de conjunto de dados
dataset = [22, 25, 27, 28, 30, 32, 35, 38, 40, 43]
# Cálculo de quartis (Q1, Q3)
q1 = np.percentile(dataset, 25)
q3 = np.percentile(dataset, 75)
# Cálculo IQR
iqr = q3 - q1
print(f"Valor do IQR: {iqr}")
# resultado: Valor do IQR: 10.0
Variância
import numpy as np
# Exemplo de conjunto de dados
dataset = [2, 5, 7, 8, 10, 12, 15, 18, 20]
# Variância com NumPy
variancia = np.var(dataset)
print(f"Variância: {variancia}")
# resultado: Variância: 32.172839506172835
Desvio Padrão
O desvio padrão é a medida da distância entre cada ponto e a média. Ou seja, ele mede como os dados são espalhados a partir da média. Um desvio padrão baixo indica que os pontos de dados tendem a ser próximos da média do conjunto de dados, enquanto um desvio padrão alto indica que os pontos de dados estão espalhados por um intervalo mais amplo de valores.
O desvio padrão é a raiz quadrada da variância. Ele fornece uma medida de dispersão nas mesmas unidades que os dados originais, facilitando a interpretação da variabilidade.
import numpy as np
dataset = [17, 18, 15, 27, 16, 28, 34, 39, 41, 43, 37]
# Desvio Padrão com NumPy
desvio_padrao = np.std(dataset)
print(desvio_padrao)
# resultado: 10.280367231437948
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
Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.