我是R的新手,我正在尝试创建一个模型来处理Kaggle的面部关键点检测示例项目。最终的问题是创建任何模型(我使用神经网络项目尝试神经网络,但我也通过lm尝试了更简单的线性模型)不会将图像作为预测器model作为整数列表,但我似乎无法将其转换为建模函数将采用的形式。
我像这样加载数据:
# load.R
library(data.table)
library(dplyr)
library(foreach)
library(doParallel)
cluster <- makeCluster(8)
registerDoParallel(cluster)
# left eye, right eye, mouth
data.train <- data.table(fread('Data/training.csv',
header = TRUE,
stringsAsFactors = FALSE)) %>%
dplyr::select(left_eye_center_x,
left_eye_center_y,
right_eye_center_x,
right_eye_center_y,
mouth_center_top_lip_x,
mouth_center_top_lip_y,
Image)
images <- foreach(image = data.train$Image) %dopar% {
as.integer(unlist(strsplit(image, " ")))
}
stopCluster(cluster)
data.train$img <- images
data.train$Image <- NULL
rm('images', 'cluster')
save(data.train, file = 'Data/cleaned.Rd')
我试图像这样创建模型......
# model.R
library(data.table)
library(neuralnet)
library(caret)
if (!exists('data.train')) {
if (file.exists('Data/cleaned.Rd')) {
load('Data/cleaned.Rd')
} else {
source('load.R')
}
}
model.lex <- lm(left_eye_center_x~img, data = data.train)
我首先尝试的以下内容产生相同的错误
nn.grid <- expand.grid(.decay = c(0, 0.01, 0.1),
.size = c(1:10),
.bag = FALSE)
nn.left.eye.x <- train(left_eye_center_x ~ img,
data = data.train,
method = "neuralnet",
tunegrid = nn.grid,
maxit = 100,
linout = TRUE,
trace = FALSE)
尝试将其转换为其他类型也没有成功(即left_eye_center_x~as.data.frame(img))。
我有点难过。