ああ!compute
ニューラル ネットワークを使用しようとすると、次のエラーが発生し続けます。
> net.compute <- compute(net, matrix.train2)
Error in neurons[[i]] %*% weights[[i]] : non-conformable arguments
何が問題なのかわかりません。以下に、私のマトリックスからのデータと書式設定の例を示し、実行しようとしているコードを示します。
matrix.train1
ネットワークのトレーニングに使用されます> matrix.train1 (Intercept) survived pclass sexmale age sibsp parch fare embarkedC embarkedQ embarkedS 1 1 0 3 1 22.00 1 0 7.2500 0 0 1 2 1 1 1 0 38.00 1 0 71.2833 1 0 0 3 1 1 3 0 26.00 0 0 7.9250 0 0 1 4 1 1 1 0 35.00 1 0 53.1000 0 0 1 5 1 0 3 1 35.00 0 0 8.0500 0 0 1 6 1 0 3 1 999.00 0 0 8.4583 0 1 0 7 1 0 1 1 54.00 0 0 51.8625 0 0 1 8 1 0 3 1 2.00 3 1 21.0750 0 0 1 9 1 1 3 0 27.00 0 2 11.1333 0 0 1 10 1 1 2 0 14.00 1 0 30.0708 1 0 0 11 1 1 3 0 4.00 1 1 16.7000 0 0 1
matrix.train2
モデルのテストに使用されるトレーニング データのスライスです。> matrix.train2 (Intercept) pclass sexmale age sibsp parch fare embarkedC embarkedQ embarkedS 1 1 1 1 49.00 1 1 110.8833 1 0 0 2 1 3 1 42.00 0 0 7.6500 0 0 1 3 1 1 0 18.00 1 0 227.5250 1 0 0 4 1 1 1 35.00 0 0 26.2875 0 0 1 5 1 3 0 18.00 0 1 14.4542 1 0 0 6 1 3 1 25.00 0 0 7.7417 0 1 0 7 1 3 1 26.00 1 0 7.8542 0 0 1 8 1 2 1 39.00 0 0 26.0000 0 0 1 9 1 2 0 45.00 0 0 13.5000 0 0 1 10 1 1 1 42.00 0 0 26.2875 0 0 1 11 1 1 0 22.00 0 0 151.5500 0 0 1
2 つのマトリックスの唯一の実際の違いはmatrix.train2
、列が含まれていないことsurvived
です。
実行しようとしているRコードは次のとおりです。
#Build a matrix from training data
matrix.train1 <- model.matrix(
~ survived + pclass + sex + age + sibsp + parch + fare + embarked,
data=train1
)
library(neuralnet)
#Train the neural net
net <- neuralnet(
survived ~ pclass + sexmale + age + sibsp + parch + fare + embarkedC +
embarkedQ + embarkedS, data=matrix.train1, hidden=10, threshold=0.01
)
#Build a matrix from test data
matrix.train2 <- model.matrix(
~ pclass + sex + age + sibsp + parch + fare + embarked,
data=train2
)
#Apply neural net to test matrix
net.results <- compute(
net, matrix.train2
)
Error in neurons[[i]] %*% weights[[i]] : non-conformable arguments
ここで私が間違っていることを誰かに教えてもらえますか?
ありがとう!
これまでのコメントに基づく更新:
「ニューラルネットを使用して新しいデータのクラスを予測する」のソリューションを使用してもうまくいかないようです。
> net.compute <- compute(net, matrix.train2[,1:10]) Error in neurons[[i]] %*% weights[[i]] : non-conformable arguments
そうしないと、次のエラーが発生するため、手動で
train1
データtrain2
フレームをマトリックスに入れています。model.matrix
> Error in neurons[[i]] %*% weights[[i]] : requires numeric/complex matrix/vector arguments
注: を使用している理由の詳細については、次のスレッドを参照してください: "初めて R でニューラルネットを使用するmodel.matrix
: get "requires numeric/complex matrix/vector arguments" but don't know how to correct ".