nnet
ライブラリを使用してトレーニング データから多項ロジスティック回帰モデルを作成し、それを使用してテスト データを予測できるかどうかを確認しようとしています。
このスクリプトを使用して、R ですべてをセットアップします。
library(nnet)
folder <- "C:/***/"
trainingfile <- "training-set.txt"
testfile <- "test-set.txt"
train <- read.table(paste(folder, trainingfile, sep=''), sep=",", header=FALSE)
train.classes <- t(train[1:1])
train.data <- train[2:16]
test <- read.table(paste(folder, testfile, sep=''), sep=",", header=FALSE)
test.classes <- t(test[1:1])
test.data <- test[2:16]
train.model <- multinom(V1 ~ ., train, maxit=450) #converges after roughly 430 iterations
これはすべてうまく機能し、関数multinom
は収束を報告します。
モデルを使用して予測し、使用するテスト データを分類するには:
predictions <- predict(train.model, test.data)
ただし、エラーが発生しますError in eval(expr, envir, enclos) : object 'V17' not found
。しかし、調べるtrain.model
と、実際に「V17」というオブジェクトがあることがわかります
> train.model
Call:
multinom(formula = V1 ~ ., data = train, maxit = 450)
Coefficients:
(Intercept) V2
B -12.9514837 1.0668464
C -48.1154774 1.6160071
D -2.2901219 1.0062945
E -39.4371326 0.6848848
F -20.6759707 0.8613838
G -21.4471217 1.2858480
H -17.4302527 0.8102932
I -4.7391825 1.3124087
J -12.3513130 1.1404751
K -13.9557738 0.7574471
L -0.4915034 0.7191369
M -14.0855382 0.8888810
N -0.4372225 0.6041747
O -18.2596753 1.2708861
P -9.8504326 1.2672870
Q -20.9940977 1.8104502
R -5.8030089 0.8677690
S -12.9944084 0.8097735
T -32.5636344 1.8977861
U -9.1752184 1.6059663
V -13.5695897 1.4547335
W -6.2590220 1.1292715
X -4.5939135 0.7603754
Y -15.6763068 1.6498374
Z -37.1840564 0.7382329
*SNIP*
V17
1.63319426
1.93093207
0.80392847
1.79189803
1.32248565
1.72440154
1.22022835
1.03014847
0.20977345
2.40335443
1.17253978
0.65072776
0.46675729
1.16579165
1.50787334
1.41267773
1.71666099
0.72543894
0.64857852
0.32401569
1.33290027
0.83846524
1.02863203
-0.05005955
0.13792242
Residual Deviance: 26196.1
AIC: 27046.1
これは非常に奇妙です。エラーが発生する理由がわかりません。とにかく、より多くのデータを取得するために電話をかけてみsummary(train.model)
ましたが、R が完全にハングアップします。R 2.15.2 (最新の安定バージョン) の 32b バージョンと 64b バージョンの両方を試しましたが、結果は同じです。エラー/ハングを解決する方法と、によって作成されたモデルを使用して正しく予測する方法を知っている人はいますmultinom
か?