このページは、入力(特徴量)から出力を予測するといった古典機械学習のうち、係数が線形に入る代表モデル——線形回帰とロジスティック回帰——の基本を、初学者向けに短く整理するノートです。流れの史は 線形回帰とロジスティック回帰史、全体の座標は 古典機械学習モデル史 を参照してください。
ざっくりいうと
- 線形回帰:だいたい 数値(連続値)の予測。各特徴に 重み(係数) を掛けて足し合わせ、(必要なら)切片を足して 予測値 を出すイメージです。
- ロジスティック回帰:だいたい 二値分類(「はい/いいえ」「スパム/非スパム」など)。内部ではまず線形結合を計算し、その結果を シグモイド関数などで 0〜1 の確率 に変換して判定します。
どちらも **「入力の線形結合+データから係数を推定」**という骨格が共通で、古典機械学習モデル史 が言う 統計的推定で基準線を置く典型例です。
線形回帰とロジスティック回帰のちがい(目的の違い)
| 観点 | 線形回帰 | ロジスティック回帰 |
|---|---|---|
| よくある用途 | 価格・スコアなど 連続値の予測 | クラス予測(二値が典型、多クラス拡張もある) |
| 出力のイメージ | 実数の予測値 | クラス確率や対数オッズに基づく境界 |
「回帰」という語が両方に付きますが、ロジスティック回帰は 分類でよく使われます(名前は歴史的なつながりから)。
何を学習しているか(イメージ)
教師ありでは、データはだいたい 「特徴ベクトル x と正解」のペアです(行ごとに1組)。
二値分類なら正解は多くても スカラー1つ(0/1)、マルチラベルなら 正解ベクトルになり得ます(整理は 特徴量設計(概要))。
特徴量(人が設計した列やカテゴリの埋め方)と 正解(教師あり)が揃っているとき、学習はだいたい次のことをします。
- 損失(予測と正解のズレ)を小さくしたい
- 係数・切片を、最適化アルゴリズムで更新する
- 正則化(L1/L2)を付けると 係数の大きさを抑えるなどの工夫もできる
特徴のスケールが列ごとにバラバラな場合は、学習の前に 標準化/正規化などの前処理を検討します(標準化と正規化(スケーリング))。
データに合わせて パラメータが決まる点は、モデルとは でいう学習済みモデルに近いです。
w と b はどこから来て、実行時は何をするか
wとbはデータの列ではなく、モデルが持つパラメータです。学習開始時は ゼロや乱数などで初期化し、損失が小さくなるように 更新して決まる(閉形式で一発の場合もあれば、反復最適化の場合もある)。- 学習後には
w,bを保存し、推論(実行)時は固定して読み込む。変わるのは主にx側(ユーザー入力から作った特徴ベクトル)。
ロジスティック回帰(二値)の流れ(復習)
1件の入力ごとに z は1つです:(z = w^\top x + b)。これをシグモイドで (p) にし、閾値などでクラスを決めます。z を次元 d 個作るわけではない(バッチなら事例数ぶんの z が並ぶ)。
ロジスティック回帰:学習フェーズと推論フェーズ(一度まとめる)
ざっくり次のイメージです。
- 学習:教師データは
(特徴ベクトル x, 正解)のペアがN組。単一二値なら正解はスカラー(0/1)、複数の二値項目があるなら 長さ (L) の正解ベクトル(各成分が 0 か 1)になり得ます(特徴量設計(概要))。 - モデル側:係数
w(長さ (d) のベクトル)と 切片 (b)(だいたいスカラー=実数1個)を、損失が小さくなるように決める。 - 推論:ユーザー入力から
xを同じ規則で作る → 学習済みのw,bで (z=w^\top x+b) → シグモイドで (p) → **閾値などでクラス(ラベル)**を決める。推論時に動くのは主にx側で、w,bは固定。
二値なら「確率が高いクラスを選ぶ」は、実務ではだいたい p と 1-p の比較(または (p) と閾値)と同じです。**多クラス(3つ以上から1つ)**では、クラスごとのスコアや確率を並べて いちばん高いものを選ぶ(argmax)、という説明が増えます。
モデルが返すものと、その先のレイヤー
ロジスティック回帰そのものが返すのは、だいたい クラス予測(ラベル)や確率までです。実装では 内部ID・列挙名・スネークケースの識別子など、人がそのまま読む文章にはならないことが普通です。
そのためシステムではしばしば 別レイヤーで次のような処理をします。
- ラベル/内部コード → ユーザー向けの説明文・定型文・多言語メッセージへの対応付け(テンプレート、辞書、CMS、ルール)
- UI 用の文言・法令・注意書きの付与(モデルではなくプロダクト側)
つまり 「ラベルを出す」と「人間が読める回答文を出す」は分けて設計されることが多く、後者は変数名のようなトークンではなく 自然な文章になるよう、別コンポーネントが担当します。
強みと限界(短く)
強み
- 単純で速く、ベースライン(比較の土台)にしやすい
- 係数を見て どの特徴がプラス/マイナスに効くかを読みやすい(線形のままなら)
限界
- 入力と出力の関係が 強く非線形だと表現力が不足しがち(特徴量の工夫や別モデルが必要)
- 特徴量設計や前処理に 人手が乗りやすい(古典 ML 一般の話でもある)
よく混ざる用語(会話での補足)
「回帰」は何をしているか
ここでの「回帰」は、x から y を当てる式をデータから決めることです。
数学の恒等式(例: 1+1=2)を説明する話ではなく、価格・温度・スコアのような不確実な値を近似する文脈を指します。
x: 説明変数(入力、特徴)y: 目的変数(出力、予測したい値)
線形結合とは何か
「線形結合」は、各入力に係数を掛けて足す操作です。
- 1変数:
y = wx + b - 多変数:
y = w1x1 + w2x2 + ... + b
「全部足す」とは、多変数の w1x1 + w2x2 + ... の総和を指します。
この書き方をまとめると w^T x + b(ベクトル・行列記法)です。
w(weight)と b(bias)
w: 各特徴の効き方(向きと強さ)を決める係数- 正なら増える方向、負なら減る方向
b: 切片(全特徴が0のときの基準値)- 1変数なら
x=0のときのy
- 1変数なら
ロジスティック回帰でシグモイドを使う理由
ロジスティック回帰は、まず線形結合 z = w^T x + b を作り、z をシグモイドに通して 0〜1 の確率に写像します。
重要なのは、これは「元データの最小値〜最大値を線形縮小する」処理ではなく、実数スコアを確率として解釈可能な範囲に変換する処理だという点です。
N×d の表と「高次元」(古典MLでよくある言い方)
表形式データを行列にすると、だいたい N×d(N:件数、d:特徴数)です。
このとき「高次元」と言われるのは、だいたい d が大きいという意味で、行列が2次元だから低次元、とは限りません。
ここでの差分を一言で言うと、線形回帰とロジスティック回帰の違いは主に x の作り方ではなく y の型です。
言い換えると、これらは **目的変数(y)と出力変換(目的変数以降)**に関する統計モデルの違いであり、説明変数 x の作り方そのものを規定するモデルではありません。
- 線形回帰:
yは数値(実数) - ロジスティック回帰:
yはクラス(典型は 0/1)
BoW(語の出現回数ベクトル)のような高次元特徴は、どちらでも使えます。
詳細は 特徴量設計(概要) に分離しています。
名前の由来(短く)
- 線形回帰(Linear Regression):入力の線形結合で予測値を作るため「線形」。
- ロジスティック回帰(Logistic Regression):ロジスティック関数(シグモイド)を使うため「ロジスティック」。
どちらも「回帰」という語を含みますが、ロジスティック回帰は実務では分類用途が中心です。