アプリ版:「スタンプのみでお礼する」機能のリリースについて

以前類似した概念で質問しましたが、一部考え方が変わりましたので、再度質問させていただきます。お許しください。

N=8000ほどの母集団が存在し、50ほどのグループに分かれています。
そしてN=8000に対して30000種類ほどの特徴の有無が0, 1表記されています。
例えば、以下の具合です。

特徴1 特徴2 特徴3 ・・・・・ 特徴30000まで
00001 1 0 0
00002 0 0 0
00003 0 1 0
00004 1 0 1
00005 0 1 1
00006 1 1 1
~N=8000まで

更に00001~00203番まではグループA、00204~00303まではグループB
といった具合で、特徴1-3000にはないある決定的な要因でグループわけがされています。
人種に例えていただくとわかりやすいかと思いますが、グループAがアメリカ、Bが日本で、00001などが個人個人、特徴が身長・目の色などと考えていただくといいと思います。
特徴1と2にはまずは相関関係は全くないと想定して話を進めます。

やりたいとこととしては、
①新しい8001が入ってきたときにどのグループに配属されるかを決定すること(できれば確率も出したいです。例えばグループAの確率が30%、グループBは5%など)。
②特徴が30000種類ありますが、この中でグループ配属に関わる特徴のみを抽出したいと考えています。

どのような検定・解析方法が考えられますでしょうか?
御教示いただけると大変助かります。

A 回答 (3件)

私も統計学は無知なのですが・・・



こういった複数の特徴の組み合わせからカテゴリ分けする方法でキモになるのは、コーディング(特徴の表現の仕方)と評価関数の2点です。御質問の例では、コーディングはグループ内の共通の特徴の抽出方法、評価関数はその比較の仕方になると思います。20年ほど前、患者の症状や検査の値から病名を推定する、といった研究がありましたが、それに似ていますね。

例えば、コーディングにはより多くのメンバが属する特徴の抽出、評価関数に正規化したハミング距離といった方法を考えます。

まずは2に関して、各グループで全特徴の平均を求めるというところはNo.2の回答と同じです。通常は完全一致ということは珍しいため、中間の値を閾値で切り、don't careにするということをします。例えば、0.05~0.95とか0.2~0.8はどちらともいえない、という風にみなすのです。これによって各グループの特徴を定義します。

その上で、1については各グループに対してdon't careを除く各特徴だけを見たハミング距離(ただしグループごとに見る特徴の数が違うので正規化する必要あり)から、そのグループらしさを見つけ出す、といった感じだと思います。

サンプル値を増やし、かつサンプルの正解がわかっている(教師入力になりうる)のであれば、機械学習によって中間値の閾値やグループ所属確率を決定付ける関数のパラメータを調整することもできると思います。
    • good
    • 0

私も、統計は全く分からないのですが、、、



特徴はすべて0か1で表現されており、母集団にはすべてのグループが含まれている(新しいグループが発生する可能性がな)と考えるなら、各グループごとにすべての特徴についての平均を求め、それが0と1のもののみを抜き出し、すべてのグループについて比較を行えば②を行えると思います。

①の新しいサンプルについては結構難しいですね。 ②で行った特性にマッチするリストを作り上げ、複数発生した場合はその中から一つを選びださなくてはいけないことになりますが、②の特性というものの特徴番号が同じではないのでどのように確率で表現できるのかが、私には思いつきません。 まあ、30000特徴あるなら、複数発生しない可能性のほうが高いかもしれないですが、元のデータの特徴の偏り方によっては何でもありでしょうから、何とも言えません。

遺伝子系の統計分析などの手法の出版物や論文をあたると、ヒントがあるかもしれません。
    • good
    • 0

当方、統計はまったく判りません。



>50ほどのグループ
これは、前半25のグループに含まれてるか?の分類で分けるのでは?

前半25なら1、後半25なら0
さらに最初の12のグループに入るか?
最初の12なら1、次の12(13)なら0、その次の12なら1、最後の12(13)なら0

って、特徴に入れていくのでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!