3

私は機械学習に非常に慣れておらず、 Kaggleで森林被覆予測コンテストを試みていますが、かなり早い段階でハングアップしています。以下のコードを実行すると、次のエラーが発生します。

train.default(x, y, weights = w, ...) のエラー:
最終調整パラメータを決定できませんでした
さらに: 50 件以上の警告がありました (最初の 50 件を表示するには warnings() を使用します)。
# Load the libraries
library(ggplot2); library(caret); library(AppliedPredictiveModeling)
library(pROC)
library(Amelia)

set.seed(1234)

# Load the forest cover dataset from the csv file
rawdata <- read.csv("train.csv",stringsAsFactors = F)
#this data won't be used in model evaluation. It will only be used for the submission.
test <- read.csv("test.csv",stringsAsFactors = F)

########################
### DATA PREPARATION ###
########################

#create a training and test set for building and evaluating the model
samples <- createDataPartition(rawdata$Cover_Type, p = 0.5,list = FALSE)
data.train <- rawdata[samples, ]
data.test <- rawdata[-samples, ]

model1 <- train(as.factor(Cover_Type) ~ Elevation + Aspect + Slope + Horizontal_Distance_To_Hydrology, 
                data = data.train, 
                method = "rf", prox = "TRUE")
4

2 に答える 2

8

以下が機能するはずです。

model1 <- train(as.factor(Cover_Type) ~ Elevation + Aspect + Slope + Horizontal_Distance_To_Hydrology,
                          data = data.train,
                          method = "rf", tuneGrid = data.frame(mtry = 3))

tuneGrid可能な調整値を持つデータフレームであるパラメーターを指定することは常に良いことです。?randomForest詳細については、 とを参照してください?train。には、各ツリーで選択される機能の数を制御するrf調整パラメーターが 1 つだけあります。mtry

modelLookup実行して、各モデルの調整パラメーターのリストを取得することもできます

> modelLookup("rf")
#  model parameter                         label forReg forClass probModel
#1    rf      mtry #Randomly Selected Predictors   TRUE     TRUE      TRUE
于 2014-12-29T06:13:53.447 に答える
4

私も Kaggle コンペティションを行っており、'caret' パッケージを使用して「最適な」モデル パラメータの選択を支援しています。これらのエラーの多くを取得した後、舞台裏のスクリプトを調べたところ、存在しない「class2ind」という関数への呼び出しが見つかりました (少なくとも、私が知っている場所にはどこにもありません)。最後に、「nnet」パッケージにある「class.ind」という別の関数を見つけました。「class2ind」というローカル関数を作成して、「class.ind」関数からコードを挿入することにしました。そして低く、見よ、それは働いた!

# fix for caret
class2ind <- function(cl)
{
        n <- length(cl)
        cl <- as.factor(cl)
        x <- matrix(0, n, length(levels(cl)) )
        x[(1:n) + n*(unclass(cl)-1)] <- 1
        dimnames(x) <- list(names(cl), levels(cl))
        x
}
于 2015-03-29T22:36:01.677 に答える