🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

1454閲覧

pandasの行形式での認識ができない

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2019/10/31 05:52

前提・実現したいこと

300行×500列程度でまとめられているcsvから300行×357列を説明変数として抽出し、1列を目的変数としたニューラルネットワークを構築したいです。(データは入力1列×357行で、データ数300という意味です。)

発生している問題・エラーメッセージ

Traceback (most recent call last): File "/home/deepstation/PycharmProjects/FP-f/FP-f-linear-E1000-191031.py", line 164, in <module> validation_data = (X_validation, Y_validation)) File "/home/deepstation/PycharmProjects/untitled/venv/lib/python3.4/site-packages/keras/engine/training.py", line 1089, in fit batch_size=batch_size) File "/home/deepstation/PycharmProjects/untitled/venv/lib/python3.4/site-packages/keras/engine/training.py", line 676, in _standardize_user_data 'You passed: x=' + str(x)) ValueError: Please provide as model inputs either a single array or a list of arrays. You passed: x= C1_1 C1_2 C1_3 C1_4 C1_5 C1_6 C1_7 \ 148 0.438596 1.331228 2.122105 2.622105 2.685614 2.496491 2.689123 201 0.127273 1.336727 3.918545 5.188727 5.730182 5.492727 5.461091 42 0.000000 0.082857 0.171429 0.641224 1.286531 2.179592 2.991020 .. ... ... ... ... ... ... ... 103 0.424242 0.351818 0.736970 2.262121 3.536364 3.795455 3.435758 266 0.145455 0.676364 1.847273 3.076364 4.167273 4.181818 4.345455 44 0.142857 0.130612 0.122449 0.318367 0.975510 1.775510 2.706122 181 0.000000 0.173333 0.609412 1.122353 1.705882 2.258824 2.283922 C7_45 C7_46 C7_47 C7_48 C7_49 C7_50 C7_51 148 5.844211 5.589474 4.260351 2.949825 1.710877 0.666667 0.000000 201 3.413091 2.803636 2.093091 1.345818 0.674182 0.241091 0.145455 42 0.142857 0.014286 0.122449 0.122449 0.019592 0.122449 0.142857 178 11.686452 11.250000 10.036129 6.688710 3.902581 1.641935 0.290323 165 0.600678 0.284746 0.237288 0.237288 0.251525 0.227458 0.220339 [244 rows x 357 columns]

該当のソースコード

p

1 2#データの生成 3df = pd.read_csv('f-fpressure.csv', sep=",", header=0) 4 5train_size = 0.9 6N_validation = 0.1 7 8X = DataFrame(df.loc[:, 'C1_1':'C7_51']) 9 10Y = DataFrame(df["F_history"]) 11 12 13X_train, X_test, Y_train, Y_test = \ 14 train_test_split(X, Y, train_size=0.9) 15X_train, X_validation, Y_train, Y_validation = \ 16 train_test_split(X_train, Y_train, test_size=0.1) 17 18#モデル設定 19 20n_in = 357 21n_hidden = 200 22n_out = 1 23p_keep = 0.5 24activation = 'linear' 25alpha = 0.01 26lynum = '3' 27outact = 'softmax' 28 29model = Sequential() 30 31model.add(Dense(n_hidden)) 32model.add(Activation(activation)) 33model.add(Dropout(p_keep)) 34 35model.add(Dense(n_out)) 36model.add(Activation('softmax')) 37 38model.compile(loss='categorical_crossentropy', 39 optimizer=SGD(lr=0.01, momentum=0.9), 40 metrics=['accuracy']) 41 42#モデル学習 43batch_size = 200 44hist_acc_t = hist_acc_v = hist_loss_t = hist_loss_v = [] 45max_epochs = 1000 46 47ep_learn_interval = 50 48 49hist = model.fit(X_train, Y_train, batch_size=batch_size, 50 epochs = max_epochs, 51 validation_data = (X_validation, Y_validation)) 52 53hist_acc_t = hist_acc_t + hist.history['acc'] 54hist_acc_v = hist_acc_v + hist.history['val_acc'] 55hist_loss_t = hist_loss_t + hist.history['loss'] 56hist_loss_v = hist_loss_v + hist.history['val_loss'] 57 58#学習の進み具合を可視化 59 60index = ['acc_t', 'acc_v', 'loss_t', 'loss_v'] 61l = np.array([hist_acc_t, hist_acc_v, hist_loss_t, hist_loss_v]) 62csv = os.path.join(modellog, project_name) 63np.savetxt(csv + '.csv', l1, delimiter=",", fmt = '%3f') 64

試したこと

おそらくデータが300*357列の1個の入力として認識されているのかな?と思いました。以前csvのファイルの余分な情報を消去してX = DataFrame(data.drop("F_history", axis=1)) としたときはうまく行きましたが、今回この実験後に新たな因子を含めて再計算する可能性があるため、元のcsvを改変しないようにしたいです。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2019/10/31 11:27

機械学習のライブラリは何を使用されていますか?
退会済みユーザー

退会済みユーザー

2019/11/01 04:05

kerasを利用しています。
guest

回答1

0

ベストアンサー

Kerasドキュメントによるとxはnumpy配列が良いようです。
Pandas DataFrameをvalues()で変換してみてはいかがでしょうか?

x: Input data. It could be:

A Numpy array (or array-like), or a list of arrays (in case the model has multiple inputs).
A dict mapping input names to the corresponding array/tensors, if the model has named inputs.
A generator or keras.utils.Sequence returning (inputs, targets) or (inputs, targets, sample weights).
None (default) if feeding from framework-native tensors (e.g. TensorFlow data tensors).

投稿2019/11/01 10:56

meg_

総合スコア10736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問