Eu tenho dois conjuntos de dados A e B que são exatamente iguais em termos de número de colunas, nome das colunas e valores. A única diferença é a ordem dessas colunas. Treino o modelo LightGBM em cada um dos dois conjuntos de dados com as seguintes etapas
- Divida cada conjunto de dados em treinamento e teste (use a mesma semente e proporção aleatória para A e B)
- Deixe os hiperparâmetros como praticamente o padrão
- Defina um estado aleatório como um número fixo (para reprodução)
- Ajuste o learning_rate usando uma Pesquisa em grade
- Treine um modelo LightGBM no conjunto de treinamento e teste-o no conjunto de testes
- A taxa de aprendizado com o melhor desempenho no conjunto de testes será escolhida
Os modelos de saída nos dois conjuntos de dados são muito diferentes, o que me faz pensar que a ordem das colunas afeta o desempenho do treinamento do modelo usando o LightGBM.
Você sabe por que esse é o caso?
fonte
lightgbm
permite ao usuário definir as sementes aleatórias usadas para amostragem de linha e coluna.Embora a ordem dos dados seja inconseqüente em teoria, é importante na prática. Considerando que você tomou medidas para garantir a reprodutibilidade, a ordem diferente dos dados alterará sua lógica de divisão de teste de trem (a menos que você tenha certeza de que os conjuntos de trens e conjuntos de testes nos dois casos são exatamente os mesmos). Embora você não especifique como os dados são divididos, é altamente possível que uma certa variedade de pontos de dados torne a máquina mais robusta a discrepâncias e, portanto, oferecendo melhor desempenho do modelo. Caso os dados de treinamento e teste sejam os mesmos nos dois casos, é provável que você tenha que verificar se há uma medida de semente / reprodutibilidade (em qualquer parte do seu código) que você não tenha tomado.
fonte