Olá, pessoal!
Gostaria de trazer uma observação técnica sobre a aula de Comparação entre Arrays, pois a forma como a função np.allclose() foi apresentada pode induzir o estudante ao erro se não for detalhado como o NumPy processa a "distância" entre valores.
O que foi apresentado na aula:
- Minuto 09:00: Foi utilizado 0.01 e o resultado foi True. No entanto, não ficou claro o que esse valor representa.
- Minuto 09:35: Foi utilizado o valor 10 e explicado que o retorno foi True porque "a diferença entre os valores não era maior que 10".
Afirmar que a diferença entre os arrays de Moscow não passa de 10 é, matematicamente, impreciso. Se calcularmos a diferença real entre os meses (np.abs(Moscow_ano3 - Moscow_ano4)), é possível verificar que em alguns períodos a diferença chega a 13.65.
Por que o código retornou True então?
O np.allclose(a, b, rtol, atol) possui dois tipos de "distância":
- Tolerância Relativa (rtol): Funciona como um percentual. O terceiro parâmetro da função é o rtol. Ao passar 10, o NumPy aceita uma variação de até 1000%. Como os dados de Moscow estão na casa de 100, a folga permitida foi de 1000 unidades!
- Tolerância Absoluta (atol): Funciona como um valor fixo (distância real). É o quarto parâmetro da função.
Para que a análise tenha rigor científico, é fundamental saber qual sintaxe usar:
- Para testar um percentual (ex: 1%):
np.allclose(array1, array2, rtol=0.01) - Para testar um valor fixo (ex: 10 unidades):
np.allclose(array1, array2, atol=10)
Exemplo de como o teste deveria ser feito para verificar o limite de 10 unidades:
# Usando o parâmetro nomeado para garantir que o 10 seja lido como valor absoluto
np.allclose(Moscow_ano3, Moscow_ano4, atol=10)
# ou passando os parâmetros na ordem correta (a, b, rtol, atol)
np.allclose(Moscow_ano3, Moscow_ano4, 0, 10)
Neste caso, o retorno correto seria False, refletindo a realidade dos dados (já que existem diferenças acima de 10).
Sugestão à Equipe Alura:
Pela relevância da precisão numérica em Ciência de Dados, sugiro que este vídeo seja revisado ou substituído. A explicação atual pode confundir alunos que aplicarão essa lógica em datasets reais, em que uma diferença de 13.65 unidades (quando se espera no máximo 10) pode comprometer todo um modelo estatístico.
Bons estudos!