Визначення метрики Чжана
Зазвичай, коли потрібно багаторазово виконувати одну дію, ми пишемо функцію замість того, щоб щоразу кодувати окремий випадок. У цій вправі ми визначимо функцію для метрики Чжана, яка приймає антецедент і консеквент та повертає значення метрики. У наступному розділі задачі ускладнюватимуться, тож зручний спосіб обчислення метрики суттєво спростить роботу.
Зауважте, що numpy вже імпортовано як np, а pandas — як pd. Також нагадаємо, що вираз для метрики Чжана через підтримку має вигляд:
$$Zhang(A \rightarrow B) = $$ $$\frac{Support(A \& B) - Support(A) Support(B)}{ max[Support(AB) (1-Support(A)), Support(A)(Support(B)-Support(AB))]}$$
Ця вправа є частиною курсу
Маркет-баcкет аналіз у Python
Інструкції до вправи
- Визначте значення підтримки для антецедента і консеквента окремо.
- Визначте підтримку {antecedent, consequent}.
- Завершіть вирази для чисельника і знаменника.
- Завершіть вираз для метрики Чжана.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Define a function to compute Zhang's metric
def zhang(antecedent, consequent):
# Compute the support of each book
supportA = antecedent.____
supportC = consequent.____
# Compute the support of both books
supportAC = np.____(antecedent, consequent).____
# Complete the expressions for the numerator and denominator
numerator = supportAC - supportA*supportC
denominator = ___(supportAC*(1-supportA), supportA*(supportC-supportAC))
# Return Zhang's metric
return numerator / denominator