[解決済み] 予測との誤差 - ROCRパッケージ(確率を使用)
2022-02-11 08:55:48
質問
svmで"rfe"関数を使い、特徴を減らしたモデルを作成しました。その後、テストデータに対して "predict" を使用したところ、クラスラベル(バイナリ)、0クラス確率、1クラス確率が出力されました。その後、ROCRパッケージのpredictation関数を使って、予測された確率と真のクラスラベルを出力してみましたが、以下のようなエラーが発生し、2つの配列の長さが等しいため、原因がよくわかりません。
> pred_svm <- prediction(pred_svm_2class[,2], as.numeric(as.character(y)))
Error in prediction(pred_svm_2class[, 2], as.numeric(as.character(y))) :
Number of predictions in each run must be equal to the number of labels for each run.
私は以下のコードを持っていて、入力はここにあります。 クリックミー .バイナリ分類の小さなデータセットなので、コードは高速に動作します。
library("caret")
library("ROCR")
sensor6data_2class <- read.csv("/home/sensei/clustering/svm_2labels.csv")
sensor6data_2class <- within(sensor6data_2class, Class <- as.factor(Class))
set.seed("1298356")
inTrain_svm_2class <- createDataPartition(y = sensor6data_2class$Class, p = .75, list = FALSE)
training_svm_2class <- sensor6data_2class[inTrain_svm_2class,]
testing_svm_2class <- sensor6data_2class[-inTrain_svm_2class,]
trainX <- training_svm_2class[,1:20]
y <- training_svm_2class[,21]
ctrl_svm_2class <- rfeControl(functions = rfFuncs , method = "repeatedcv", number = 5, repeats = 2, allowParallel = TRUE)
model_train_svm_2class <- rfe(x = trainX, y = y, data = training_svm_2class, sizes = c(1:20), metric = "Accuracy", rfeControl = ctrl_svm_2class, method="svmRadial")
pred_svm_2class = predict(model_train_svm_2class, newdata=testing_svm_2class)
pred_svm <- prediction(pred_svm_2class[,2], y)
ありがとうございます、よろしくお願いします。
どのように解決するのですか?
これは、行の中の
pred_svm <- prediction(pred_svm_2class[,2], y)
pred_svm_2class[,2] はテストデータでの予測値、y はトレーニングデータのラベルです。このようにテスト用のラベルを別の変数に生成するだけです。
y_test <- testing_svm_2class[,21]
とすると、今度は
pred_svm <- prediction(pred_svm_2class[,2], y_test)
エラーは発生しません。以下、完全なコード -。
# install.packages("caret")
# install.packages("ROCR")
# install.packages("e1071")
# install.packages("randomForest")
library("caret")
library("ROCR")
sensor6data_2class <- read.csv("svm_2labels.csv")
sensor6data_2class <- within(sensor6data_2class, Class <- as.factor(Class))
set.seed("1298356")
inTrain_svm_2class <- createDataPartition(y = sensor6data_2class$Class, p = .75, list = FALSE)
training_svm_2class <- sensor6data_2class[inTrain_svm_2class,]
testing_svm_2class <- sensor6data_2class[-inTrain_svm_2class,]
trainX <- training_svm_2class[,1:20]
y <- training_svm_2class[,21]
y_test <- testing_svm_2class[,21]
ctrl_svm_2class <- rfeControl(functions = rfFuncs , method = "repeatedcv", number = 5, repeats = 2, allowParallel = TRUE)
model_train_svm_2class <- rfe(x = trainX, y = y, data = training_svm_2class, sizes = c(1:20), metric = "Accuracy", rfeControl = ctrl_svm_2class, method="svmRadial")
pred_svm_2class = predict(model_train_svm_2class, newdata=testing_svm_2class)
pred_svm <- prediction(pred_svm_2class[,2], y_test)
関連
-
[解決済み】 'height' はベクトルか行列でなければならない barplot のエラー
-
[解決済み】'builtin'型のオブジェクトはsubsetableではない【重複
-
[解決済み】model.frame.defaultでのエラー:変数の長さが異なる
-
[解決済み】LMEモデルのレベル0、ブロック1でのバックソルブにおける特異性
-
[解決済み] write.tableしようとすると、未実装の型リストが表示される。
-
[解決済み】apply()とadply()の出力が異なる件)
-
[解決済み】データのマージ - fix.by(by.x, x)のエラー)
-
[解決済み】RでKNN。trainとclassは長さが違う」?
-
[解決済み】 .subset2(x, i, exact = exact)のエラー:Rの添え字が範囲外である。
-
[解決済み] randomForestのROC曲線誤差
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】xtsオブジェクトでエラー: "antempt to set 'colnames' on the object with less than two dimension "を克服する方法
-
[解決済み】'builtin'型のオブジェクトはsubsetableではない【重複
-
[解決済み】エラー。Rの次元数が正しくない
-
[解決済み】ggplotの線幅を変更するには?
-
[解決済み】Rで「パッケージ'FILE_PATH'のインストールで終了ステータスが0でなかった」。
-
[解決済み】ベースグラフィックスでプロットエリアの外側に凡例をプロットする?
-
[解決済み】rbind エラー。"名前が以前の名前と一致しない"
-
[解決済み] lmer エラー: グループ化係数は観測数未満でなければならない
-
[解決済み】R: predict() の数値 'envir' 引数が長さ1でない。)
-
[解決済み】エラー - replacement has [x] rows, data has [y].