質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

解決済

1回答

506閲覧

機械学習をさせるほどデータ量がないが判別するために特徴量を見つける方法について

退会済みユーザー

退会済みユーザー

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

0グッド

0クリップ

投稿2019/06/08 08:43

編集2019/06/08 11:07

前提・実現したいこと

機械学習を行うことができるほど大量のデータはない中で、特徴量を見つけ、
新たに与えられるデータを判別できるプログラムを書こうとしています。

データはセンサ5個から3回送られてくるものが1セットです。
新たに与えられるデータも数値が異なるだけで、同様のデータ行列です。

判別したい条件は4つです。
もしどの条件にも合わない場合は、「判別不可」とすることを考えています。

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

こういったデータの場合、どのように分析することで各条件の特徴を見つけて、
新たに与えられるデータを判別できるのか方法がわからず困っています。

機械学習ができないというのは、各状況下で300セットしかデータ量がないです。
また、どんなアルゴリスムを適用するべきかわからないため、ご意見やアドバイスをいただきたいです。

該当のソースコード

判別したい条件別に例として2セット掲載しました。
行列の行は送られてくる1回目、2回目、3回目を表し、
列はセンサ1〜5を表しています。

条件1

[[1.190 0.085 0.021 0.031 0.106] [1.211 0.084 0.022 0.006 0.107] [1.222 0.091 0.022 0.009 0.125]]
[[1.186 0.086 0.026 0.0286 0.105] [1.235 0.095 0.023 0.006 0.109] [1.190 0.089 0.026 0.009 0.114 ]]

条件2

[[1.208 0.087 0.021 0.00941 0.096] [0.927 0.086 0.026 0.009 0.113] [1.264 0.103 0.025 0.007 0.102]]
[[0.924 0.088 0.024 0.009 0.106] [1.190 0.093 0.021 0.006 0.111] [1.234 0.094 0.025 0.006 0.117]]

条件3

[[0.902 0.083 0.366 1.847 1.873] [0.908 0.081 0.373 1.865 1.882] [1.151 0.083 0.310 1.852 1.820]]
[[0.923 0.083 0.324 1.873 1.907] [1.251 0.094 0.326 1.823 1.839] [0.997 0.110 0.328 1.854 1.901]]

条件4

[[1.441 0.093 0.026 0.013 0.115]  [1.331 0.061 0.0230 0.006 0.120]  [1.446 0.123 0.0250 0.006 0.116]]
[[1.326 0.095 0.023 0.007 0.107] [1.329 0.058 0.031 0.006 0.105] [1.442 0.105 0.022 0.007 0.123]]

###考えていること
初歩的ではありますが、パッと見でも条件12と条件3、条件4の3パターンでは
センサ1、3などの値が特徴的なのでそう行った条件でif文で判別するのも手かと考えています。

しかし、もしif文等で判別するとしても、その閾値(例えばifセンサ1の平均値>1.3など)を決めるにあたって、データをどのように分析すればより論理的に判別できるか悩んでいます。

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

Python3.6
jupyter4.2

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

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

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

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

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

guest

回答1

0

ベストアンサー

300件あれば機械学習でもなんとかなる可能性はあります。

私ならロジスティック回帰など過学習しづらい分類器で交差検証をやって性能を確認してみて、望みの精度が得られればそのままそれを使うと思います。特徴量は3*5をflattenして15次元として取り扱えば良いでしょう。

参考までに。

投稿2019/06/08 10:44

hayataka2049

総合スコア30933

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

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

退会済みユーザー

退会済みユーザー

2019/06/08 10:55

ご回答いただきましてありがとうございます。 機械学習についてもあまり詳しくないのですが、「ロジスティック回帰 機械学習」などと検索してみても、どの記事がわかりやすくて今回のデータを実装しやすいのか検討がつきませんでした。 お手数ですが、可能でしたらおすすめの参考サイトなどがあれば掲載いただけますと大変助かります。
hayataka2049

2019/06/08 19:11

ぶっちゃけネット上の記事はそこまで良いものはないですし、特に手持ちのデータに適用させる場合はやる本人が基本的なことを理解していないと難しいです。でも、「ロジスティック回帰 python」とかで検索して出てくるものは一通り目を通しておいてもいいでしょう。 簡単に実装して動かしてみるなら、sklearnの以下の実装を使います。 https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html 最低限の基礎はどのみち抑えておいた方が良いので、ある程度時間をかけて取り組むつもりなら https://www.amazon.co.jp/dp/4295003379/ などがよくまとまっていて勉強向きの書籍です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問