Функция Predict конвертирует вероятности от 0 до 1 и сохраняет данные в кадре - PullRequest
0 голосов
/ 28 ноября 2018

Код функции Predict возвращает вывод, как этот.

library(e1071)
model <- svm(Species ~ ., data = iris, probability=TRUE)
pred <- predict(model, iris, probability=TRUE)

head(attr(pred, "probabilities"))
#      setosa versicolor   virginica
# 1 0.9803339 0.01129740 0.008368729
# 2 0.9729193 0.01807053 0.009010195
# 3 0.9790435 0.01192820 0.009028276
# 4 0.9750030 0.01531171 0.009685342
# 5 0.9795183 0.01164689 0.008834838
# 6 0.9740730 0.01679643 0.009130620

Итак, я написал фрагмент кода, подобный этому: -

Code:-

pred_df <- as.data.frame(pred)

Это возвращает вывод, как это, (естьтолько что составил значения)

1 Setosa
2 Versicolor
3 Virginica
4 Setosa
5 Setosa

Но мой предпочтительный вывод будет примерно таким (только что составил значения),

   Setosa      Versicolor       Virginica
1 0.62          0.11               0.27
2 0.41          0.55               0.04

***Pred is a factor and Pred_df is a dataframe***

Я ищу, чтобы вернуть числа вформа десятичного числа, а не целое число.Пожалуйста, помогите мне с этим.

1 Ответ

0 голосов
/ 28 ноября 2018

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

str(pred)
 Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
 - attr(*, "names")= chr [1:150] "1" "2" "3" "4" ...
 - attr(*, "probabilities")= num [1:150, 1:3] 0.979 0.971 0.978 0.973 0.978 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:150] "1" "2" "3" "4" ...
  .. ..$ : chr [1:3] "setosa" "versicolor" "virginica"

Так что

as.data.frame(attr(pred,"probabilities"))

должен делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...