0

私と同じような問題を抱えた投稿をいくつか見ました。他の投稿とは異なり、私のものにはエラーを再現する Repex が付属しています。私は kernlab を使用して、ラプラス カーネルで最小二乗 SVM モデルを生成してきました。従属変数は 2 値で、すべての独立変数はカテゴリ変数です。モデルを適合させることができ、すべてのデータの予測を生成するためにlssvm使用できます。predictただし、データのサブセットのみを予測しようとすると、エラーがスローされheadます。どんな助けでも大歓迎です。

レペックス:

#Load needed packages
suppressMessages(library(dplyr))
library(kernlab)
#Set seed for reproducability
set.seed(1)
#Generate some dummy data
ex_data <- tibble(
  a = letters[sample.int(length(letters), 100, T)],
  b = letters[sample.int(length(letters), 100, T)],
  c = letters[sample.int(length(letters), 100, T)],
  y = runif(100, (a<'r')/2)*runif(100, (b<'t')/4)+runif(100, (c<'t')/2)+runif(100, (b<'g')/4)
) %>% 
  mutate(
    y = factor(y>1.5)
  )
#Fit the model
model <- lssvm(y~., ex_data, kernal = 'laplacedot')
#> Using automatic sigma estimation (sigest) for RBF or laplace kernel
#Works to predict on all data
invisible(predict(model, ex_data))
#Fails to predict on the head of the data
predict(model, head(ex_data))
#> Error in .local(object, ...): test vector does not match model !
##Some posts suggest removing the dependent variable
predict(model, head(ex_data[-4]))
#> Error in .local(object, ...): test vector does not match model !

reprex パッケージ(v2.0.0)により 2021-08-16 に作成

4

0 に答える 0