Kolmogorov-Smirnov (KS)

é uma métrica de perfomance em modelos de classificação

Gustavo Candido
Data Hackers
4 min readJan 12, 2024

--

Photo by Jason Blackeye on Unsplash

O que é?

Não confunda o Teste Estatístico de Kolmogorov-Smirnov com a métrica de perfomance Kolmogorov-Smirnov (KS), são coisas diferentes.

Enquanto o primeiro está interessado em avaliar se uma amostra segue uma distribuição específica, o KS - que será o assunto de hoje, é frequentemente usada para medir a capacidade de um modelo de classificação de distinguir entre duas classes. Além disso, o valor máximo do KS indica o ponto de corte onde o modelo faz a melhor distinção entre as duas classes.

Essa métrica é muito utilizada no mercado financeiro, principalmente em fintechs.

Passo a passo

Imagine que estamos criando um modelo de classificação cujo target é se um cliente vai dar churn ou não - veja que é um problema binário, podemos atribuir 1 se der churn e 0 se não.

Com o modelo criado e os valores previstos, podemos criar uma tabela com as faixas de probabilidade previstas. Veja:

Perceba que na primeira coluna temos a faixa de probabilidade prevista, por exemplo: o modelo previu com 0 a 10% de probabilidade para 89 pessoas que dariam churn e 125 que não dariam.

Na segunda e terceira coluna, temos “churn” e “não churn” representados com 1 e 0, respectivamente. Veja que o total de churn que o modelo previu é de 456 e de não churn é de 1344.

E por fim, na quarta coluna , temos o total geral agrupado por faixa de probabilidade.

Agora, iremos criar as frequências relativa das classes previstas:

Podemos fazer isso pegando a respectiva instância e dividindo pelo total geral, dessa forma:

A interpretação seria, por exemplo: na faixa de probabilidade 0.1–0.2, temos concentrado 10% dos 1’s e 14% dos 0's.

Nessa etapa, o objetivo é criar a coluna de distruibuição acumulada dos 0’s e 1's:

A frequência acumulada é a soma das frequências absolutas simples de cada variável. Na frequência absoluta acumulada, os valores numéricos são somados, acumulando, de uma variável para a outra, até a última variável estudada. Assim:

Ou seja, estou pegando a frequência observada e somando com a anterior, dessa forma, acumulando.

Veja que na faixa de probabilidade 0.5–0.6, temos 46% dos 1’s e 42% dos 0's.

Finalmente, chegamos na coluna em que iremos descobrir o KS.

Para isso, é preciso pegar a diferença absoluta entre os 1’s acumulados e 0’s acumulados. Assim:

Como podemos ver no exemplo abaixo, obtívemos um KS de 10%, que é o valor máximo da coluna.

Observação: 20% - 9% deu um resultado de 10% pois diminuímos as casas decimais, de forma que os números sejam aproximados.

Esse número categoriza-se como um KS ruim, de forma que o modelo possui um poder de discriminação ruim, ou seja, não consegue diferenciar facilmente as classes.

No mercado financeiro

Como o KS é uma métrica amplamente utilizada no mercado financeiro, irei deixar aqui uma tabela de referência do livro “Credit Scoring”:

Benchmark do KS no mercado financeiro

Conclusão

Em conclusão, o Kolmogorov-Smirnov (KS) é um conceito abrangente que abrange tanto o teste estatístico desenvolvido por Andrey Kolmogorov em 1933, em colaboração com Nikolai Smirnov, quanto a métrica de desempenho em classificação utilizada em contextos como modelagem de crédito.

A métrica de desempenho KS em classificação mede a habilidade de um modelo em distinguir entre duas classes ao longo de diferentes pontos de corte.

Links e referências

Preditiva AI

Para se conectar comigo, acesse meu LinkedIn.

--

--

Gustavo Candido
Data Hackers

Estudante de Sistemas de Informação na ESPM - SP. Alguém interessado em ciência de dados, computação e matemática.