Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Instância Gerenciada SQL do Azure
Na terceira parte desta série de tutoriais de quatro partes, você treinará um modelo preditivo em R. Na próxima parte desta série, você implantará esse modelo em um banco de dados do SQL Server com Serviços de Aprendizado de Máquina ou em Clusters de Big Data.
Na terceira parte desta série de tutoriais de quatro partes, você treinará um modelo preditivo em R. Na próxima parte desta série, você implantará esse modelo em um banco de dados do SQL Server com os Serviços de Aprendizado de Máquina.
Na terceira parte desta série de tutoriais de quatro partes, você treinará um modelo preditivo em R. Na próxima parte desta série, você implantará esse modelo em um banco de dados com o SQL Server R Services.
Na terceira parte desta série de tutoriais de quatro partes, você treinará um modelo preditivo em R. Na próxima parte desta série, você implantará esse modelo em um banco de dados de Instância Gerenciada SQL do Azure com Serviços de Aprendizado de Máquina.
Neste artigo, você aprenderá a:
- Treinar dois modelos de aprendizado de máquina
- Faça previsões a partir de ambos os modelos
- Compare os resultados para escolher o modelo mais preciso
Na primeira parte, você aprendeu como restaurar o banco de dados de exemplo.
Na segunda parte, você aprendeu como carregar os dados de um banco de dados em um quadro de dados Python e preparar os dados em R.
Na quarta parte, você aprenderá como armazenar o modelo em um banco de dados e, em seguida, criar procedimentos armazenados a partir dos scripts Python desenvolvidos nas partes dois e três. Os procedimentos armazenados serão executados no servidor para fazer previsões com base em novos dados.
Prerequisites
A terceira parte desta série de tutoriais pressupõe que você tenha cumprido os pré-requisitos da primeira parte e concluído as etapas da segunda parte.
Treinar dois modelos
Para encontrar o melhor modelo para os dados de aluguel de esqui, crie dois modelos diferentes (regressão linear e árvore de decisão) e veja qual deles está prevendo com mais precisão. Você usará o quadro rentaldata de dados criado na primeira parte desta série.
#First, split the dataset into two different sets:
# one for training the model and the other for validating it
train_data = rentaldata[rentaldata$Year < 2015,];
test_data = rentaldata[rentaldata$Year == 2015,];
#Use the RentalCount column to check the quality of the prediction against actual values
actual_counts <- test_data$RentalCount;
#Model 1: Use lm to create a linear regression model, trained with the training data set
model_lm <- lm(RentalCount ~ Month + Day + WeekDay + Snow + Holiday, data = train_data);
#Model 2: Use rpart to create a decision tree model, trained with the training data set
library(rpart);
model_rpart <- rpart(RentalCount ~ Month + Day + WeekDay + Snow + Holiday, data = train_data);
Faça previsões a partir de ambos os modelos
Use uma função de previsão para prever as contagens de aluguel usando cada modelo treinado.
#Use both models to make predictions using the test data set.
predict_lm <- predict(model_lm, test_data)
predict_lm <- data.frame(RentalCount_Pred = predict_lm, RentalCount = test_data$RentalCount,
Year = test_data$Year, Month = test_data$Month,
Day = test_data$Day, Weekday = test_data$WeekDay,
Snow = test_data$Snow, Holiday = test_data$Holiday)
predict_rpart <- predict(model_rpart, test_data)
predict_rpart <- data.frame(RentalCount_Pred = predict_rpart, RentalCount = test_data$RentalCount,
Year = test_data$Year, Month = test_data$Month,
Day = test_data$Day, Weekday = test_data$WeekDay,
Snow = test_data$Snow, Holiday = test_data$Holiday)
#To verify it worked, look at the top rows of the two prediction data sets.
head(predict_lm);
head(predict_rpart);
Aqui está o conjunto de resultados.
RentalCount_Pred RentalCount Month Day WeekDay Snow Holiday
1 27.45858 42 2 11 4 0 0
2 387.29344 360 3 29 1 0 0
3 16.37349 20 4 22 4 0 0
4 31.07058 42 3 6 6 0 0
5 463.97263 405 2 28 7 1 0
6 102.21695 38 1 12 2 1 0
RentalCount_Pred RentalCount Month Day WeekDay Snow Holiday
1 40.0000 42 2 11 4 0 0
2 332.5714 360 3 29 1 0 0
3 27.7500 20 4 22 4 0 0
4 34.2500 42 3 6 6 0 0
5 645.7059 405 2 28 7 1 0
6 40.0000 38 1 12 2 1 0
Compare os resultados
Agora você quer ver qual dos modelos dá as melhores previsões. Uma maneira rápida e fácil de fazer isso é usar uma função de plotagem básica para exibir a diferença entre os valores reais em seus dados de treinamento e os valores previstos.
#Use the plotting functionality in R to visualize the results from the predictions
par(mfrow = c(1, 1));
plot(predict_lm$RentalCount_Pred - predict_lm$RentalCount, main = "Difference between actual and predicted. lm")
plot(predict_rpart$RentalCount_Pred - predict_rpart$RentalCount, main = "Difference between actual and predicted. rpart")
Parece que o modelo de árvore de decisão é o mais preciso dos dois modelos.
Limpeza de recursos
Se você não quiser continuar com este tutorial, exclua o banco de dados TutorialDB.
Próximos passos
Na terceira parte desta série de tutoriais, você aprendeu como:
- Treinar dois modelos de aprendizado de máquina
- Faça previsões a partir de ambos os modelos
- Compare os resultados para escolher o modelo mais preciso
Para implantar o modelo de aprendizado de máquina que você criou, siga a quarta parte desta série de tutoriais: