機械学習による連続データのクラス分類について勉強しております。
リスト内から順にカウントしていき、同一データをまとまったデータとして取り出す方法について考えているのですが、方法論が思いつかないため困っております。
python
1 2 3#modelのclass予測が以下だった場合 4#クラス分類0-5の6分類とすると以下のように予測クラスをリスト内に格納するとする。 5 6predicted_data=[0,0,0,0,1,0,2,2,2,2,3,2,4,4,4,4,2,1,4,5,5,5,5,2] 7 8#このpredicted_dataから以下のデータとして取り出したい 9#リスト内に格納されたデータから1つめから順々に認識させて、0,0,0,0,1,0を取り出し、1は予測の誤りであるとすると、それを除いたデータを抽出したい。以下のようなデータとして 10data1=[0,0,0,0,0] 11 12#同様に次は、2,2,2,2,3,2というまとまりを抽出して、3を取り除いたデータを取り出したい。 13 14data2=[2,2,2,2,2] 15#上記のようにデータを取り出したい。
上記のようなリストデータを取り出したい場合、なにかいい方法論はございますでしょうか。
n-gramのような手法で何個かに分けて取り出そうとも考えたのですが、方法論としていい方法が思いつかず困っております。何かアドバイスをいただけたら幸いです。
よろしくお願いします。
> 0,0,0,0,1,0を取り出し、1は予測の誤りであるとすると
どうして 0,0,0,0,1,0 を取り出したのか?
どうして 1は予測の誤りであるとしたのか?
を説明いただけるといいかと思います。
quiqui様、ありがとうございます。
センサー習得からの動作認識に取り組んでおります。動作のような連続データを習得し続け、それをmodel.predict()でクラス分類していくとどうしても0,0,0,0,1,0のように大まかには0と習得したいデータリストが出力されています。
このような場合にKenji.Noguchi様が教えてくださったgroupbyのような手法で取り出して行く方法を導入することが学習モデルの後に取り入れる手法として正しいかはわかりませんが有用であると考えてはおります。
predictの類似度の出力を用いる方法もあるのかと調べたりしていますが、適切なやり方がみつからないでおります。このような連続したデータにおけるpredictの手法についてはなにかいい方法論がありますでしょうか。
"誤り"という言い方は間違いですね。誤りではなく、それらのpredictの予測データが混在したデータからデータのまとりまりとして捉えていきたいという言い方が正しいと思われます。失礼致しました。
つまり「予測した」データ列から「こうだったのだろう」列を作りたいのであって、「正解はわからない」状態と考えていいのでしょうか。
例えば、0,0,0,0,1,0 は [0, 0, 0, 0] [1, 1] の最後を間違えたとは「考えない理由」はなんでしょうか?
動作推定の分類手法が正しくないのかもしれないですが、秒単位で分類器などに入れるとどうしても大まかにこういう動作なんだろうというデータ出力がされています。ウインドウサイズのsecを小さくしていけばいくほど、その数が増えている状況でして。これは分類器の精度の問題であるといえばそうかもしれません。うまい例えばではないかもしれませんが、ランニングしている途中で少し歩いたり止まったりした部分があったとしても大まかにこの範囲は走っていると分類させたいということであります。大まかな動作が認識できれば動作の順序などを大きな範囲で取得できるのではないかと考えています。
例えば 2,2,2,3,4,4の列に対して、好ましい正解なのか、[2,2,2,2] [4,4]が好ましいのか、[2,2,2][4,4,4]が好ましいのか、などはどうでしょうか?
(最大長の最大を望むのか、長さの分散が小さいことを望むのか)
# 行き違いました
動作が対象になっておりますので、動作の時間:長さが異なっておりますので長さはある程度の自由度があるほうがいいとは考えております。
なるほど、最大長の設定して、そのなかで分散表現、分布として大まかな類推をするということでしょうか。
回答2件
あなたの回答
tips
プレビュー