Titanic Kaggle データセットを使用して、R で SVM モデルの調整を完了しようとしています。
次のコードを実行すると:
tune.out = tune(svm, Survived ~ Pclass + Sex + Age + Fare + Embarked + family,
data = boat, kernel = "linear",
ranges = list(cost = c(0.001, 0.01, 0.1, 1, 5, 10, 100)))
エラーが発生します:
Error in names(ret2) <- rowns :
'names' attribute [90] must be the same length as the vector [71]
トレースバックを使用:
3: predict.svm(model, if (!is.null(validation.x)) validation.x else if (useFormula) data[-train.ind[[sample]],
, drop = FALSE] else if (inherits(train.x, "matrix.csr")) train.x[-train.ind[[sample]],
] else train.x[-train.ind[[sample]], , drop = FALSE])
2: predict.func(model, if (!is.null(validation.x)) validation.x else if (useFormula) data[-train.ind[[sample]],
, drop = FALSE] else if (inherits(train.x, "matrix.csr")) train.x[-train.ind[[sample]],
] else train.x[-train.ind[[sample]], , drop = FALSE])
1: tune(svm, Survived ~ Pclass + Sex + Age + Fare + Embarked + family,
data = boat, kernel = "linear", ranges = list(cost = c(0.001,
0.01, 0.1, 1, 5, 10, 100)))
私の変数に何か問題がある可能性があることは理解しています。
それが役立つ場合、私は変数を変更していませんが、束を削除しました(チューニング式に見られないもので、次の方法で新しい変数を作成しましたfamily
:
boat$family = boat$SibSp + boat$Parch
boat$family[boat$family > 0] = 1
ボートはdata.table
.