gpt4 book ai didi

r - R 中的多标签分类

转载 作者:行者123 更新时间:2023-11-30 08:36:32 26 4
gpt4 key购买 nike

我有一个包含 28 个变量(13 个标签和 15 个特征)的训练数据集。具有 15 个特征的测试数据集,我必须根据这些特征预测该测试数据集的标签。我分别为所有 13 个标签制作了 KNN 分类器。

是否有可能将所有这 13 个独立标签 KNN 分类器组合成一个多标签分类器?

我当前的单个标签代码:

library(class)
train_from_train <- train[1:600,2:16]
target_a_train_from_train <- train[1:600,17]
test_from_train <- train[601:800,2:16]
target_a_test_from_train <- train[601:800,17]
knn_pred_a <-knn (train = train_from_train, test = test_from_train, cl= target_a_train_from_train, k = 29)
table(knn_pred_a, target_a_test_from_train)
mean(knn_pred_a != target_a_test_from_train)
knn_pred_a_ON_TEST <-knn (train = train[,2:16], test = test[2:16], cl= train[,17], k = 29)
knn_pred_a_ON_TEST

我搜索了互联网,包 mldr 似乎是一个选项,但我无法使其适应我的需求。

最佳答案

您可以使用 ARNN 包来实现此目的。但据我所知,这并不准确。

library(RANN)
library(reshape2)

####
## generate some sample data and randomize order
iris.knn <- iris[sample(1:150,150),]
#add a second class
iris.knn["Class2"] <- iris.knn[,5]=="versicolor"
iris.knn$org.row.id <- 1:nrow(iris.knn)
train <- iris.knn[1:100,]
test <- iris.knn[101:150,]
##
#####
## get nearest neighbours
nn.idx <- as.data.frame(nn2(train[1:4],query=test[1:4],k=4)$nn.idx)
## add row id
nn.idx$test.row.id <- test$rowid

#classes and row id
multiclass.vec <- data.frame(row.id=1:150,iris.knn[,5:6])
#1 row per nearest neighbour
melted <-melt(nn.idx,id.vars="row.id")
merged <- merge(melted,multiclass.vec, by.x = "value",by.y="org.row.id")
#aggrgate a single class
aggregate(merged$Species, list(merged$row.id), function(x) names(which.max(table(x))))

#### aggregate for all classes
all.classes <- melt(merged[c(2,4,5)],id.vars = "row.id")
fun.agg <- function(x) {
if(length(x)==0){
"" #<-- default value adaptation might be needed.
}else{
names(which.max(table(x)))
}
}
dcast(all.classes,row.id~variable, fun.aggregate=fun.agg,fill=NULL)

我只对一个类进行了聚合。对所有类并行执行此步骤将需要另一个熔化操作,并且会使代码非常困惑。

关于r - R 中的多标签分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34844642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com