model.frame.default中的错误...变量的无效类型(列表)

时间:2015-01-19 05:18:58

标签: r neural-network linear-regression

我是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))。

我有点难过。

0 个答案:

没有答案