質問: 機械学習に関する質問です。 特徴量が何層かの構造を持っているとき、 Pythonのscikit-learn等で機械学習をする場合、 どのようなデータとして扱えばよいか、またどのようなモデルが適切か教えてください。 簡単な例を挙げます。(良い例ではないかもしれませんが......) 物質Aと物質Bを色々な割合で混ぜ合わせた水溶液の物性データをもとに 未知の割合で混ぜ合わせた水溶液の物性を予測したいとします。 このとき、データは 物質A 物質B 物性 1% 1% 0.5 2% 2.5% 2.1 のようになるかと思います。 これだけであれば、物質Aと物質Bの濃度を特徴量として物性を予測する モデルが組めるかと思います。 しかしこのとき、物質A,Bもデータで表せたら(例えば分子量や融点のような固有の値) この予測モデルは物質C,Dにも拡張できるかもしれません。 (もちろんやってみないとわからないですが) そのようなことを行いたい場合、 分子量〇〇、融点△△の物質が1%、 分子量□□、融点××の物質が2%、 このときの物性が~~ というまとまりがひとつのデータになります。 つまり、まず分子量と融点のデータによってどういった物質かが決まり、 その物質の濃度が何%か、というような形です。 この場合、物質Aの分子量や融点と濃度は関連がありますが、 物質Aの分子量と物質Bの濃度は関連がありません。 こういった形のデータをデータセットとして表す場合、どのようにすればよいのでしょうか。 またこういったデータを処理する場合に汎用される機械学習のモデル等は どういったものがあるでしょうか。 参考になるサイトや書籍だけでも教えて頂けますと嬉しいです
回答: 私も機械学習初心者なので、参考になるかわかりませんが... 1データ分析の書籍では質問者様のような実例はあまり見たことがないので、そもそも機械学習で探索すべき事柄かどうか疑問です。 2分子量と融点が物質固有の値なので、多重共線性の観点から ``` sample1 = ['物質Aの分子量', '物質Aの融点', '物質Aの濃度', '物質Bの分子量', '物質Bの融点', '物質Bの濃度', '生成された物質の物性'] ``` では、そもそもそれぞれの分子量や融点は意味を成さないので ``` sample1 = ['物質Aの濃度', '物質Bの濃度', '生成された物質の物性'] ``` と等しいかと思います。したがって、「物質Aの濃度」と「物質Bの濃度」から「生成された物質の物性」の値を回帰平面などで求めることになるかと思います。 3物質の濃度だけでなく分子量や融点も含めて物性を予測するとなると、分子量と濃度などを何らかの意味ある演算で組み合わせた新しい特徴量などを使う必要があるような気がします。 質問者様のおっしゃりたいことはわかるのですが感覚でしか答えられず申し訳ありません。 とても気になるので質問をフォローさせてもらいます。