簡體   English   中英

深度學習,神經網絡

[英]Deep learning, neural network

我有一個關於在分類數據中應用神經網絡的問題。

1-我有一個數字輸出( Connection.Duration

2-我有5個輸入,它們中的4( EVSE.IDUser.IDFeeDay )是分類和1( Time )是數字。

我想應用神經網絡來預測Connection.Duration 我不知道用於分類數據的正確命令。 我使用了model.matrix但沒有繼續使用包含分類數據的新數據框( m )。

我想尋求幫助。

data$Fee <- as.factor(data$Fee)
data$EVSE.ID <- as.factor(data$EVSE.ID)
data$User.ID <- as.factor(data$User.ID)
data$Day <- as.factor(data$Day)
data$Time <- as.factor(data$Time)
data$Connection.Duration <- as.factor(data$Connection.Duration)

m <- model.matrix(Connection.Duration ~ EVSE.ID+Time+Day+Fee+User.ID,
              data= data)

# Neural Networks 
n <- neuralnet(Connection.Duration ~ EVSE.ID+Time+Day+Fee+User.ID,
           data = m,
           hidden=c(100,60))

# Data partition 
set.seed(1234)
ind <- sample(2, nrow(m), replace = TRUE, prob = c(0.7, 0.3))
training <- m[ind==1,1:5]
testing <- m[ind==2,1:5]
trainingtarget <- m[ind==1, 6]
testingtarget <- m[ind==2, 6]

# Normalize
m <- colMeans(training)
s <- apply(training, 2, sd)
training <- scale(training, center = m, scale = s)
testing <- scale(testing, center = m, scale = s)

# Create Model
model <- keras_model_sequential()
model %>%
layer_dense(units = 5, activation = 'relu', input_shape = c(5)) %>%
layer_dense(units = 1)

# Compile
model %>% compile(loss= 'mse',
              optimizer= 'rmsprop',
              metrics='mae')
# Fit model 
mymodel <- model %>%

  fit(training,
      trainingtarget,
      epochs= 100,
      batch_size = 32,
      validation_split = 0.2)

# Evaluate 
model %>% evaluate(testing, testingtarget)
pred <- model %>% predict(testing)
mean(testingtarget- pred^2)
plot(testingtarget, pred)

# Fine-tune Model
model <- keras_model_sequential()
model %>%
layer_dense(units = 100, activation = 'relu', input_shape = c(5)) %>%
 layer_dropout(rate = 0.4) %>%
layer_dense(units = 60, activation = 'relu', input_shape = c(5)) %>%
 layer_dropout(rate = 0.2) %>%
 layer_dense(units = 1)

# Compile
model %>% compile(loss= 'mse',
              optimizer= optimizer_rmsprop(lr=0.0001),
              metrics='mae')

# Fit model
mymodel <- model %>%
  fit(training,
      trainingtarget,
      epochs= 100,
      batch_size = 32,
      validation_split = 0.2)

# Evaluate 
model %>% evaluate(testing, testingtarget)
  pred <- model %>% predict(testing)
  mean(testingtarget- pred^2)
  plot(testingtarget, pred)

您正在尋找的被稱為“一種熱編碼”。 tensorflow / keras中有一些功能可以幫助編碼。

但是否則,我會嘗試先做。 我不會依賴model.matrix因為它不能完全滿足您的需求。

您可以輕松編寫自己的函數,但這是使用mltools軟件包的示例:

library(data.table)
library(mltools)
one_hot(data.table(x = factor(letters), n = 1:26))

注意:它需要data.table而不是data.frame但是您可以來回轉換數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM