Estava fazendo um curso de machine learning, quando reparei que as minhas notas com o código R para rodar PCA, estavam até que bem didáticas. Ainda não falei do conteúdo aqui no site, mas acho que compartilhar esse código já deve ajudar algumas pessoas. Então, embora eu ainda não tenha nada anotado com relação a teoria, vou deixar isso aqui para quem já sabe o conceito e quer aplicar no R.
# Carrega pacote Caret para funcoes de modelagem # Carrega pacote AppliedPredictiveModeling por causa da base library(caret) library(AppliedPredictiveModeling) # Separa a base inicial em treino e teste (75-25) set.seed(3433); indice.amostra = createDataPartition(base$variavel.resposta, p = 3/4)[[1]] treino = base[ indice.amostra,] teste = base[-indice.amostra,] # cria a funcao que faz a transformacao em pca na base treino (sem a variavel resposta) # encontrando os principal components que respondem por 0.8 da variancia # estamos supondo que a coluna 10 eh a da variavel resposta preProc = preProcess(treino[ , -10],method="pca",thres=.8) # Veja o resultado preProc # Agora, aplica a funcao na base treino sem a variavel resposta treino.PC = predict(preProc,treino[,-10]) modelo = train(x=treino.PC, y=treino$diagnosis, method = "glm") # Agora, primeiro aplicamos na base teste, # a transformacao que fizemos no treino teste.PC = predict(preProc, treste[,-10]) # agora, vejamos qual a acuracia do nosso modelo # predict() serve para aplicar a funcao na base declarada # ou seja, estamos aplicando o modelo na base teste confusionMatrix(teste$diagnosis,predict(modelo,teste.PC)) # EXTRA: caso voce nao saiba a posicao da sua variavel resposta # voce pode usar o codigo abaixo, substituindo o campo # variavel_resposta pelo nome da sua variavel. Lembrando # que o R eh case sensitive treino[ , -which(names(treino) %in% c("variavel_resposta"))
Olá, de onde saiu essa base de dados?
E qual deveria ser o resultado desse código?
Desde já obrigado.
Olá, Matheus! Não tem base nesse exemplo. Eu fiz ele de forma genérica, para vc tentar aplicar no seu problema. Ali, vc pode só substituir ‘base’ pelo seu dataframe e ‘variavel.resposta’ o target no seu problema. O resultado final do script é uma matriz de classificação de um problema de classificação. Se vc já tiver um dataset e não estiver conseguindo resolver, manda uma DM no Twitter com o print do erro que eu te ajudo. Forte abraço!