ncworking
@ncworking

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

欠損値の処理(日本酒のスペック非公開について)

解決したいこと

好みの日本酒のスペック(精米歩合・日本酒度・酸度etc...)を入力してもらうことで、好みかもしれない日本酒の候補を提示するアプリを作りたいと思っています。
現状の自分の技術では、一足飛びにはできないと思うので、まずは手元にあるスペックデータから、クラスタリングをする所までやりたいと思っています。

ただ、日本酒のスペックには非公開にしている部分もあり、それが珍しいことではないので、欠損値の扱いに困っています。スペック非公開の基準や理由は調べてみましたが、明確な理由は今の所見つかっていませんが、先入観を持たずに飲んでほしいという理由が有力だと思われます。

検討していること

あまりにも欠損値の多い日本酒については今回は除外しようと考えています。
欠損値の多い特徴量の削除は重要な情報をなくしてしまいそうなので考えていません。補完については辛口か甘口か、芳醇か淡麗かの情報があれば、+か-かの判断はできますが、それ以上は難しそうだと考えています。
また、先入観を持たずに飲んでほしいという理由を考慮すると、補完すること自体が難しいような気がします。
今一番有効だと考えているのは、非公開は非公開でそういったカテゴリを作ってしまうことです。

聞きたいこと

日本酒に詳しい方や、同じような性質をもった欠損値の扱いをしたことのある方がいらっしゃいましたら、ご意見やご提案を頂けませんでしょうか。
過去にこの手の分析を行った方の欠損値の扱い方も調べている所ですが、いかんせん初心者なもので、検索ワードや欠損値の扱いについてどこに記述されているのかを探すのも一苦労でして、自力での検索と並行して質問させていただきたいです。

分析で扱う言語はPythonです。

よろしくお願いいたします。

0

3Answer

データ分析の経験がありますので、その立場からのアドバイスになります。
欠損値であること自体が情報になります。
(選択肢にないような味、大企業だと情報があっても公開しない、
老舗の職人気質のところはデータを出さない等)
程度にもよりますが検討されているように欠損値というカテゴリでとして扱うことをお勧めします。
この場合、分類などのモデルには線形モデルやニューラルネットワークは使いづらいので、ランダムフォレストやLightGBMのようなツリー系の手法を検討してみてください。

1Like

Comments

  1. @ncworking

    Questioner

    ご回答ありがとうございます。
    欠損値の扱いのみならず、分析の手法の詳しいアドバイスまでありがとうございます。少し先にはなると思いますが、やってみようと思います。

Comments

  1. @ncworking

    Questioner

    ご回答ありがとうございます。
    このような選び方の基準のようなものを記載したサイトは結構あるのです……そして作りたいアプリについても、「気分」「好み」等で選択肢を提示するアプリが実際に酒屋さん・居酒屋さんで使われているんです。
    そのうえで、何か物足りなさを感じており、自分のそのモヤモヤ感を解消できないかと思った次第です。

    • 情報の入力でリコメンドしてもらえる手軽さ
    • ラベル情報の入力というのは一見すると面倒臭いが、リコメンドの正確性(特に日本酒への興味が強め(専門家レベル付近までいかない)の人への)が上がるのでは?
    • その正確性を考えると、私としては面倒くさいよりも便利さが勝る

    等と考えておりまして。
    非公開にするのがどの部分なのかも、蔵や酒の種類にもよりけりでして。
    非公開であることを含めて(わくわく感もある)重要な情報ではあるけれど、欠損値になってしまうというジレンマと言いましょうか……

    日本酒の情報や、現時点であるアプリ等、あとは技術的な部分(意外と欠損値以外で解決する可能性もあるかもしれないので)を引き続き調べつつ模索してみます。

    初心者の拙い質問へのご回答ありがとうございます。
    また何か情報がありましたらよろしくお願いします。

  2. @ncworking

    Questioner

    情報ありがとうございます。
    なるほど、栄養成分データベースですか!
    今回の目的とは少しずれますが、ラベルにあるデータ以上(平均値か何かだとは思いますが)の情報もあるので、これを元に(併せて?)分析や分類、好みの類推もできるかもしれないですね。

    こんなにたくさんのデータを扱えるかと言われると、技術が追い付いていない気しかしないのですが、むしろできたら面白そうだなと学習のモチベーションになりました。
    ありがとうございます。

残念ながらRでの本ですが考え方は同じなので参考になると思います。
欠測データ処理: Rによる単一代入法と多重代入法 (統計学One Point 5)
この本が和書で分かりやすく、正確な内容だと思います。

欠測、欠損がある場合は真の結果はわからないのでいずれにしろ歪んだ結果になる
ただその歪みをできるだけ小さくしよう、という発想で挑むしかないです

あまりにも欠損値の多い日本酒については今回は除外しようと考えています。
上記の本にもありますが、これは結構やられる方法ですが結果を歪めます。
ご自身も@keiYMさんもご指摘されてますが、「欠測、欠損になっている」自体も(裏の理由はわからないものの)情報なので。

ただ、それで歪みが一番小さいかは分かりません。
欠損していないデータから補完する
方が良い場合もあります

ここは勝手な憶測ですが

  • 本格派日本酒でその欠損している属性に強いこだわりがあるが、予見なく味を楽しんでほしいという意味での欠損
    • 本格派日本酒という情報から補完できる可能性あり(同じ意図はあるか欠損していないデータから補完)
  • 安価で気軽な酒なので、特にその属性にこだわっていないという意味での欠損
    - 同様に安価で気軽な酒という情報から補完できる可能性あり(同上)

欠損のままがいいのか、補完した方がいいのかは分かりませんがどちらが良いということはなく試す価値ありです

後で酒蔵に問い合わせて答え合わせができる、というような幸運な状況があれば答え合わせができる
あるいは答え合わせはできないものの予測値の納得感、

アプリ化後ガチでやるならば
補完、欠損値のまま両方で予測値を出してA/Bテストで顧客満足度が高い方を採用する

なども考えられるかと思います

0Like

Comments

  1. @ncworking

    Questioner

    とても丁寧なご回答ありがとうございます。
    自身でも他の値が類似した製品から補完できるのでは?等とも考えてはいたので、地道にデータを整理しつつ、欠損したままの物や、補完した物等複数用意して、それぞれ分析してみようと思います。
    オープンデータの物があるのですが、調べれば出てくる所が欠損していることもあるので、そこを埋める所からですね。頑張ります。

Your answer might help someone💌