

相関行列の計算の流れが理解できないです。

[code]

    # 相関行列を作成
    R = np.corrcoef(X.T)
    # 対角成分を0にする
    _R = R - np.identity(10)
    #最大相関係数をとるインデックスを取得
    index = np.where(_R == _R.max())[0]
    
[/code]

という流れで相関行列の計算を行うと思うのですが、なぜ対角成分を0にして最大相関係数をとると相関行列がもとまるのでしょうか？


CC BY-SA 3.0
2018-03-11T15:10:37.483
42328
2018-12-19T16:02:10.580
2018-03-12T06:38:39.327
19110
27700
question
python 機械学習 numpy 数学
相関行列の計算の流れが理解できない


このソースコードは相関行列を求めているわけではありません。相関行列自体は、[`np.corrcoef`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.corrcoef.html)
関数によって最初に求まっています。

相関行列の非対角成分は相異なる 2 つのデータの相関係数ですが、[対角成分は必ず 1
になります](https://mathtrain.jp/correlationmatrix)。「最大相関係数をとるインデックスを取得」の部分では、この対角成分を除いた上で相関係数を最大にするインデックスを求めています。


CC BY-SA 3.0
2018-03-12T06:45:19.953
42342
2018-03-12T06:45:19.953
19110
42328
answer