Как настроить параметры наивного байесовского классификатора с использованием матрицы терминов данных в качестве входных данных - PullRequest
0 голосов
/ 29 марта 2019

Я хочу настроить параметры наивного байесовского классификатора, который предсказывает имя исполнителя на основе текста песни.

Чтобы построить модель, я преобразовал текст песни в матрицу термина данных, используя create_matrix. Каждая ячейка содержит «да», если текст содержит слово в столбце, «Нет», если нет. Эта матрица является вводом модели, а имя исполнителя - классом. Я добавил параметр Лапласа. Я начал с Лапласа = 0,5. Но я не знаю, как выбрать подходящее значение Лапласа, как интерпретировать мой результат и убедиться, что классификатор не дает мне результаты по Хасарду или нет. Кроме того, я не знаю, есть ли другие параметры, которые могут настроить / улучшить мою модель. Код ниже показывает код, используемый для построения классификатора. данные - это датафрейм, содержащий тексты песен и имена исполнителей

data.dt_matrix<-create_matrix(data$lyrics,ngramLength=1,weighting = tm::weightTfIdf)
data_training<-apply(data.dt_matrix, MARGIN = 2,convert_values)
data_training<-data_training[sample(nrow(data_training)),]
folds<-folds(data$Class, nfolds = 5, stratified=TRUE, seed = 2016)

for(i in 1:5){
  #Segement your data by fold using the which() function 
  testIndexes <- which(folds==i,arr.ind=TRUE)
  testData <- data_training[testIndexes, ]
  testLables<-data[testIndexes,]
  trainLabels<-data[-testIndexes,]
  trainData <- data_training[-testIndexes, ]

  model <- 
  naiveBayes(as.matrix(trainData),as.factor(trainLabels$Class),laplace=0.5) 

  pred<- predict(model, as.matrix(testData))
  true.labels<-as.factor(testLables$Class)
  mConfusion<-table(true.labels,pred)
  acc<-(mConfusion[1,1]+mConfusion[2,2]+mConfusion[3,3])/sum(mConfusion)
  TrainErr<-1-acc
  print(TrainErr)
  AvgTrErr=TrainErr+AvgTrErr
  #Use the test and train data partitions however you desire...
}
print (AvgTrErr/5)

Рассчитанная ошибка обучения составляет 0,66 после 5-кратной перекрестной проверки.

...