Applicazioni pratiche di machine learning/Riconoscimento della scrittura a mano: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova pagina: ==Caricamento librerie == <syntaxhighlight lang="rsplus"> library(caret) </syntaxhighlight> ==Parte 1 : Dati == I seguenti files di dati train.csv e test.csv contengono immagini...
 
Nessun oggetto della modifica
Riga 39:
#Varianza dei primi 20 principal components
plot(cumsum(p[1:20]) )
</syntaxhighlight>
 
[[File:Pca digit recognizer.png|frame|centro]]
 
Divido il training set in un 70% su cui costruisco il modello previsionale utilizzando l'algoritmo di machine learning Random Forest e in un rimanente 30% che chiamo validation set su cui testo il modello. Calcolo poi la confusion matrix sia sul training set. che sul validation set che mi danno rispettivamente un' Accuracy quasi del 100% sul training set, e un'Accuracy del 91% sul validation set . Tutto ciò soltanto con 20 principal components invece di 784 predictors.
 
<syntaxhighlight lang="rsplus">
inTrain <- createDataPartition(y=training$label,p=0.7,list = FALSE)
train_p <- training[inTrain,]
test_p <- training[-inTrain,]
 
pca <- prcomp(train_p[,-1], rank. = 20)
Z <- as.data.frame(pca$x)
train_data <- cbind(Z,label=as.factor(train_p$label))
model <- train(label ~ ., data=train_data, method="rf", ntree=10)
pred <- predict(model, newdata=train_data)
print("Confusion Matrix on training data with Accuracy about 100%")
confusionMatrix(pred,train_data$label)
test.data <- predict(pca, newdata=test_p)
test.data <- as.data.frame(test.data)
rf.pred <- predict(model,test.data)
print("Confusion Matrix on testing data with Accuracy about 91%")
confusionMatrix(rf.pred,as.factor(test_p$label))
</syntaxhighlight>