Especificamente, a implementação R do t-SNE no pacote Rtsne possui um argumento "check_duplicates" e a documentação sugere que "é melhor garantir que não haja duplicatas presentes e defina essa opção como FALSE, especialmente para grandes conjuntos de dados".
Além disso, se você tentar executar o t-SNE em um conjunto de dados no R que possua duplicatas, você receberá a mensagem de erro: "Erro no [comando capturado pelo usuário]: remova as duplicatas antes de executar o TSNE".
Então, por que esse comportamento ocorre? Eu tenho um conjunto de dados em que várias amostras coincidentemente têm as mesmas medidas.
É simplesmente um "ponto de dados duplicado, após a redução, terá os mesmos pontos de dados de qualquer maneira, portanto, não desperdice poder de processamento"? A presença de duplicatas afeta os cálculos do processo?
Rtsne
pacote verifica as duplicatas principalmente no domínio do tempo. - - Além disso, otsne
pacote não faz essa verificação apenasRtsne
. - - Definircheck_duplicates=FALSE
não é por causa da melhoria de desempenho. Este não é o argumento principal. - - Existem vários recursos experimentais em muitas implementações, como o check-up da matriz de distância, que - sim - está desativado como padrão. Novamente, você não está respondendo à pergunta. - - Sua referência não é relevante para a pergunta.t-SNE
O método não requer a remoção de duplicatas. O fato de ser um recurso padrãoRtsne
não implica em seu requisito. É útil para algum monitoramento de eventos de curto prazo. Para caracterizar tendências e / ou padrões de longo prazo com grandes conjuntos de dados, vejo pouca utilidade. ARtsne
configuração padrão pode ser mais inclinada para caracterizar eventos no domínio do tempo, sem estudos no domínio de Fourier.Suponha que você tenha pontos no domínio do tempo. O algoritmo duplicado causa uma quantidade significativa de falsos positivos, porque a verificação duplicada é projetada principalmente no sinal no domínio do tempo. O espaço de Fourier pode mostrar que os eventos considerados pelo duplicado do algoritmo não são necessários.
Portanto, minha observação é que o algoritmo é ganancioso quanto a pontos duplicados no domínio do tempo, o que não é útil para mim quando consideramos sinais de longo prazo, tendências de longo prazo e padrões de longo prazo. O fato de o ponto estar duplicado no domínio do tempo não significa, na verdade, que está duplicado também no domínio de Fourier. Eu acho que será mais uma coincidência se for uma duplicata no domínio do tempo nas aplicações da vida real. Portanto, desativar o recurso deve estar ok. Estimar quanto dos pontos são realmente duplicados nos dois domínios é específico no estudo de caso. Eu obtenho descritores significativamente melhores de eventos e / ou fenômenos ao considerar conjuntos de dados de longo prazo sem a verificação duplicada em muitos aplicativos da vida real.
Eu acho que a
Rtsne
documentação não é clara sobre o caso ao dizer [desligarcheck_duplicates
e] não desperdiçar energia de processamento . Existem realmente outras razões, como descrito acima, pelas quais acheck_duplicates
desativação pode ser realizada conforme também ocorre em algumas outras implementações do método. Ocheck_duplicates=TRUE
é uma seleção pessoal doRtsne
desenvolvedor por padrão no momento. Gostaria de saber se existem razões de implementação para a decisão.fonte