回答編集履歴
6
append answer
test
CHANGED
@@ -129,3 +129,5 @@
|
|
129
129
|
機械学習をやるとはいえ,前処理や学習,評価にあたって書くプログラムはほとんど配列操作に関するものになります.配列の扱いに慣れておくことをおすすめします.
|
130
130
|
|
131
131
|
特に前処理なんて扱うデータが変われば書くコードも変わります.時系列データの前処理と画像処理の前処理,構造データの前処理や自然言語の前処理など色んな種類がある中で,自分の持っているデータの前処理を完璧にこなせるコードはこの世に無いと思ってプログラミングに取り組んでください.
|
132
|
+
|
133
|
+
あまりコードを書かれたことの無いようでしたので方針を示すためコードを全て書きましたが,前処理程度はPythonの基礎を押さえていれば書けるはずです.今後の研究進捗効率のためにも急がば回れ,プログラミング基礎の勉強を推奨しておきます.
|
5
fix answer
test
CHANGED
@@ -124,7 +124,7 @@
|
|
124
124
|
def load_csv(file, y_value):
|
125
125
|
return [pd.read_csv(file).values[:, :3]], [y_value]
|
126
126
|
```
|
127
|
-
ただこの場合だと,ファイル次第でデータ長が違う現状には適応できていないので,適宜データの長さを揃えるような処理を書き加えてください.
|
127
|
+
ただこの場合だと,ファイル次第でデータ長が違う現状には適応できていないので,適宜データの長さを揃えるような処理を書き加えてください.「同じ計測期間で複数のファイルを作成」されて長さが揃ってるなら不要です.
|
128
128
|
|
129
129
|
機械学習をやるとはいえ,前処理や学習,評価にあたって書くプログラムはほとんど配列操作に関するものになります.配列の扱いに慣れておくことをおすすめします.
|
130
130
|
|
4
fix answer
test
CHANGED
@@ -127,3 +127,5 @@
|
|
127
127
|
ただこの場合だと,ファイル次第でデータ長が違う現状には適応できていないので,適宜データの長さを揃えるような処理を書き加えてください.
|
128
128
|
|
129
129
|
機械学習をやるとはいえ,前処理や学習,評価にあたって書くプログラムはほとんど配列操作に関するものになります.配列の扱いに慣れておくことをおすすめします.
|
130
|
+
|
131
|
+
特に前処理なんて扱うデータが変われば書くコードも変わります.時系列データの前処理と画像処理の前処理,構造データの前処理や自然言語の前処理など色んな種類がある中で,自分の持っているデータの前処理を完璧にこなせるコードはこの世に無いと思ってプログラミングに取り組んでください.
|
3
Final answer
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
可能です.こちらでは質問のデータを持ち合わせていないので,同様のデータ生成を行なって最終的な評価までのコードを書いてみました.
|
4
4
|
|
5
|
-
全てのCSVファイルが同じ行数であることを前提に書いています.
|
5
|
+
全てのCSVファイルが同じ行数であることを前提に書いています.変数`roll`に全てのCSVファイルのうち1番小さい行数未満の値を代入すればなんでも良いです.そのときは全てのCSVファイルのサイズは同じでなくて構いません.130~240ぐらいとのことだったので,カーブの時間全体を覆えるデータ長を目視で確認して129以下の値を代入することが出来ます.
|
6
6
|
|
7
7
|
```Python
|
8
8
|
import numpy as np
|
@@ -124,3 +124,6 @@
|
|
124
124
|
def load_csv(file, y_value):
|
125
125
|
return [pd.read_csv(file).values[:, :3]], [y_value]
|
126
126
|
```
|
127
|
+
ただこの場合だと,ファイル次第でデータ長が違う現状には適応できていないので,適宜データの長さを揃えるような処理を書き加えてください.
|
128
|
+
|
129
|
+
機械学習をやるとはいえ,前処理や学習,評価にあたって書くプログラムはほとんど配列操作に関するものになります.配列の扱いに慣れておくことをおすすめします.
|
2
fix kernel_size
test
CHANGED
@@ -81,8 +81,9 @@
|
|
81
81
|
# 学習モデルを作成
|
82
82
|
model = Sequential()
|
83
83
|
model.add(Input(shape = x_train.shape[1:]))
|
84
|
-
model.add(Conv1D(8,
|
84
|
+
model.add(Conv1D(8, 4, strides = 2, activation = "tanh"))
|
85
|
-
model.add(Conv1D(4,
|
85
|
+
model.add(Conv1D(4, 4, strides = 2, activation = "tanh"))
|
86
|
+
model.add(Conv1D(2, 4, strides = 2, activation = "tanh"))
|
86
87
|
model.add(Flatten())
|
87
88
|
model.add(Dense(1, activation = "sigmoid"))
|
88
89
|
|
1
append answer
test
CHANGED
@@ -115,3 +115,11 @@
|
|
115
115
|
今回は,ある時刻の特徴量がxyzの3特長あるので1次元畳み込みを採用してみました(LSTMでも良い)が,もし合成加速度だけを使うならRandomForestも使えると思います.
|
116
116
|
|
117
117
|
上のコードでは,[時系列データ分析の処理でやってはいけないこと](https://qiita.com/TomokIshii/items/ac7bde63f2c0e0de47b3)を念頭に,学習データに評価データが混じらないようにしています.注意して実装なさってください.
|
118
|
+
|
119
|
+
> これは、一つのファイルにx、y、z軸のデータを作って同じ計測期間で複数のファイルをcurve1,curve2,curve3,straight1,straight2,straight3………のように作成し、その複数のファイルを同時に学習させるというイメージでよろしいでしょうか…?
|
120
|
+
|
121
|
+
はい,それで間違い無いです.その場合は上のコードにおける`load_csv()`を次のようにできます.
|
122
|
+
```Python
|
123
|
+
def load_csv(file, y_value):
|
124
|
+
return [pd.read_csv(file).values[:, :3]], [y_value]
|
125
|
+
```
|