2017-03-13 7 views
0

私は自分のデータでニューラルネットワークの方法を試しています。事実はあるニューラルネットワーク:ニューロン[%]%*%重み[[i]]:数字/複合行列/ベクトル引数が必要

in neurons[[i]] %*% weights[[i]] : requires numeric/complex matrix/vector arguments

::私はオールウェイズメッセージを取得しています

  1. 私は自分のデータの一部を含むファイルへのリンクを追加していread.csv を使って自分のデータを読んでいます、役に立ったら嬉しいです https://www.dropbox.com/s/b1btx0cnhmj229p/collineardata0.4%287.2.2017%29.csv?dl=0
  2. 私のデータにはNAがありません(私は2回チェックしました)
  3. str(data)の結果は:

    'data.frame':20 ob​​sです。 457変数のうちの1つ: $ X300.5_alinine.sulphate:num 0.351 0.542 0.902 0.656 1 ... $ X300.5_bromocresol.green:num 0.435 0.603 0.749 0.314 0.922 ... $ X300.5_bromophenol.blue:num 0.415 0.662 0.863 0.345 0.784 ... $ X300.5_bromothymol.blue:num 0.2365 0.0343 0.4106 0.3867 0.8037 ... $ X300.5_chlorophenol.red:num 0.465 0.1998 0.7786 0.0699 1 ... $ X300.5_cresol.red:num 0.534 0.311 iが

  4. 私は(つまりアイリス)AN異なるデータセットに試みたしたコードを使用model.matrixを行うことを試みている

  5. を続け0.678 0.213 0.821 ...それはよかった。

誰でも私のデータ/データの読書に間違いがないかお試しください。

コードは、あなたのコードで間違って複数のものがあります

require(neuralnet) 
require(MASS) 
require(grid) 

require(nnet) 

#READ IN DATA 
data<-read.table("data.csv", sep=",", dec=".", head=TRUE) 
dim(data) 

# Create Vector of Column Max and Min Values 
maxs <- apply(data[,3:459], 2, max) 
mins <- apply(data[,3:459], 2, min) 

# Use scale() and convert the resulting matrix to a data frame 
scaled.data <- as.data.frame(scale(data[,3:459],center = mins, scale = maxs - mins)) 

# Check out results 
print(head(scaled.data,2)) 

#create formula 
feats <- names(scaled.data) 

# Concatenate strings 
f <- paste(feats,collapse=' + ') 
f <- paste('data$Type ~',f) 

# Convert to formula 
f <- as.formula(f) 

f 

#creating neural net 
nn <- neuralnet(f,model,hidden=c(21,15),linear.output=FALSE) 
str(scaled.data) 

apply(scaled.data,2,function(x) sum(is.na(x))) 
+0

データの再現性の低いサブセットがなければ、言うことは難しいです。あなたはここにいくつか投稿できるあなたの問題を再現する変数の小さなサブセットを試すことができますか? – cdeterman

答えて

0

です。

1.従属変数に複数の要因がありますTypeneuralnetは数値入力のみを受け付けますので、model.matrixでバイナリマトリックスに変換する必要があります。

y <- model.matrix(~ Type + 0, data = data[,1,drop=FALSE]) 

# fix up names for as.formula 
y_feats <- gsub(" |\\+", "", colnames(y)) 
colnames(y) <- y_feats 

scaled.data <- cbind(y, scaled.data) 

# Concatenate strings 
f <- paste(feats,collapse=' + ') 
y_f <- paste(y_feats,collapse=' + ') 
f <- paste(y_f, '~',f) 

# Convert to formula 
f <- as.formula(f) 

2.Youも、とにかくあなたのscaled.dataneuralnet呼び出しに渡しませんでした。

nn <- neuralnet(f,scaled.data,hidden=c(21,15),linear.output=FALSE) 

この機能は今実行されますが、この問題の範囲を超えて、マルチクラスの問題を調べる必要があります。このパッケージはまっすぐな確率を出力しないので、あなたは慎重でなければなりません。

+0

こんにちは、まず私の質問にお答えいただき、ありがとうございます。これは私の質問に私をもたらします。私は経験の浅いプログラマーです。私は化学の学生です。今まではデータを自分で扱うことを試みました。最近私は立ち往生した。時計は刻々と変化しています。私は自分のデータを見るために、新しい目、経験豊かなものが必要です。私は分類の問題に対処しています 私はあなたに何らかの方法で助言できますか?あなたに私のデータと問題を送ってください。 はいの場合は、私に[email protected]で私に連絡することができます – hodayah

関連する問題