日々の事柄に関する雑記帳。


判別分析

LDA
Linear Discriminant Analysis
線形判別分析平面、直線による判別
QDA
Quadratic Discriminant Analysis
二次判別分析二次関数による判別
MDA
Mixture Discriminant Analysis
混合判別分析
判別分析
群間の分散が等しい場合線形判別分析
群間の分散が異なる場合二次判別分析

2次判別分析をRでやってみた(スイス銀行紙幣◆

Python

sklearn.metrics.confusion_matrix
TPTrue PositiveTrueをTrueと判定した。正解
TNTrue NegativeFalseをFalseと判定した。
FPFalse PositiveTrueをFalseと判定した。誤解
FNFalse NegativeFalseをTrueと判定した。

sklearn.metrics.classification_report
accuracy正解率全サンプル中、正解したサンプル。(TP + TN)/(TP + TN + FP + FN)
precision適合率Trueのサンプル中、正解したサンプル。TP / (TP + FP)
recall再現率True判定のサンプル中、正解したサンプル。TP / (TP + FN)
f1-scoreF値適合率と再現率の調和平均。2 precision recall / (precision + recall)
2 TP / (2 TP + FP + FN)
macro avgマクロ平均
micro avgマイクロ平均
weighted avg加重平均

R

confusionMatrix
Sensitivity再現率
Specificity
Pos Pred Value
Neg Pred Value
Prevalence正解率
Detection Rate
Detection Prevalence
Balanced Accuracy

用語

ANOVAANalysis Of VAriance
分散分析
Bayes Discriminant Ruleベイズ判別式、ベイズ判別規則
categorical variableカテゴリ変数、質的変数、属性変数
DADiscriminant function Analysis
判別関数分析?
dependent variable従属変数、従変数
discriminant analysis判別分析
discriminant function判別関数
latent variable潜在的変数
independent variable独立変数
LDALnear Discriminant Analysis
線形判別分析
linear classifier線形分類器
linear combination一次結合、線形結合
logistic regressionロジスティック回帰
NDANormal Discriminant Analysis
正規判別分析?
predictor予測因子
Probit regressionプロビット回帰
regression analysis回帰分析
spectral decompositionスペクトル分析
subpopulation部分母集団
transpose行列の転置
偏差確率変数x、確率変数の平均X
x - X
平方和
偏差平方和
変動
偏差の2乗(平方)の和。
Σ(x - X)^2
標本分散自由度=標本サイズn、で平方和を割ったもの。
1/n * Σ(x - X)^2
普遍分散自由度=標本サイズn-1、で平方和を割ったもの。
υ=1 / (n - 1) * Σ(x - X)^2

判別分析

複数グループ(群、カテゴリ)を含むデータを元に
  • 分けられている基準を解析する。
  • 標本がどのグループに属するかを予測する。
線形判別関数未分類のデータに基づいた出力(正負)によって、線のどちら側(正の側、負の側)に属するかでグループ分けする。
マハラノビス距離2点間の直線距離を標準偏差で割った値の2乗。
分布が大きく、直線距離(ユークリッド距離)ではグループ間をしきれない場合に利用する。
次元が多い場合に利用する。

判別分析とは
線形判別教師あり学習
データのラベルを用いる。
主成分分析教師なし学習
データのラベルを用いない。

数理モデル
ANOVAYがQuantitativeデータ。
XがQualitativeデータ。
判別分析YがQualitativeデータ、XがQuantitativeデータ。
Y = LDA

参照

HELLO CYBERNETICSフィッシャーの線形判別分かりやすい説明。
biopapyrus 農業情報線形判別分析簡潔な説明。
人工知能に関する断創録フィッシャーの線形判別決定境界に関する説明。
SlideShare線形識別モデル順を追った長い説明。
Rdiscriminant判別分析
判別分析の考え方
Rと説明。
データ分析基礎知識クラスター分析の手法 奮詰廖用語の確認。
Qiita30分でわかる機械学習用語「次元削減(Dimensionality Reduction)」次元削減。

R

復習
cor相関係数
cov共分散
corを参照。
eigen行列Xの固有値、固有ベクトル。
lapply指定した関数FUNを、指定した変数Xへ適用する。
levels水準ラベル
nrow行の数
sapplylapplyのラッパー
var普遍分散
corを参照。

ベクトルの結合
cbind列ベクトル単位で結合する。
rbind行ベクトル単位で結合する。
cbindを参照。
( x <- rbind(c(1,2,3), c(4,5,6)) )     # 行ベクトルを与えて行列生成
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6

 ( x <- cbind(c(1,2,3),c(4,5,6))  )     # 列ベクトルを与えて行列生成
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6

線形判別分析
lda線形判別分析
library(MASS)
predictモデル予測
predict.ldaを参照。
predict.ldaモデル予測
coef回帰係数
coefficientscoefのエイリアス。
ldahist線形判別分析のヒストグラム
library(MASS)

ldaの出力結果
Prior probabilities of groupsグループの初期構成比$prior
Group meansグループの平均$means
Coefficients of linear discriminants線形判別式の係数$scaling
Proportion of trace判別力、識別力
級間分散の説明率
各判別関数によって達成される分離度(パーセント)
寄与率
縮約したあとの各次元が元のどれだけの情報を示すか。
群間偏差、群内偏差$svd
データ数$N
実行時の呼び出し$call

predict.ldaの出力結果
class判別結果$class
事後確率
グループに所属する確率。
$posterior
判別得点$x

Python

sklearn.discriminant_analysis.LinearDiscriminantAnalysis線形判別分析

引数n_componentsについて
  • lda、predictには影響しない。
  • クラス数-1以上の数値指定は無効。
決定境界の本数はクラス数-1

n_components : int, optional (default=None) Number of components (<= min(n_classes - 1, n_features)) for dimensionality reduction. If None, will be set to min(n_classes - 1, n_features).
This is implemented in discriminant_analysis.LinearDiscriminantAnalysis.transform. The desired dimensionality can be set using the n_components constructor parameter.
This parameter has no influence on discriminant_analysis.
LinearDiscriminantAnalysis.fit or
discriminant_analysis.LinearDiscriminantAnalysis.predict.
1.2. Linear and Quadratic Discriminant Analysis

R、PythonのLDA、対応関係

RR LDA valuePython LDA attribute, method
ldaPrior probabilities of groupsグループの初期構成比$priorpriors_
Group meansグループの平均$meansmeans_
Coefficients of linear discriminants線形判別式の係数$scalingscalings_
Proportion of trace判別力explained_variance_ratio_
群間偏差、群内偏差$svd
データ数$N
実行時の呼び出し$call
predict.ldaclass判別結果$classpredict()
事後確率
グループに所属する確率。
$posteriorpredict_proba()
判別得点$x
タグ

管理人/副管理人のみ編集できます