線形回帰(Linear Regression)
回帰
回帰とは 連続する数値を予測することを指す。
例えば天候や平均気温のデータとアイスクリームの販売数の関係から、「気温25℃なら売上はこれくらい」といった予測ができる。
ざっくり式にしてみるとこんな感じ
(アイスクリームの販売数)=(ある定数)+(ある係数)×気温
気温のように販売数を算出するためのデータが1つの場合、後述の単回帰分析に該当する。
(アイスクリームの販売数)=(ある定数)+(ある係数)×気温 +(ある係数)×曜日
また気温や曜日のように販売数を算出するためのデータが複数ある場合、後述の重回帰分析に該当する。
線形回帰の仕組み
線形回帰は、従属変数(予測したい値)と 独立変数(その原因となる要因)の関係を直線で表す手法である。
例:
部屋数・近隣・築年数(独立変数)から、住宅価格(従属変数)を予測する。
最小二乗法
線形回帰では、散らばったデータに「もっとも近い直線」を引くが、この直線を求めるために使われるのが 最小二乗法である。
誤差(実測値 - 予測値)を二乗し、それらの合計が最小になるように直線を決める方法である。
単回帰と重回帰
- 単回帰分析:説明変数が1つ
先ほどのアイスクリームの例で、散布図と回帰直線を作成すると以下のようになる。
| 気温(℃) | アイス売上(個) |
|---|---|
| 20 | 50 |
| 22 | 55 |
| 24 | 60 |
| 26 | 65 |
| 28 | 70 |
| 30 | 78 |
| 32 | 85 |
- 重回帰分析:説明変数が2つ以上
ここで説明変数同士に強い相関がある状態だと、多重共線性という問題を引き起こす。この状態だと正しく分析ができなくなる。また寄与率(そのモデルによってどれだけ従属変数を説明できるか)が高くなると、現状のデータのあてはまりが高すぎると未知データをうまく予測できなくなる(過学習)
過学習を防ぐためにAICという指標が用いられる。AICが低いほど良いモデルとされる。
AIC=データ数 ×log(1-寄与率)+2(説明変数の数)
例:部屋数+築年数+近隣から住宅価格を予測
ロジスティック回帰(Logistic Regression)
ロジスティック回帰は、2値を予測するためのモデルである。0~1の範囲に収まる値を返す。
例:
• 試験が「合格する or 不合格」
• 顧客が「購買する or しない」
• 家の価格が「500万円を超える or 超えない」
従属変数は 0/1 のカテゴリである点が、線形回帰との大きな違いである。
ロジスティック回帰における主要指標
閾値(Threshold)
・確率を0/1に変換する境界のこと。
・閾値を下げる → 陽性判定が増える → 再現率が上がりやすい。
・閾値を上げる → 陽性判定が減る → 適合率が上がりやすい。
適合率(Precision)
・陽性と予測した中で、本当に陽性だった割合。
・無駄に陽性と予測するミス(偽陽性)を減らしたいときに重視。
再現率(Recall)】
・本当に陽性の中で、正しく陽性と予測できた割合。
・見逃し(偽陰性)を避けたいときに重視。
※ 閾値を調整することでPrecisionとRecallのバランスを調整できる。
仕組み(ロジット変換)
オッズ…ある事象が起こらない確率分の起こる確率。オッズの比率の大きさが変数の影響度として評価される
ロジスティック回帰では、以下の式のように オッズの対数(logit) を用います。
⸻
ロジスティック回帰の例
部屋数、近隣、築年数(説明変数)
→「住宅価格が500,000 USDを超える確率」を予測する(目的変数:0 or 1)
線形回帰とロジスティック回帰の違い
| 項目 | 線形回帰 | ロジスティック回帰 |
|---|---|---|
| 予測する値 | 連続値(例:売上、価格) | 2値またはカテゴリ(例:合格/不合格) |
| 出力の範囲 | -∞ ~ +∞ | 0〜1 の確率 |
| モデルの形 | 直線 | S字カーブ(シグモイド) |
| 主な利用場面 | 売上予測、需要予測、価格推定 | A/Bテスト、離脱予測、合否判定 |
| 目的変数 | 連続量 | 離散的なカテゴリ |
| 誤差の扱い | 最小二乗法 | 対数尤度(最大尤度法) |
ランダムフォレスト(Random Forest)
決定木を沢山集めて統合して結果を出力する方法
決定木
木構造でデータを分類する。単体だとそれほど精度は高くない。
• 「決定木」と「アンサンブル学習(バギング)」を組み合わせたアルゴリズム
• 用途:分類・回帰
• 単体の決定木より精度が高い
• 多層化したアルゴリズム → ディープ・フォレスト(Deep Forest)
特徴
• 分類 → 複数決定木の多数決
• 回帰 → 複数決定木の平均
メリット
• 大規模データでも高速学習・識別可能
• 次元が増えても効率的に学習
• 特徴量の正規化・標準化不要
デメリット
• 過学習が出やすい
• 学習データが少ないと精度低下の可能性
活用事例
• マーケティングでの顧客分類
• 医療データのリスク予測
• 金融取引の異常検知
アンサンブル学習(Ensemble Learning)
• 複数のモデルを組み合わせ、精度向上・汎用性向上を図る手法
• 単一モデルでは難しい予測精度を向上
代表手法
バギング(Bagging)
決定木を複数集めてくる
• ブートストラップでデータをランダム抽出し、複数モデルを並列学習
• 分類 → 多数決、回帰 → 平均の形で出力する
• ランダムフォレストはバギング+複数決定木
ブースティング(Boosting)
モデルを直列に学習
• 前モデルの誤差を修正しつつ次モデルを構築
• 高精度だが時間はかかる
• XGBoost(直列に複数の決定木を生成して精度を改善していく)やLightBGMが代表的
スタッキング(Stacking)
•第1段階で複数モデル作成 → 第2段階でそれらを入力に最終モデルを構築
• 必要に応じて第3段階に移行
バイアスとバリアンス
| 指標 | 高い場合の特徴 | 低い場合の特徴 |
|---|---|---|
| バイアス | 予測が実際の値から大きくずれる | 予測が実際の値に近い |
| バリアンス | 予測が安定せず変動が大きい | 予測が安定している |
メリット
• 精度向上:異なる特徴を持つモデルを組み合わせ高精度
• 汎用性向上:さまざまなデータに対応可能
デメリット
• 計算コスト増加
• 過学習リスク
• 解釈性低下:複数モデルの予測根拠を理解しにくい
活用事例
• 金融:信用スコア予測
• 医療:疾病リスク評価
• マーケティング:顧客の購買予測
サポートベクターマシン(SVM)徹底解説|分類に強い代表的アルゴリズム
サポートベクターマシン(SVM:Support Vector Machine)
教師あり学習の中でも「分類」に特に強い 機械学習アルゴリズムのこと。
2000〜2010年代に大きく注目され、現在も Python(scikit-learn など)で簡単に扱えることから、
画像、テキスト、数値データなど幅広い領域で活用されている。
SVM
SVMは、説明変数(特徴量)から目的変数をどのクラスに属するかを推定する「分類器」 を作るアルゴリズムである。
• 例:メールが「スパム / 非スパム」
• 例:画像が「犬 / 猫」
• 例:取引が「不正 / 正常」
少ないデータでも高い汎化性能を発揮することが多く、ディープラーニングが普及した現在でも重宝されるアルゴリズムである。
SVMを構成する主要要素
SVMは以下の4つの概念を中心に成り立っている。
- 超平面(Hyperplane)
分類の境界となる線
• 2次元:直線
• 3次元:平面
• 高次元:超平面
- サポートベクトル
超平面に最も近い場所にあるデータ点。
これらが超平面の位置を決定する“鍵”になります。
- マージン
クラスを分ける境界(超平面)とその境界に最も近いデータ点(サポートベクトル)の距離を指す。
SVMの核となる考え方:マージン最大化
SVMが特に優れているのが、「マージン最大化」 という考え方である。
マージン最大化とは?
この距離(マージン)を最大にする境界線を選ぶことである。
マージンが広いほど、以下のメリットがある。
• 少しデータが動いても分類が変わりにくいため 安定する
• 過学習が起こりにくい
• ノイズに強くなる
この仕組みによって、SVMはニューラルネットワークよりも少ないデータでも高い精度を出しやすいと言われている。
- カーネルトリック(Kernel Trick)
非線形なデータでも分類できるよう、
低次元→高次元に写像する仕組み。
これにより、
• 円形配置
• ドーナツ状
• 複雑な境界
なども分離できるようになる。
SVMのバリエーション
線形SVM
データが直線(超平面)で分離できる場合に使用。軽量で高速、テキスト分類などで強い。
非線形SVM(カーネルSVM)
カーネル法を使い、非線形問題も解ける。現実の問題は非線形が多いため、こちらの利用頻度が高い。
• RBFカーネル(最も一般的)
• 多項式カーネル
• シグモイドカーネル など
SVR(Support Vector Regression)
SVMを回帰問題に応用した手法。
数値予測にも利用可能。
SVMのメリット
- 過学習しにくい
マージン最大化の考え方によりノイズに強く、
データが少なくても安定した精度が出やすい。
- 非線形データに強い
カーネル法により、複雑なパターンも分類可能。
画像・音声など高次元データとの相性が良い。
- 少ない特徴量でも高性能
線形SVMはテキスト分類でよく使われ、軽量で高精度。
- 回帰(SVR)にも対応
分類だけでなく連続値の予測にも使える。
- 多様なカーネル選択
用途に応じてカーネル関数を使い分けできる
SVMのデメリット
- 計算コストが高い
データ数が多い・次元が高いと学習が重くなりやすい。
- カーネル選択に性能が依存
適切なカーネルを選ばないと精度が落ちる。
- ハイパーパラメータ調整が難しい
C、γ、カーネル種類など、調整しないと性能が出ない。
- 次元の呪いの影響
高次元だと性能悪化の恐れがあり、PCA等の次元削減が必要。
- 結果が解釈しにくい
決定木のような「説明しやすさ」はなく、
ビジネス用途で説明責任が必要な場面では注意が必要。
SVMの一般的な実装手順
- 前処理
• 欠損値処理
• 外れ値除去
• スケーリング(必須級) - カーネルを選択
• まず線形カーネルを試す
• 非線形ならRBFを検討 - 学習
• scikit-learn の SVC(分類)や SVR(回帰)を利用 - 評価・調整
• 正解率・F1・MSEなどを評価
• GridSearchCVなどでハイパーパラメータ調整
SVMの活用例
-
テキスト分類
• スパム判定
• 感情分析
• ニュース記事分類
線形SVMが高速&高精度でよく使われる。 -
画像分類
• 文字認識(OCR)
• 手書き数字認識(MNIST)
• 物体分類 -
医療データの分類
• 良性腫瘍 / 悪性腫瘍の判定
少量データでも性能が出るため相性が良い。 -
音声分類
• 話者識別
• 音響イベント分類 -
異常検知
• 不正検知
• 機械の故障予兆検知
クラスタリング(Clustering)とは
クラスタリングは、教師なし学習の代表的な手法で、「似ているデータ同士を自動的にまとめる」技術。分類(教師あり学習)がラベルの予測を目的とするのに対し、クラスタリングは ラベルそのものを自動生成する。
例:
• 顧客を行動パターンごとに分ける
• 文章を似た内容でグループ化する
• 画像を特徴ごとにまとめる
クラスタリングの種類
ハードクラスタリング(Hard Clustering)
各データ点を 1つのクラスタにのみ 割り当てる手法。
代表例:
• k-means法
• 階層クラスタリング(最短距離法/最長距離法/群平均法/ウォード法)
ソフトクラスタリング(Soft Clustering)
各データ点が 複数クラスタに所属する確率を持つ 手法。
例:ガウス混合モデル(GMM)など。
階層クラスタリング(Hierarchical Clustering)
階層クラスタリングは「データを階層構造でまとめる」手法。最終的には木構造(デンドログラム)でクラスタのまとまりを視覚化できる。
最短距離法(Single Linkage)
• 最も近い2点の距離でクラスタ間距離を決める
• 鎖状に伸びやすく、外れ値に敏感
最長距離法(Complete Linkage)
• 最も遠い2点の距離で判断
• コンパクトなクラスタができやすい
群平均法(UPGMA)
• 2つのクラスタ内のすべての点の平均距離で判断
• バランスが良く、一般的
ウォード法(Ward’s Method)
各クラスタ内の「ばらつき(分散)」が最小になるように統合
• 非常に安定したクラスタが得られ、現場利用も多い
非階層クラスタリング:k-means法
最も有名で多用されるクラスタリング手法。
アルゴリズムの流れ
メリット
• 計算が速い
• シンプル
• 大規模データで扱いやすい
デメリット
• k(クラスタ数)を事前に決める必要がある
• 初期値に依存
• 球状のクラスタ以外は苦手
クラスタリングの活用例(実務でよく使われる場面)
- マーケティング(顧客セグメンテーション)
• 購買履歴、閲覧履歴をもとに顧客のタイプを自動分類
例:
「リピートするタイプ」「価格重視の人」「新商品を買う層」
→ 施策ごとにターゲットを最適化できる
-
ECサイト・動画サイトのレコメンド
• 類似ユーザーをクラスタリングし、似た人が買った商品を推薦 -
文章クラスタリング(ニュース・レビュー)
• 内容が似ている記事を自動でまとめる
→ ニュースアプリのカテゴリ生成にも利用 -
異常検知
• 通常データのクラスタから大きく外れた点を「異常」と判定する
例:クレジットカード不正利用 -
画像処理(パーツ分類)
• 画像中の色のクラスタリング
→ 色の圧縮、物体の領域分割などで利用 -
医療領域
• 患者データ(検査値、症状)をクラスタリング
→ 病型分類のヒントになる
クラスタリングを使う際の注意点
• 前処理(標準化)が重要
• 外れ値に弱い手法もある(特に k-means)
• 必ずしも「正解」があるわけではない
• クラスタ数の決め方が難しい(エルボー法・シルエット係数などを使用)
参考URL
https://ai365.jp/columns/linear-regression-analysis/
https://aws.amazon.com/jp/compare/the-difference-between-linear-regression-and-logistic-regression/
https://gmo-research.ai/research-column/logistic-regression-analysis
https://aismiley.co.jp/ai_news/random-forests/
https://aismiley.co.jp/ai_news/ensemble_learning/










