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

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

新規登録して質問してみよう
ただいま回答率
85.35%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

796閲覧

機械学習モデルで予測する際の、目的変数が最大値となるときの説明変数の特定方法について

mossan555

総合スコア8

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/12 05:53

編集2021/12/12 07:03

前提・実現したいこと

例えば下記のような回帰モデルを構築したとします。

説明変数:時間帯・気温・湿度
目的変数:売上

このとき目的変数である売上の最大値(予測値)を知りたいのですが、もしも予測する際の説明変数の数値範囲を学習データに含まれる説明変数の数値範囲に限定する(内挿する)場合、説明変数をランダムに入力して目的変数が最大となるようなケースを気合で探す必要があるのでしょうか?

もしも目的変数の最大値が分かるような方法があればご教授願いたいです。

使用言語:python
開発環境:vscode

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

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

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

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

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

meg_

2021/12/12 06:29

> もしも説明変数の数値範囲に際限がない場合 客数の数が無限であれば売り上げも無限になるのではありませんか?
mossan555

2021/12/12 06:58

たしかに…客数を特徴量の例に出したのは失敗でした。修正します。
guest

回答1

0

ベストアンサー

どのような回帰モデルを作成したかによって異なりますが、基本的には値域を決めて求めます。例えば重回帰であれば例の説明変数に関しては値域を決めないと説明変数は3元関数なので、最大値は決まりません。

簡単のために、説明変数が2元、それぞれの説明変数が一次の項のみで構成されるモデルだったとして、直交座標系でz(売上)= ax(気温)+by(湿度)+ εとした状態でa、bのパラメータ推定済みだとします。この直交座標系にxとyにおけるzの値をプロットしていけば、zの推移を可視化することができます。(これは元を増やしても一般化されますが、人間の視覚情報で説明できる限界が3次元までなので三次元を例にあげています。)

このとき、x,yの値域が正負の方向に無限だとすると、この値域内で取るzの値は無限に存在するので、最大値を決めることはできません。今回の例では、zがx、yに対して比例関係があるという(まぁまぁ乱暴な)仮定を置いているので、x、yの値域を決めると上面のみ傾いた平面になると思います。これを可視化して探すこともできますし、以上のような単純な線形モデルを使っている場合は最大値を取るのはa、bの正負が分かれば、値域の端点を取るのが最大になることが自明なのでグリッドサーチを行う必要はありません。

また、値域が正負共に無限の時でも最大値がわかる別の例として、
z(売上)= ax(気温)+by(湿度)+cx^2  + dy^2 + εというような気温の二次項を含み値域が(c < 0, d < 0)となるモデルを考えます。

この例ではx、yの定義域に関して、xとyに対して、(微分なり頂点を求めるなどして)極値を求めることができるので、あるデータ内で計算のみで、zが最大となる値を求めることができます。以上のように偶数時の特殊なケースにおいては、定義域を無限にしても値が元まるケースがあります。

このように立てたモデルの凸性によって、グリッドサーチが必要かどうかは変わってきます。ただ、実際は、値域を設定できないことはほとんどないでしょうし、重み係数の値が人間が計算した方が早いほど綺麗な桁数に収まることもほぼないため、多次元回帰のようなモデルでは重み係数を導出した後は値域内でグリッドサーチしてしまった方が早いでしょう。単純な一次回帰モデルでは重みの正負を見て値域の端点を入力して機械的に出しましょう。

また提示していただいてる例では客数・気温・湿度が単純な比例関係としてモデルを作っているので、恐らく一次項の線形回帰では客数の係数の絶対値が大きく出て、気温・湿度の係数の絶対値が小さめに出ると思います。

このような回帰結果から、気温・湿度がどれくらい売上に相関しているかや、モデルを作る時にどのような項を含むモデルを作ることが適切なのかと言った点を幾何的な性質を考慮できると、理解がスムーズになるかと思います。

投稿2021/12/12 07:39

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

mossan555

2021/12/16 04:08

tkowさん、jbpb0さん 丁寧に回答いただきありがとうございます。 とても参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問