É possível controlar o custo da classificação incorreta no pacote R randomForest ?
No meu próprio trabalho, os falsos negativos (por exemplo, falta de erro de uma pessoa ter uma doença) são muito mais caros do que os falsos positivos. O pacote rpart permite que o usuário controle os custos de classificação incorreta especificando uma matriz de perda para ponderar classificações incorretas de maneira diferente. Existe algo semelhante para randomForest
? Por exemplo, devo usar a classwt
opção para controlar o critério Gini?
fonte
classwt
: Sim, descobri que, na prática, e de acordo com outros usuários, os resultados não são os esperados. (iii)cutoff
: não sou claro sobre como utilizarcutoff
neste caso e gostaria de receber mais conselhos.Existem várias maneiras de incluir custos.
(1) A amostragem acima / abaixo de cada árvore ensacada (amostragem estratificada) é o método mais comum de introdução de custos. você desequilibra intencionalmente o conjunto de dados.
(2) Ponderação. Nunca funciona. Eu acho que isso é enfatizado na documentação. Alguns afirmam que você só precisa ponderar em todas as etapas, incluindo a divisão de Gini e votação final. Se vai funcionar, será uma implementação complicada.
(3) Função Metacost em Weka.
(4) Tratar uma floresta aleatória como classificador probabilístico e alterar o limiar. Eu gosto menos dessa opção. Provavelmente devido à minha falta de conhecimento, mas mesmo que o algoritmo possa gerar probabilidades, não faz sentido para mim tratá-las como se esse fosse um modelo probabilístico.
Mas tenho certeza de que existem abordagens adicionais.
fonte
É recomendável que, se a variável que você está tentando prever não for 50%
class 1
e 50% paraclass 2
(como na maioria dos casos), ajuste ocutoff
parâmetro para representar o realOOB
em resumo.Por exemplo,
Nesse caso, a probabilidade de ter um valor de um
class 1
é.96
enquanto tiver um valor declass 2
é.04
.Caso contrário, as florestas aleatórias usam um limite de
0.5
.fonte
Pode-se incorporar
costMatrix
norandomForest
explicitamente viaparms
parâmetro:fonte
Você pode incorporar sensibilidade de custo usando a
sampsize
função narandomForest
embalagem.Varie os números com
(100,20)
base nos dados que você possui e nas suposições / regras de negócios com as quais você está trabalhando.É necessária uma abordagem de tentativa e erro para obter uma matriz de confusão que reflete os custos do erro de classificação. Veja as Previsões criminais de risco de Richard Berk : uma abordagem de aprendizado de máquina , p. 82
fonte