Como um primeiro pensamento, isso significa que pelo menos o seu conjunto de treinamento não é representativo para os dados do aplicativo. Se o conjunto de testes é representativo é uma pergunta que você deve IMHO pensar com muito cuidado. Nesse contexto, também é importante descobrir se essas classes ausentes são um problema do conjunto de treinamento específico muito pequeno ou se essa é uma característica geral do problema / tarefa / aplicativo. Ou seja, se novas classes que nunca foram encontradas antes aparecerão o tempo todo.
Em princípio, vejo duas possibilidades de lidar com essa situação:
Diga que o conjunto de treinamento com certeza não é representativo e solicite mais dados, particularmente dados das classes ausentes. Isso faz sentido caso você chegue à conclusão de que o problema está no conjunto de treinamento específico, não nas características gerais do aplicativo.
De qualquer forma, sabendo que os dados de treinamento perdem aulas, considero usar um classificador de uma classe. Ou seja, um classificador que trata cada classe independentemente de qualquer outra classe possível. Idealmente, um classificador de uma classe deve retornar "classe desconhecida" para os casos de teste de classes que não estão disponíveis para treinamento. Para classificadores de uma classe, testar essa "rejeição" de casos pertencentes a classes verdadeiramente desconhecidas realmente faz sentido.
editar o comentário de wrt @ gung: Suponho que a divisão de trem / teste seja corrigida por algum motivo que se espera que seja bom .