【ぱらめーた】

パラメータ とは?

最終更新:
💡 入力や動作の調整に使う、名前や値

関数の入力を受け取る名前や、動作を調整する値。Pythonでの引数との区別、URLクエリの名前と値、機械学習の重みや学習率の違いを具体例で解説します。

📌 このページのポイント
パラメータ:受け取る名前と渡す値呼び出し側add(3, 5)引数:実際の値定義側def add(a, b):return a + bパラメータ:受け取る名前3a5bこの呼び出しでは a=3、b=5返る結果は8URLや機械学習では文脈により意味が変わる
先に定義された関数へ値を渡すPythonの例です。矢印は引数を渡す方向で、プログラムを定義する順番ではありません。
ひよこ ひよこ
パラメータと引数は、同じ?
ペンギン先生 ペンギン先生
関数では区別できるよ。Pythonのdef add(a, b):で受け取る名前aとbがパラメータ。add(3, 5)で渡す3と5が引数だ。日常の会話では混用されるので、定義側か呼び出し側かを見ると分かりやすい。
ひよこ ひよこ
デフォルトのパラメータは、何?
ペンギン先生 ペンギン先生
例えばdef greet(name="ゲスト"):のように既定値を指定できる。省略して呼ぶと、その値を使う。必須・省略可能の区別や、渡せる形式は対象の関数の定義を確認する。
ひよこ ひよこ
URLでは、どこがパラメータ?
ペンギン先生 ペンギン先生
例えば/search?q=python&page=2なら、クエリの名前qに値python、名前pageに値2を指定している。名前と値の意味は、そのサイト側の仕様による。同じ名前に複数の値が入る形式もある。
ひよこ ひよこ
機械学習でも、呼び出すときに渡す値?
ペンギン先生 ペンギン先生
その意味だけではない。ニューラルネットワークでは重みやバイアスなど、学習で更新するモデル内の値を指す。学習率やバッチサイズのように学習方法を調整する値は、ハイパーパラメータとして区別される。
ひよこ ひよこ
数が多ければ、よいものになる?
ペンギン先生 ペンギン先生
数だけで判断しないようにしよう。関数なら、入力の意味が分かるか、必要な情報がまとまっているかを確認する。モデルなら、構造やデータ、評価条件も関わる。特定モデルの未公開の個数を、確定した数値として扱わないことも大切だ。
もっと詳しく知りたい人へ

Pythonのデフォルト値にリストを使うと、なぜ注意が必要?

既定値は関数定義時に一度評価され、省略して呼んだ場合に同じリストを使います。def f(a, L=[]):でLへ追加すると、次の呼び出しに値が残ります。毎回新しいリストが必要ならL=Noneとし、関数内でNoneの場合にリストを作る方法があります。

クエリパラメータに同じ名前が二つあったら?

名前ごとに複数の値を扱う形式があります。例えばPythonのurllib.parse.parse_qsは、値をリストとして返します。ただしサイトが複数の値をどう解釈するかはその仕様によるので、いつも最後の値だけが使われるとは限りません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「パラメータ」って出てきたら「入力や動作の調整に使う、名前や値」と思えばだいたいOK!
📖 おまけ:英語の意味
「Parameter」 = 助変数・パラメータ
💬 数学・プログラミング・機械学習などで使われ、対象によって意味が変わります。ここでは、どの場面の何を指すかで理解します。

参考資料

← 用語集にもどる