Brincando com o Boston Housing Dataset e RandomForestRegressor
(com parâmetros padrão) no scikit-learn, notei algo estranho: a pontuação média de validação cruzada diminuiu à medida que aumentava o número de dobras além de 10. Minha estratégia de validação cruzada era a seguinte:
cv_met = ShuffleSplit(n_splits=k, test_size=1/k)
scores = cross_val_score(est, X, y, cv=cv_met)
... onde num_cvs
foi variado. I definido test_size
para 1/num_cvs
espelhar o comportamento tamanho dividida trem / teste de CV k vezes. Basicamente, eu queria algo como CV k-fold, mas também precisava de aleatoriedade (daí o ShuffleSplit).
Este estudo foi repetido várias vezes, e pontuações médias e desvios padrão foram plotados.
(Observe que o tamanho de k
é indicado pela área do círculo; o desvio padrão está no eixo Y.)
Consistentemente, aumentar k
(de 2 para 44) produziria um breve aumento na pontuação, seguido de uma diminuição constante à medida que k
aumentasse ainda mais (além de ~ 10 dobras)! Se alguma coisa, eu esperaria que mais dados de treinamento levassem a um pequeno aumento na pontuação!
Atualizar
Alterar os critérios de pontuação para significar erro absoluto resulta em um comportamento que eu esperaria: a pontuação melhora com um número maior de dobras no CV com dobras K, em vez de se aproximar de 0 (como no padrão, ' r2 '). A questão permanece: por que a métrica de pontuação padrão resulta em baixo desempenho nas métricas média e de DST para um número crescente de dobras?
Respostas:
O escore r ^ 2 é indefinido quando aplicado a uma única amostra (por exemplo, CV individual).
r ^ 2 não é bom para avaliação de pequenos conjuntos de testes: quando é usado para avaliar um conjunto de testes suficientemente pequeno, a pontuação pode ser muito negativa, apesar das boas previsões.
Dada uma única amostra, uma boa previsão para um determinado domínio pode parecer terrível:
Aumente o tamanho do conjunto de testes (mantendo a precisão das previsões iguais) e, de repente, a pontuação r ^ 2 parece quase perfeita:
Levando ao outro extremo, se o tamanho do teste for 2 amostras, e estivermos avaliando duas amostras próximas uma da outra por acaso, isso terá um impacto substancial na pontuação r ^ 2, mesmo se as previsões forem muito boas :
fonte