• Skip to main content
  • Skip to primary sidebar

学習記録

マハラノビス距離

2017年12月21日 by 河副 太智 Leave a Comment

マハラノビス距離とは値とデータ平均値の距離のこと

通常ユークリッド距離を使いそうだが
異常度にユークリッド距離を使うともともとバラつきの大きい変数の
寄与が大きく、バラつきの小さい変数の寄与が小さくなるので適していない

これに対応するには各変数の距離を分散で割る

これをマハラノビス距離と呼びぶ

マハラノビス距離の計算方法

1
2
3
4
5
6
from scipy.spatial import distance
# データ集合の平均値mean, データ集合の共分散行列(分散を集めたもの)cov
mean = np.mean(data, axis=0)
cov = np.cov(data.T)
# データx, 平均値mean, 共分散行列の逆行列np.linalg.pinv(cov) から距離を計算
distance.mahalanobis(x, mean, np.linalg.pinv(cov))

 

データx, yに対して、与えられた平均値mean、共分散行列cov

〇マハラノビス距離
〇meanとのユークリッド距離

の計算結果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import numpy as np
from scipy.spatial import distance
# データx,y
x = [6, 18, 5]
y = [4, 0, 21]
# xとyが属する母集団の平均
mean = np.array([4, 2, 5])
# と共分散行列
cov = np.array([
    [1, 0, 0],
    [0,64, 0],
    [0, 0, 3]
])
 
# xとyの各マハラノビス距離とユークリッド距離を計算し、出力
>Out:
マハラノビス距離
x:2.8284, y:9.2410
 
ユークリッド距離
x:16.1245, y:16.1245

マハラノビス距離の方がユークリッド距離と比べて
分散が大きい変数の距離への寄与が小さくなる

このエントリーをはてなブックマークに追加

Tweet
[`yahoo` not found]
このエントリーを Google ブックマーク に追加
LinkedIn にシェア
LINEで送る


Filed Under: 異常値検知

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in