今、X軸加速度がプラスのとき右への加速、マイナスのとき左への加速とします。このとき、ある単位時間当たりに左右に同じくらい加速していれば、その平均値は0となりますね。従って、特徴量の一つである平均値は、符号により左右の加速を打ち消し合う場合があります。これを一つの特徴として表すことも当然ありです。このような打ち消し合いがされない特徴量を欲しい場合もあるでしょう。これを実現する特徴量に、二乗平均平方根があります。Squareとなり、工学の分野ではRMSとよく呼ばれます。acc}(t)^2},$で定義されます。他の軸も同様の式で算出可能です。ある時間$t$の信号を二乗することで、すべてプラス方向に信号が整理されます。その後、平方根を取ることで、二乗され見かけ上値が大きくなってしまった部分がキャンセルされます。最後に、その平均値を算出しています。RMSとは、左右の向きを気にせずに、左右両者の方向においてその全体の加速の大きさを表す特徴になります。上下方向の軸であれば、上下両方においてその全体の加速の大きさを表します。動的特徴量とは、その信号は右肩上がりか、右肩下がりかを表現する特徴量です。b$として推定する線形回帰モデルを考えます。ここで$a$は傾きを表すパラメータ、$b$は信号のバイアス成分を表すパラメータとなります。acc}(t)'$が最小となる値が採用されます。その信号は、右肩上がりでも右肩下がりでもない。その信号は、右肩上がりである。その信号は、右肩下がりである。$a$の絶対値が大きいほど、上がり/下がりが急激であることを意味しています。以下はX軸加速度の時刻50から時刻80の信号をプロットしたものです。0])plt.xlabel("t")plt.ylabel("Acceleration")plt.title("Xacc")plt.show()これを見ると、信号が右肩下がりであることがわかります。いうことは、動的特徴量はマイナスの値となるはずです。本当にそうなるか、確認してみます。171.877動的特徴量は-18となりました(切片bは参考のため出しました。気にしなくてokです)。マイナスなので、動的特徴量は「右肩下がりの信号だ」と主張しています。これがわかったところで、動的特徴量を算出する関数を定義して、実際に7チャンネル分の特徴量を抽出してみます。0.087このように、7チャンネル慣性センサデータの動的特徴量を算出できました。今回、約5秒分の信号に対して、動的特徴量を算出しました。動的特徴量はほぼ0付近ですので、約5秒間を総合的に解釈して、右肩上がり、右肩下がりの傾向がないということになります。先ほど、X軸加速度で動的特徴量がマイナスになりましたが、あれは50番目から79番目、サンプリング周波数が100Hzですから、測定開始してから0.5秒〜0.79秒の間、0.3秒間分の信号を対象にしたからです。0.3秒間という小さい視点で見れば、X軸加速度は右肩下がりの部分もありますが、約5秒分を一気に対象にすると、そうでもない、ということになります。9個の特徴量について説明しました。7チャンネル慣性センサデータの1チャンネル毎に9個の特徴量が得られるので、1回の観測に対し、合計63個の特徴量が抽出されたことになります。この63個の特徴を元に、いろいろな解析をしていくわけです。人工知能あるいは人間は、複雑な情報を複雑なまま理解することは苦手です。3171$個の数字で構成されています。このような莫大な数字の集まりを、今回の特徴量変換により、63個にまで圧縮することができました。3171次元のベクトルが63次元まで低次元化されたとみなすことも可能です。情報の複雑さは激減しました。一つ一つの数字も物理的な意味を保持しています(X軸加速度は右肩上がりだとか、Z軸加速度のばらつきは大きいだとか)。そのため、信号が有する物理的な状況をたいへん考えやすくなります。これらの特徴量を人工知能に入力し、センサが装着された機械が壊れているだとか、センサが装着された人間はかなりいい腕立て伏せをしていただとか、判断させることができるかもしれないわけです。不調の機械と良好な機械に慣性センサを接続し、特徴量を算出します。その特徴量を不調-良好の2群に振り分け、t検定などで有意差を算出してはどうでしょうか。X軸加速度の分散に有意差が生じていれば、その特徴が、不調-良好の識別にたいへん有効、と判断することもできます。以上のように、信号を特徴量に変換することで、いろいろな可能性が見えてきます。