[解決済み】bstTreeの予測値の混乱行列、エラー:'The data must contain some levels that overlap reference'.
2022-02-09 04:19:57
質問事項
bstTreeメソッドを使ってモデルを学習し、混同行列を出力しようとしています。
set.seed(1234)
splitIndex <- createDataPartition(attended_num_new_bstTree$adverse_effects, p = .80, list = FALSE, times = 1)
trainSplit <- attended_num_new_bstTree[ splitIndex,]
testSplit <- attended_num_new_bstTree[-splitIndex,]
ctrl <- trainControl(method = "cv", number = 5)
model_bstTree <- train(adverse_effects ~ ., data = trainSplit, method = "bstTree", trControl = ctrl)
predictors <- names(trainSplit)[names(trainSplit) != 'adverse_effects']
pred_bstTree <- predict(model_bstTree$finalModel, testSplit[,predictors])
plot.roc(auc_bstTree)
conf_bstTree= confusionMatrix(pred_bstTree,testSplit$adverse_effects)
しかし、エラー 'Error in confusionMatrix.default(pred_bstTree, testSplit$adverse_effects) が発生しました。 データは、参照に重なるいくつかのレベルを含んでいなければなりません'。
max(pred_bstTree)
[1] 1.03385
min(pred_bstTree)
[1] 1.011738
> unique(trainSplit$adverse_effects)
[1] 0 1
Levels: 0 1
どうすればこの問題を解決できますか?
> head(trainSplit)
type New_missed Therapytypename New_Diesease gender adverse_effects change_in_exposure other_reasons other_medication
5 2 1 14 13 2 0 0 0 0
7 2 0 14 13 2 0 0 0 0
8 2 0 14 13 2 0 0 0 0
9 2 0 14 13 2 1 0 0 0
11 2 1 14 13 2 0 0 0 0
12 2 0 14 13 2 0 0 0 0
uvb_puva_type missed_prev_dose skintypeA skintypeB Age DoseB DoseA
5 5 1 1 1 22 3.000 0
7 5 0 1 1 22 4.320 0
8 5 0 1 1 22 4.752 0
9 5 0 1 1 22 5.000 0
11 5 1 1 1 22 5.000 0
12 5 0 1 1 22 5.000 0
解決方法は?
<ブロッククオート
max(pred_bstTree) [1] 1.03385
min(pred_bstTree) [1] 1.011738
とエラーがすべてを物語っています。ROCをプロットすることは、単に閾値の違いによる影響を確認することです。例えば、閾値が0.5の場合、0.7は1(真クラス)、0.3は0(偽クラス)に変換され、閾値に基づいた丸めが行われます。閾値は(0,1)の範囲にあります。
あなたの場合、最小予測値が1より大きいので、閾値に関係なく、常にすべての観測値が真クラスになります(@phiverが分類ではなく回帰を行っているかどうか疑問に思ったのはそのためです)。予測に0がなければ、'予測'のレベルもなく、それは、'予測'のゼロレベルと一致します。
adverse_effects
というエラーが発生します。
PS: データを投稿していただかないと、エラーの根本的な原因を特定することは困難です。
関連
-
[解決済み】 'height' はベクトルか行列でなければならない barplot のエラー
-
[解決済み】lis[[i]]のエラー:1つ未満の要素を選択しようとした場合
-
[解決済み] write.tableしようとすると、未実装の型リストが表示される。
-
[解決済み】「次のオブジェクトは 'package:xxx' からマスクされています」とはどういう意味ですか?
-
[解決済み】x[[i]]でのエラー:レベル2で再帰的インデックス作成に失敗した
-
[解決済み】R 置換する項目数が置換長の倍数でない/しかし結果は正しい
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】ggplot2でのプロット:「Error: カテゴリ軸のY軸に "Discrete value supplied to continuous scale "と表示される。
-
[解決済み] テスト
-
[解決済み】Rで相対的な頻度をプロットするためにhistをどのように使用しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] promise already under evaluation: recursive default argument reference or earlier problems?
-
[解決済み】数学関数への非数値引数
-
[解決済み】apply()とadply()の出力が異なる件)
-
[解決済み] ヒートマップ作成時のエラー - 外部関数呼び出しでNA/NaN/Inf (arg 11)
-
[解決済み] 因子を日付形式に変換するにはどうすればいいですか?
-
[解決済み】Rはプロットするが、アブラインを描画しない
-
[解決済み】エラー - replacement has [x] rows, data has [y].
-
[解決済み】Rで結果の行数がベクトル長(arg 2)の倍数でない件
-
[解決済み】ggplot2でのプロット:「Error: カテゴリ軸のY軸に "Discrete value supplied to continuous scale "と表示される。
-
[解決済み】"object not interpretable as a factor "というエラーの意味は?[クローズド]