1

過去数時間、キャレット glmnet モデルをトレーニングしようとしましたが、エラーが発生し続けます。データセットには 15 の観測値があり、3 つは因子変数、11 は数値、1 は整数です。データセットを 70/30 のトレーニング テスト分割に分割しました。

データセットにはいくつかの NA 値が含まれているため、レシピ コードに NA を代入しようとしました。次に、数値データを中央に配置してスケーリングします。

持っているレシピを使用してデータを前処理しようとすると、エラーが発生し続けます

library(caret)
library(tidyverse)
library(recipes)

data = "data.csv"

'data.frame':   168 obs. of  15 variables:
$ COUNTRY               : Factor w/ 190 levels "Country1","Country10",..: 1 103 114 125 136 147 158 169 180 2 ...
$ GOVERNMENT            : Factor w/ 5 levels "AUTOCRATIC","LEFT"
$ POPULATION            : num  45.4 45.1 80.2 7.8 37.5 ...
$ AGE25PROP             : num  13.6 17.9 11.3 17 15.1 ...
$ AGE55PROP             : num  33.5 36.5 34.4 32.5 33.1 ...
$ POPDENSITY            : num  498 502 494 506 492 ...
$ GDP2019               : num  22.6 22.7 58 56.4 57.4 ...
$ INFANTMORT            : num  16.3 14.2 17.7 NA 15.2 ...
$ DOC10                 : num  22.6 24.1 24.7 NA 26.6 ...
$ VAXRATE               : num  39.5 35.2 61.6 NA 60.6 ...
$ HEALTHCARE_BASIS      : Factor w/ 4 levels "FREE","INSURANCE",
$ HEALTHCARE_COST       : num  4759 15281 NA 5009 NA ...
$ DEATHRATE             : num  21.7 27.3 17.3 16.7 25.2 ...
$ HEALTHCARE_COST_shadow: num  0 0 1 0 1 1 0 1 0 0 ...
$ na_count              : int  0 0 1 3 1 2 0 1 4 0 ...

Y変数として「DEATHRATE」を使用したテスト/トレイン分割

subIndex <- caret::createDataPartition(y = data$DEATHRATE, p = 0.7, list = FALSE)
train <- data[subIndex]
test <- data[-subIndex]

従属変数として「DEATHRATE」、ID として「COUNTRY」を使用した前処理のためのレシピの使用

rec <- recipes::recipe("DEATHRATE" ~., data = train) %>%

update_role("COUNTRY", new_role = "id") %>%

step_knnimpute(all_predictors(), neighbours = 5) %>%

step_center(all_numeric(), -has_role("outcome")) %>%

step_scale(all_numeric(), -has_role("outcome"))

私はいつもエラーが発生します

Error in terms.formula(formula, data = data) : 
invalid model formula in ExtractVars

モデルのトレーニング

model <- caret::train(rec, data = train, method = "glmnet")

私が間違っていることを誰かが知っていますか?

4

0 に答える 0