Zhangs Kennzahl definieren
Generell schreiben wir eine Funktion, wenn wir eine Aufgabe viele Male ausführen wollen, statt jedes Mal den Einzelfall zu kodieren. In dieser Übung definieren wir eine Funktion für Zhangs Kennzahl, die ein Antezedens und ein Konsequens entgegennimmt und die Kennzahl zurückgibt. Wenn die Probleme im nächsten Kapitel komplexer werden, macht eine bequeme Möglichkeit zur Berechnung einer Kennzahl vieles einfacher.
Beachte, dass numpy als np und pandas als pd importiert wurden. Erinnere dich außerdem daran, dass der Ausdruck für Zhangs Kennzahl in Bezug auf Support-Berechnungen folgendermaßen lautet:
$$Zhang(A \rightarrow B) = $$ $$\frac{Support(A \& B) - Support(A) Support(B)}{ max[Support(AB) (1-Support(A)), Support(A)(Support(B)-Support(AB))]}$$
Diese Übung ist Teil des Kurses
Market Basket Analysis in Python
Anleitung zur Übung
- Definiere die Support-Werte für Antezedens und Konsequens jeweils einzeln.
- Definiere den Support von {antecedent, consequent}.
- Vervollständige die Ausdrücke für Zähler und Nenner.
- Vervollständige den Ausdruck für Zhangs Kennzahl.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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