将 glm 应用于插入符号 R 中的鸢尾花数据集
Apply glm to iris dataset in caret R
我尝试在 Iris 数据集上应用 glm 算法,使用以下代码:
library(tidyverse)
library(caret)
dataset <- iris
tt_index <- createDataPartition(dataset$Sepal.Length, times = 1, p = 0.9, list = FALSE)
train_set <- dataset[tt_index, ]
test_set <- dataset[-tt_index, ]
model_glm <- train(Species ~.,
data = train_set,
method = "glm")
但它返回了这个警报:
Something is wrong; all the Accuracy metric values are missing:
Accuracy Kappa
Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA
Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA
NA's :1 NA's :1
也许我遗漏了什么,将不胜感激。
您正在尝试针对具有超过 2 个级别的响应变量的数据训练二元(即二项式)分类模型。如果您输入 warnings()
就会收到您收到的警告以及您可以看到的警告,这些警告会告诉您
glm models can only use 2-class outcomes
所以这行不通。
一种选择是省略其中一个结果,例如做
dataset <- subset(iris, Species != "virginica")
dataset <- transform(dataset, Species = droplevels(Species))
tt_index <- createDataPartition(
dataset$Sepal.Length, times = 1, p = 0.5, list = FALSE)
train_set <- dataset[tt_index, ]
test_set <- dataset[-tt_index, ]
model_glm <- train(
Species ~.,
data = train_set,
method = "glm",
family = "binomial")
这仍然会发出警告,但它们的来源不同。底线是,这可能不是测试基于 glm
的二项式分类的一个很好的例子。
我尝试在 Iris 数据集上应用 glm 算法,使用以下代码:
library(tidyverse)
library(caret)
dataset <- iris
tt_index <- createDataPartition(dataset$Sepal.Length, times = 1, p = 0.9, list = FALSE)
train_set <- dataset[tt_index, ]
test_set <- dataset[-tt_index, ]
model_glm <- train(Species ~.,
data = train_set,
method = "glm")
但它返回了这个警报:
Something is wrong; all the Accuracy metric values are missing:
Accuracy Kappa
Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA
Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA
NA's :1 NA's :1
也许我遗漏了什么,将不胜感激。
您正在尝试针对具有超过 2 个级别的响应变量的数据训练二元(即二项式)分类模型。如果您输入 warnings()
就会收到您收到的警告以及您可以看到的警告,这些警告会告诉您
glm models can only use 2-class outcomes
所以这行不通。
一种选择是省略其中一个结果,例如做
dataset <- subset(iris, Species != "virginica")
dataset <- transform(dataset, Species = droplevels(Species))
tt_index <- createDataPartition(
dataset$Sepal.Length, times = 1, p = 0.5, list = FALSE)
train_set <- dataset[tt_index, ]
test_set <- dataset[-tt_index, ]
model_glm <- train(
Species ~.,
data = train_set,
method = "glm",
family = "binomial")
这仍然会发出警告,但它们的来源不同。底线是,这可能不是测试基于 glm
的二项式分类的一个很好的例子。