Gab*_*chi 13 r machine-learning dataframe xgboost
我在使用R中的XGBoost时遇到问题.我正在使用我的数据读取CSV文件:
get_data = function()
{
#Loading Data
path = "dados_eye.csv"
data = read.csv(path)
#Dividing into two groups
train_porcentage = 0.05
train_lines = nrow(data)*train_porcentage
train = data[1:train_lines,]
test = data[train_lines:nrow(data),]
rownames(train) = c(1:nrow(train))
rownames(test) = c(1:nrow(test))
return (list("test" = test, "train" = train))
}
Run Code Online (Sandbox Code Playgroud)
这个函数叫做main.R
lista_dados = get_data()
#machine = train_svm(lista_dados$train)
#machine = train_rf(lista_dados$train)
machine = train_xgt(lista_dados$train)
Run Code Online (Sandbox Code Playgroud)
问题在于train_xgt
train_xgt = function(train_data)
{
data_train = data.frame(train_data[,1:14])
label_train = data.frame(factor(train_data[,15]))
print(is.data.frame(data_train))
print(is.data.frame(label_train))
dtrain = xgb.DMatrix(data_train, label=label_train)
machine = xgboost(dtrain, num_class = 4 ,max.depth = 2,
eta = 1, nround = 2,nthread = 2,
objective = "binary:logistic")
return (machine)
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
becchi @ ubuntu:〜/ Documents/EEG_DATA/Dados_Eye $ Rscript main.R
[1]是的
[1]是的
xgb.DMatrix中的错误(data_train,label = label_train):
xgb.DMatrix:不支持从列表构造调用:train_xgt - > xgb.DMatrix执行暂停becchi @ ubuntu:〜/ Documents/EEG_DATA/Dados_Eye $
如您所见,它们都是DataFrame.
我不知道我做错了什么,请帮忙!