Получение низкой точности и отзыва в случайном лесу и модели Lo git в классификации - PullRequest
0 голосов
/ 28 апреля 2020

Привет Я новичок в моделировании и создании модели классификации для прогнозирования вероятности водителя, попавшего в аварию. Мои данные имеют около 38 функций. Я пробовал Random Forest Logisti c (в R) даже на машине One Vector Suport в (AzureML). Я получаю очень плохой отзыв и точность. Я также попробовал метод Ensemble Modeling, где я взял в среднем 3 модели (GBM, RF и KNN). Опять же точность и отзыв очень низок. Кто-нибудь может предложить некоторые другие методы и приемы, которые я могу использовать для моделирования.

#Training the random forest model
model_rf<-train(driver_data_train[,-38],driver_data_train$IS_fatal,method='rf',trControl=fitControl,tuneLength=3)

#Predicting using random forest model
driver_data_test$pred_rf<-predict(model_rf,driver_data_test)

#Checking the accuracy of the random forest model
confusionMatrix(driver_data_test$IS_fatal,driver_data_test$pred_rf)

#Training the knn model
model_knn<-train(driver_data_train[,-38],driver_data_train$IS_fatal,method='knn',trControl=fitControl,tuneLength=3)

#Predicting using knn model
driver_data_test$pred_knn<-predict(model_knn,driver_data_test)

#Checking the accuracy of the KNN model
confusionMatrix(driver_data_test$IS_fatal,driver_data_test$pred_knn)

#Training the logistic regression model

model_lr<-train(driver_data_train[,-38],driver_data_train$IS_fatal,method='gbm',trControl=fitControl,tuneLength=3)

#Predicting using gbm model
driver_data_test$pred_gbm<-predict(model_lr,driver_data_test)


#Checking the accuracy of the gbm  model
confusionMatrix(driver_data_test$IS_fatal,driver_data_test$pred_gbm)


#Predicting the probabilities
driver_data_test$pred_rf_prob<-predict(object = model_rf,driver_data_test,type='prob')
driver_data_test$pred_knn_prob<-predict(object = model_knn,driver_data_test,type='prob')
driver_data_test$pred_lr_prob<-predict(object = model_lr,driver_data_test,type='prob')


#Taking average of predictions
driver_data_test$pred_avg<-(driver_data_test$pred_rf_prob$F+driver_data_test$pred_knn_prob$F+driver_data_test$pred_lr_prob$F)/3

#Splitting into binary classes at 0.5
driver_data_test$pred_avg<-as.factor(ifelse(driver_data_test$pred_avg>0.5,'F','NF'))
confusionMatrix(driver_data_test$IS_fatal,driver_data_test$pred_avg)

O/p of code 

Precision   Recall  Accuracy    
0.168650794 0.47752809  0.939793039 rf
0.05952381  0.256410256 0.934031044 knn
0.136904762 0.420731707 0.937734962 gbm

0.061507937 0.449275362 0.93991063  Final 
...