2017-02-27 17 views
1

以下のコードを使用してニューラルネットワークを実行しているときに、私はRが新しく、上記のエラーが発生します。 "neuralnet"ステップと次のエラーが表示され、解決できず、他のスレッドのソリューションが同じではないようです(以下のデータを含む完全な出力レポート): "モデルのエラー変数 'TrainingOutput.Y'のタイプ(リスト)が無効です。model.frame.defaultのエラー.....:変数の無効な型(リスト)

私が間違っている(しかし解決策はありません)最初の列のヘッダーはcsvファイル( "..")には含まれていませんが、奇妙な文字が先行していますが、これには影響があるかどうかは疑問です。 提案がありますか?使用されて

コード:

install.packages('neuralnet') # Install neuralnet 
library(neuralnet)    # Load neuralnet 
#Read Output Data from CSV 
TrainingOutput.Y <- read.csv("C:\\data\\OutputData.csv", header = T) 
#Read Input Data from CSV 
TrainingInput.X <- read.csv("C:\\data\\InputData.csv", header = T) 
# Join the columns and coerce to dataframe 
head(TrainingInput.X) 
head(TrainingOutput.Y) 
TrainingSet.XY <- as.data.frame(cbind(TrainingInput.X, TrainingOutput.Y)) 
head(TrainingSet.XY) 
# Train neural network 
net.ILB <- neuralnet(TrainingOutput.Y ~ TrainingInput.X, 
        TrainingSet.XY, 
        hidden = 1, 
        threshold = 0.0001) 

フル出力レポートは、次のとおりです。

library(neuralnet)    # Load neuralnet 
#Read Output Data from CSV 
TrainingOutput.Y <- read.csv("C:\\data\\OutputData.csv", header = T) 
#Read Input Data from CSV 
TrainingInput.X <- read.csv("C:\\data\\InputData.csv", header = T) 
# Join the columns and coerce to dataframe 
head(TrainingInput.X) 
# ï..Poot Scharnier Begrenzer Koppeling geleiders totalitems 
# 1 0.114  0.036  0.036  0.016  0.016  0.443 
# 2 0.025  0.009  0.009  0.008  0.008  0.193 
# 3 0.000  0.016  0.016  0.008  0.008  0.123 
# 4 0.050  0.017  0.017  0.001  0.001  0.359 
# 5 0.070  0.006  0.006  0.004  0.004  0.268 
# 6 0.004  0.008  0.008  0.002  0.002  0.061 
head(TrainingOutput.Y) 
#  ï..Hours 
# 1 0.66783333333 
# 2 0.20643333333 
# 3 0.22733566667 
# 4 0.65986666667 
# 5 0.16406666667 
# 6 0.05576666667 
TrainingSet.XY <- as.data.frame(cbind(TrainingInput.X, TrainingOutput.Y)) 
head(TrainingSet.XY) 
# ï..Poot Scharnier Begrenzer Koppeling geleiders totalitems  ï..Hours 
# 1 0.114  0.036  0.036  0.016  0.016  0.443 0.66783333333 
# 2 0.025  0.009  0.009  0.008  0.008  0.193 0.20643333333 
# 3 0.000  0.016  0.016  0.008  0.008  0.123 0.22733566667 
# 4 0.050  0.017  0.017  0.001  0.001  0.359 0.65986666667 
# 5 0.070  0.006  0.006  0.004  0.004  0.268 0.16406666667 
# 6 0.004  0.008  0.008  0.002  0.002  0.061 0.05576666667 
# Train neural network 
net.ILB <- neuralnet(TrainingOutput.Y ~ TrainingInput.X, 
         TrainingSet.XY, 
         hidden = 1, 
         threshold = 0.0001) 

model.frame.defaultでエラーが発生しました(formula.reverse、データ): 変数 'TrainingOutput.Y'の無効なタイプ(リスト)

答えて

0

あなたは数式にdata.framesを渡すべきではありません。また、変わった名前がどこから来ているのか調べたいと思っています。それは正しいとは思わない。 (たぶん、あなたのCSVは、バイト順マーカーを持っている?エンコーディングが何であるかわからない。)その後、

names(TrainingInput.X)[1]<-"Poot" 
names(TrainingOutput.Y)[1]<-"Hours" 

ととすることはでき「クリーン」名前あなたのニューラルネットのコールは、この

net.ILB <- neuralnet(Hours ~ Poot + Scharnier + Begrenzer + Koppeling + geleiders + totalitems, 
         TrainingSet.XY, 
         hidden = 1, 
         threshold = 0.0001)' 
のようになります。

この式は、TrainingSet.XY data.frameの他のすべての列に基づいてHoursをモデル化することを意味します。

+0

お返事ありがとうございますMrFlick、私はあなたが提案した変更を加えましたが、実際には別のエラーが発生しました。式中: – Coolraine

+0

結果:>#電車ニューラルネットワーク > net.ILB < - neuralnet(。時間〜、 + TrainingSet.XY、 +隠された= 1、 +しきい値= 0.0001)terms.formulaで エラー(数式): '。'数式に 'data'引数はありません – Coolraine

+0

@Coole OK。私は自分の答えを更新しました。何らかの理由で、 'neuralnet'関数は他のほとんどのモデリング関数のように' .'構文をサポートしていません。すべての列をリストする必要があります。あなたは 'reformulate(名前(TrainingInput.X)、名前(TrainingInput.Y))'を使ってあなたのための数式を構築することもできます。 – MrFlick

関連する問題