[K-Data x λ¬λμ€νΌμ¦] 1-3. μΆμ² μμ€ν μ νκ° μ§ν, Offline Test, Online A/B Test
# Offline Test
- μλ‘μ΄ μΆμ² λͺ¨λΈμ κ²μ¦νκΈ° μν΄ κ°μ₯ λ¨Όμ νμν λ¨κ³
- μ μ λ‘λΆν° μμ§ν λ°μ΄ν°λ₯Ό Train/Valid/Testλ‘ λλμ΄ λͺ¨λΈμ μ±λ₯μ νκ°
=> μΆμ²λͺ¨λΈμ κ³ λνμν¬ μ μλ€
# Online A/B Test
- μΆμ²μμ€ν μ λ³κ²½ μ νμ μ±λ₯μ λΉκ΅νλ κ²μ΄ x
- λμμ λμ‘°κ΅°(A)μ μ€νκ΅°(B)μ μ±λ₯μ νκ° (λ¨, κ°μμκ° λ° κ°μ νκ²½μμ νκ°ν΄μΌν¨)
- μ€μ μλΉμ€λ₯Ό ν΅ν΄ μ»μ΄μ§λ κ²°κ³Όλ₯Ό ν΅ν΄ μ΅μ’ μμ¬κ²°μ
=> μκ°λ³λ‘ μ μλ―Έν μ°¨μ΄λ₯Ό κΎΈμ€ν λνλ΄λμ§
# μΆμ² μμ€ν λ³ νκ°μ§ν
1) λνΉ(Ranking) => μ£Όλ‘ NDCG@k / Recall@k
: μ μ μκ² μ ν©ν μμ΄ν Top Kκ°λ₯Ό μΆμ²
μ μ μ μμ΄ν μ λν μ νΈλλ₯Ό ꡬν νμ μμ΄ μλΉμκ° μ νΈν κ²μΌλ‘ μμλλ Top Kλ₯Ό μ μ νλ κ².
-> νκ°μ§ν : Precision@K, Recall@k, MAP@K, nDCG@K
[β Precision@k]
- Precisionμ΄λ?
: TrueλΌκ³ μμΈ‘ν κ²λ€ κ°μ΄λ° μ€μ Trueμ λΉμ¨
-> Precisionμ Precision@kλ‘ νμ₯!
-> κ·Έλ λ€λ©΄ Precision@kλ?
: μΆμ²ν Kκ° μμ΄ν κ°μ΄λ°(μμΈ‘ν Kκ°μ μμ΄ν κ°μ΄λ°) μ€μ μ μ κ° κ΄μ¬μλ μμ΄ν μ λΉμ¨
μ) μ°λ¦¬κ° μΆμ²ν μμ΄ν κ°μ : K=5
μΆμ²ν μμ΄ν μ€ μ μ κ° κ΄μ¬μλ μμ΄ν κ°μ : 2
Precision@5 = 2/5
[β‘ Recall@k]
- Recallμ΄λ?
: μ 체 Trueκ°μ΄λ° TrueλΌκ³ μμΈ‘ν λΉμ¨
-> Recallμ Recall@kλ‘ νμ₯!
-> κ·Έλ λ€λ©΄ Recall@kλ?
: μ μ κ° κ΄μ¬μλ μ 체 μμ΄ν (μ€μ λ‘ κ΄μ¬μλ μμ΄ν ) κ°μ΄λ° μ°λ¦¬κ° μΆμ²ν μμ΄ν μ λΉμ¨(κ΄μ¬μλ€κ³ μμΈ‘ μ±κ³΅ν?)
μ) μ°λ¦¬κ° μΆμ²ν μμ΄ν κ°μ : K=5
μΆμ²ν μμ΄ν μ€ μ μ κ° κ΄μ¬μλ μμ΄ν κ°μ : 2
μ μ κ° κ΄μ¬μλ μμ΄ν μ μ 체 κ°μ : 3
Recall@5 = 2/3
[β’ MAP@k]
: Mean Average Precision @k
- Average Precison(AP@k) μ΄λ?
Precision@1λΆν° Precision@kκΉμ§μ νκ· κ°μ μλ―Έν¨!
μ¦ μΆμ²μ 1κ° λ³΄μ¬μ€¬μ λ, 2κ° λ³΄μ¬μ€¬μλ ... kκ° λ³΄μ¬μ€¬μλ κΉμ§ Precisionμ νκ· κ°μ΄λ€!!
=> relevantν μμ΄ν μ λ λμ μμμ μΆμ²ν κ²½μ° κ°κ°μ Precisionκ°μ΄ λμμ§λκΉ~ μ μ λ‘ μ μκ° μμΉνκ²λ¨~!
- Mean Average Precision(MAP@k)μ΄λ?
: Average Precision(AP@k)μ νμ₯ν κ²μΌλ‘
λͺ¨λ μ μ μ λν Average Precisionκ°μ νκ· μ΄λ€..! μ¦ μΆμ²μμ€ν μ μ±λ₯
[β£ NDCG@k]
: MAP@kμ²λΌ μΆμ² μμμ κ°μ€μΉλ₯Ό λ λ§μ΄ λμ΄ μ±λ₯μ νκ°νλ©° 1μ κ°κΉμΈμλ‘ μ’λ€!
MAP@kμ NDCG@kμ λ€λ₯Έμ
MAP@kλ μ μ κ° κ΄μ¬μ΄ μλ!μ μ¬λΆλ₯Ό binary(0/1λ‘ νκ°)
NDCG@kλ κ΄λ ¨λκ°μ μ¬μ© !
-> κ΄λ ¨λκ°μ΄λ.. 첫λ²μ§Έλ‘ λ§μ·μ λ 5μ ..λλ²μ§Έλ‘ λ§μ·μ λ 4μ ...μ΄λ°μμΌλ‘ κ°μ€μΉλ₯Ό λμ΄ μ μλ₯Ό λ§€κΈ΄λ€λ κ²!
[β€ Hit Rate@k]
- νΉμ μ μ κ° μ νΈνκ±°λ ν΄λ¦νλ λͺ¨λ Itemμ κ°μ Έμ΄!
- κ·Έ μμ΄ν λ€ κ°μ΄λ° νλμ μμ΄ν λ§ μ κ±°ν¨
- νλμ μμ΄ν μ μ μΈν λλ¨Έμ§ μμ΄ν μ κ°μ§κ³ μΆμ² λͺ¨λΈμ νμ΅ν λ€μ Top K μΆμ² 리μ€νΈλ₯Ό μΆμΆ
- Top K μΆμ² 리μ€νΈ κ°μ΄λ° μμ μ κ±°ν νλμ μμ΄ν μ΄ λ€μ΄μλ€λ©΄ Hit(True) / λ€μ΄μμ§ μλ€λ©΄ Hitκ° μλλ€(False)
=> Hit Rate κ³μ°!
=> number of hit user / number of user
2) μμΈ‘(Prediction)
: μ μ μ μμ΄ν μ λν μ νΈλλ₯Ό μ ννκ² μμΈ‘νλ κ²
μ¬κΈ°μ Explicit Feedbackμ μ² μκ° μμ΄μΈλ§¨μ λν΄ λ΄λ¦΄ νμ κ°μ μμΈ‘νλ κ²
Implicit Feedbackμ μν¬κ° μμ΄ν°12λ₯Ό μ‘°ννκ±°λ ꡬ맀ν νλ₯ κ°μ μμΈ‘
-> νκ°μ§ν : MAE, RMSE, AUC
[MAE&RMSE]
: μ€μ κ°κ³Ό μμΈ‘κ°μ μ°¨μ΄λ₯Ό νλμ μ±λ₯μ§νλ‘ νν => κ°μ΄ μμμλ‘ μΆμ² μκ³ λ¦¬μ¦μ μ±λ₯μ΄ μ’μ !
λλΆλΆμ λ¨Έμ λ¬λ λͺ¨λΈμμ RMSEκ°μ λ§μ΄ μ¬μ©
- MAE(Mean Absolute Error)
- RMSE(Root Mean Square Error)
κ³μ° μμ )
errorλ μ€μ κ°κ³Ό μμΈ‘κ°μ μ°¨μ΄!
MAE = (2 + 3 + 1 + 0) / 4 = 1.5
RMSE = sqrt((4 + 9 + 1 + 0) / 4) = 1/87
μ©μ΄κ° λ§μμ μ²μ 곡λΆν λλ ν·κ°λ¦¬λ λΆλΆμ΄ λ§μλλ°
μ΄λ κ² μ 리ν΄λκ³ λλκΉ ν¨μ¬ μ΄ν΄κ° μ¬μμ§λ€μ!
λ§μ λμμ΄ λμ ¨κΈΈ λ°λΌλ©°..!
μ€λλ λ
