1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

線形回帰(Linear Regression)

回帰

回帰とは 連続する数値を予測することを指す。
例えば天候や平均気温のデータとアイスクリームの販売数の関係から、「気温25℃なら売上はこれくらい」といった予測ができる。
ざっくり式にしてみるとこんな感じ

(アイスクリームの販売数)=(ある定数)+(ある係数)×気温

気温のように販売数を算出するためのデータが1つの場合、後述の単回帰分析に該当する。

(アイスクリームの販売数)=(ある定数)+(ある係数)×気温 +(ある係数)×曜日

また気温や曜日のように販売数を算出するためのデータが複数ある場合、後述の重回帰分析に該当する。

線形回帰の仕組み

線形回帰は、従属変数(予測したい値)と 独立変数(その原因となる要因)の関係を直線で表す手法である。

線形回帰のモデル式:
image.png

image.png

例:
部屋数・近隣・築年数(独立変数)から、住宅価格(従属変数)を予測する。

最小二乗法

線形回帰では、散らばったデータに「もっとも近い直線」を引くが、この直線を求めるために使われるのが 最小二乗法である。

誤差(実測値 - 予測値)を二乗し、それらの合計が最小になるように直線を決める方法である。

単回帰と重回帰

  • 単回帰分析:説明変数が1つ
    先ほどのアイスクリームの例で、散布図と回帰直線を作成すると以下のようになる。
気温(℃) アイス売上(個)
20 50
22 55
24 60
26 65
28 70
30 78
32 85

image.png

  • 重回帰分析:説明変数が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) を用います。

image.png

image.png

ロジスティック回帰の例

部屋数、近隣、築年数(説明変数)
 →「住宅価格が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はニューラルネットワークよりも少ないデータでも高い精度を出しやすいと言われている。

image.png

  • カーネルトリック(Kernel Trick)

非線形なデータでも分類できるよう、
低次元→高次元に写像する仕組み。

これにより、
• 円形配置
• ドーナツ状
• 複雑な境界

なども分離できるようになる。

image.png

SVMのバリエーション

線形SVM

データが直線(超平面)で分離できる場合に使用。軽量で高速、テキスト分類などで強い。

非線形SVM(カーネルSVM)

カーネル法を使い、非線形問題も解ける。現実の問題は非線形が多いため、こちらの利用頻度が高い。
• RBFカーネル(最も一般的)
• 多項式カーネル
• シグモイドカーネル など

SVR(Support Vector Regression)

SVMを回帰問題に応用した手法。
数値予測にも利用可能。

SVMのメリット

  • 過学習しにくい

マージン最大化の考え方によりノイズに強く、
データが少なくても安定した精度が出やすい。

  • 非線形データに強い

カーネル法により、複雑なパターンも分類可能。
画像・音声など高次元データとの相性が良い。

  • 少ない特徴量でも高性能

線形SVMはテキスト分類でよく使われ、軽量で高精度。

  • 回帰(SVR)にも対応

分類だけでなく連続値の予測にも使える。

  • 多様なカーネル選択

用途に応じてカーネル関数を使い分けできる

SVMのデメリット

  • 計算コストが高い

データ数が多い・次元が高いと学習が重くなりやすい。

  • カーネル選択に性能が依存

適切なカーネルを選ばないと精度が落ちる。

  • ハイパーパラメータ調整が難しい

C、γ、カーネル種類など、調整しないと性能が出ない。

  • 次元の呪いの影響

高次元だと性能悪化の恐れがあり、PCA等の次元削減が必要。

  • 結果が解釈しにくい

決定木のような「説明しやすさ」はなく、
ビジネス用途で説明責任が必要な場面では注意が必要。

SVMの一般的な実装手順

  1. 前処理
    • 欠損値処理
    • 外れ値除去
    • スケーリング(必須級)
  2. カーネルを選択
    • まず線形カーネルを試す
    • 非線形ならRBFを検討
  3. 学習
    • scikit-learn の SVC(分類)や SVR(回帰)を利用
  4. 評価・調整
    • 正解率・F1・MSEなどを評価
    • GridSearchCVなどでハイパーパラメータ調整

SVMの活用例

  1. テキスト分類
    • スパム判定
    • 感情分析
    • ニュース記事分類
    線形SVMが高速&高精度でよく使われる。

  2. 画像分類
    • 文字認識(OCR)
    • 手書き数字認識(MNIST)
    • 物体分類

  3. 医療データの分類
    • 良性腫瘍 / 悪性腫瘍の判定
    少量データでも性能が出るため相性が良い。

  4. 音声分類
    • 話者識別
    • 音響イベント分類

  5. 異常検知
    • 不正検知
    • 機械の故障予兆検知

クラスタリング(Clustering)とは

クラスタリングは、教師なし学習の代表的な手法で、「似ているデータ同士を自動的にまとめる」技術。分類(教師あり学習)がラベルの予測を目的とするのに対し、クラスタリングは ラベルそのものを自動生成する。

例:
• 顧客を行動パターンごとに分ける
• 文章を似た内容でグループ化する
• 画像を特徴ごとにまとめる

クラスタリングの種類

ハードクラスタリング(Hard Clustering)

各データ点を 1つのクラスタにのみ 割り当てる手法。
代表例:
• k-means法
• 階層クラスタリング(最短距離法/最長距離法/群平均法/ウォード法)

ソフトクラスタリング(Soft Clustering)

各データ点が 複数クラスタに所属する確率を持つ 手法。
例:ガウス混合モデル(GMM)など。

階層クラスタリング(Hierarchical Clustering)

階層クラスタリングは「データを階層構造でまとめる」手法。最終的には木構造(デンドログラム)でクラスタのまとまりを視覚化できる。

最短距離法(Single Linkage)

• 最も近い2点の距離でクラスタ間距離を決める
• 鎖状に伸びやすく、外れ値に敏感

最長距離法(Complete Linkage)

• 最も遠い2点の距離で判断
• コンパクトなクラスタができやすい

群平均法(UPGMA)

• 2つのクラスタ内のすべての点の平均距離で判断
• バランスが良く、一般的

ウォード法(Ward’s Method)

各クラスタ内の「ばらつき(分散)」が最小になるように統合
• 非常に安定したクラスタが得られ、現場利用も多い

非階層クラスタリング:k-means法

最も有名で多用されるクラスタリング手法。

アルゴリズムの流れ

1.k個の重心(セントロイド)をランダムに置く

2.データを最も近い重心に割り当てる

3. 割り当てに基づいて重心を再計算

4.収束するまで 2–3 を繰り返す

メリット

• 計算が速い
• シンプル
• 大規模データで扱いやすい

デメリット

• 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/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?