πππ‘πππππ
μκ΄κ΄κ³ λ³Έλ¬Έ
[ λͺ©μ°¨ ]
νΌμ΄μ¨ μκ΄κ³μ
κ°μ₯ λνμ μΌλ‘ λ§μ΄ μ¬μ©νλ μκ΄κ³μ

- νλμ μ λ€λ‘ λνλ΄μμΌλ©°, xμ yμ μ ν κ΄κ³λ₯Ό 보μ¬μ€
- κ·Έλνμμ μ λ€μ΄ μ§μ μ μΌλ‘ νΌμ ΈμμΌλ©°, μκ΄κ³μλ 0.99λ‘ λ§€μ° κ°ν μμ μ ν κ΄κ³λ₯Ό λνλ
νΌμ΄μ¨ μκ΄κ³μ
- λ μ°μν λ³μ κ°μ μ ν κ΄κ³λ₯Ό μΈ‘μ νλ μ§ν
- -1μμ 1μ¬μ΄μ κ°μ κ°μ§λ©°
- 1μ μμ ν μμ μ ν κ΄κ³
- -1μ μμ ν μμ μ ν κ΄κ³
- 0μ μ ν κ΄κ³κ° μμμ μλ―Έ
νΌμ΄μ¨ μκ΄κ³μλ μΈμ μ¬μ©ν κΉβ
- κ³΅λΆ μκ°κ³Ό μν μ μ κ°μ μκ΄κ΄κ³ λΆμν λ
π«λΉμ ν κ΄κ³μμ μ¬μ©ν μ μμ

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import pearsonr
# μμ λ°μ΄ν° μμ±
np.random.seed(0)
study_hours = np.random.rand(100) * 10
exam_scores = 3 * study_hours + np.random.randn(100) * 5
# λ°μ΄ν°νλ μ μμ±
df = pd.DataFrame({'Study Hours': study_hours, 'Exam Scores': exam_scores})
# νΌμ΄μ¨ μκ΄κ³μ κ³μ°
pearson_corr, _ = pearsonr(df['Study Hours'], df['Exam Scores'])
print(f"νΌμ΄μ¨ μκ΄κ³μ: {pearson_corr}")
# μκ΄κ΄κ³ ννΈλ§΅ μκ°ν
sns.heatmap(df.corr(), annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('pearson coefficient heatmap')
plt.show()
λΉλͺ¨μ μκ΄κ³μ
λ°μ΄ν°κ° μ κ·λΆν¬λ₯Ό λ°λ₯΄μ§ μμ λ μ¬μ©νλ μκ΄κ³μ

- μ΄λ‘μ μ λ€λ‘ λνλ΄μμΌλ©°, xμ yμ μμ κ΄κ³λ₯Ό 보μ¬μ€
- μ€νΌμ΄λ§ μκ΄κ³μλ λ λ³μμ μμκ°μ μκ΄ κ΄κ³λ₯Ό μΈ‘μ ν¨
- κ°μ -1μμ 1μ¬μ΄λ‘ ν΄μ

- xμ yμ λΉμ ν κ΄κ³λ₯Ό 보μ¬μ€
- μΌλ¬μ νμ°λ λ λ³μ κ°μ μμ μΌκ΄μ±μ μΈ‘μ ν¨
- λΉμ ν κ΄κ³λ₯Ό νμ§νλλ° μ μ©ν¨
λΉλͺ¨μ μκ΄κ³μ
- λ°μ΄ν°κ° μ κ·λΆν¬λ₯Ό λ°λ₯΄μ§ μκ±°λ λ³μλ€μ΄ μμν λ°μ΄ν°μΌ λ μ¬μ©νλ μκ΄κ³μ
- λ°μ΄ν°μ λΆν¬μ λν κ°μ μμ΄ λ λ³μ κ°μ μκ΄κ΄κ³λ₯Ό μΈ‘μ ν λ μ¬μ©
- λνμ μΌλ‘ μ€νΌμ΄λ§ μκ΄κ³μμ μΌλ¬μ νμ° μκ΄κ³μκ° μμ
1. μ€νΌμ΄λ§ μκ΄κ³μ
- λ λ³μμ μμ κ°μ μΌκ΄μ±μ μΈ‘μ
- μΌλ¬μ νμ° μκ΄κ³μλ³΄λ€ λ°μ΄ν° λ΄ νΈμ°¨μ μλ¬μ λ―Όκ°
2. μΌλ¬μ νμ° μκ΄κ³μ
- μμκ°μ μΌμΉ μ λ° λΆμΌμΉ μμ λΉμ¨μ λ°νμΌλ‘ κ³μ°
- ex) μλ₯Όλ€μ΄ μ¬λμ ν€μ λͺΈλ¬΄κ²μ λν΄ μκ΄κ³μλ₯Ό μκ³ μ ν λ ν€κ° ν¬κ³ λͺΈλ¬΄κ²λ λ λκ°λ©΄ μΌμΉ μμ ν΄λΉ, ν€κ° ν¬μ§λ§ λͺΈλ¬΄κ²κ° λ μ μΌλ©΄ λΆμΌμΉ μμ ν΄λΉ μ΄λ€μ κ°μ λΉμ¨λ‘ μκ΄κ³μλ₯Ό κ²°μ
λΉλͺ¨μ μκ΄κ³μλ μΈμ μ¬μ©ν κΉβ
- λ°μ΄ν°μ λΆν¬μ λν κ°μ μ νμ§ λͺ»ν λ
- μμν λ°μ΄ν°μμλ μ¬μ©νκ³ μΆμ λ
from scipy.stats import spearmanr, kendalltau
# μμ λ°μ΄ν° μμ±
np.random.seed(0)
customer_satisfaction = np.random.rand(100)
repurchase_intent = 3 * customer_satisfaction + np.random.randn(100) * 0.5
# λ°μ΄ν°νλ μ μμ±
df = pd.DataFrame({'Customer Satisfaction': customer_satisfaction, 'Repurchase Intent': repurchase_intent})
# μ€νΌμ΄λ§ μκ΄κ³μ κ³μ°
spearman_corr, _ = spearmanr(df['Customer Satisfaction'], df['Repurchase Intent'])
print(f"μ€νΌμ΄λ§ μκ΄κ³μ: {spearman_corr}")
# μΌλ¬μ νμ° μκ΄κ³μ κ³μ°
kendall_corr, _ = kendalltau(df['Customer Satisfaction'], df['Repurchase Intent'])
print(f"μΌλ¬μ νμ° μκ΄κ³μ: {kendall_corr}")
# μκ΄κ΄κ³ ννΈλ§΅ μκ°ν
sns.heatmap(df.corr(method='spearman'), annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('spearman coefficient heatmap')
plt.show()
μνΈμ 보 μκ΄κ³μ
μνΈμ 보λ₯Ό μ΄μ©ν λ³μλΌλ¦¬μ μκ΄κ³μ κ³μ°
μνΈμ 보 μκ΄κ³μ
- λ λ³μ κ°μ μνΈ μ 보λ₯Ό μΈ‘μ
- λ³μκ°μ μ 보 μμ‘΄μ±μ λ°νμΌλ‘ λΉμ ν κ΄κ³λ₯Ό νμ§
- μλ‘μ μ 보μ λν λΆνμ€μ±μ μ€μ΄λ μ λλ₯Ό λ°νμΌλ‘ κ³μ°
- λ²μ£Όν λ°μ΄ν°μ λν΄μλ μ μ© κ°λ₯
- μνΈμ 보 μκ΄κ³μλ₯Ό κ·Έλ¦ΌμΌλ‘ νμΈν΄λ³΄κΈ° !
- 보λΌμ μ λ€μ x μ y κ°μ λΉμ ν κ΄κ³λ₯Ό λνλ
- μνΈμ 보 κ°μ 0.90μΌλ‘ νμλμ΄ μμΌλ©°, μ΄λ λ λ³μ κ°μ κ°ν λΉμ ν μμ‘΄μ±μ μλ―Έ

μνΈμ 보 μκ΄κ³μλ μΈμ μ¬μ©ν κΉβ
- λ λ³μκ° λ²μ£Όν λ³μμΌ λ
- λΉμ νμ μ΄κ³ 볡μ‘ν κ΄κ³λ₯Ό νμ§νκ³ μ ν λ
import numpy as np
from sklearn.metrics import mutual_info_score
# λ²μ£Όν μμ λ°μ΄ν°
X = np.array(['cat', 'dog', 'cat', 'cat', 'dog', 'dog', 'cat', 'dog', 'dog', 'cat'])
Y = np.array(['high', 'low', 'high', 'high', 'low', 'low', 'high', 'low', 'low', 'high'])
# μνΈ μ 보λ κ³μ°
mi = mutual_info_score(X, Y)
print(f"Mutual Information (categorical): {mi}")
μ°μ΅λ¬Έμ
1. νΌμ΄μ¨ μκ΄κ³μμ μλ―Έλ₯Ό μ€λͺ
- λ λ³μ κ°μ μ ν κ΄κ³λ₯Ό μΈ‘μ νλ€
2. λΉλͺ¨μ μκ΄κ³μμ λνμ μΈ μλ‘ μ³μ§ μμ κ²
- νΌμ΄μ¨ μκ΄κ³μ
3. μνΈμ 보 μκ΄κ³μμ μλ―Έλ₯Ό μ€λͺ νλ κ²μ λͺ¨λ κ³ λ₯΄μΈμ
- λ λ³μ κ°μ λΉμ ν κ΄κ³λ₯Ό μΈ‘μ
- λ λ³μ κ°μ μνΈ μ 보λ₯Ό μΈ‘μ
'ν΅κ³ν' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κ°μ€κ²μ μ μ£Όμμ (0) | 2025.01.13 |
---|---|
μ μμ±κ²μ (0) | 2025.01.10 |
ν΅κ³ν κΈ°μ΄ 2 (1) | 2025.01.10 |
ν΅κ³ν κΈ°μ΄ (2) | 2025.01.10 |