Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Empfehlungssysteme: Kollaboratives Filtern

Nach dieser Lektion: Ich kann Bücher aus den Ausleihen ähnlicher Personen empfehlen und jeder Empfehlung eine Zahl geben.

Lektion, 55 Min.1 BefehlJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Woher weiß die Bibliothek, was Ihnen gefallen könnte?

Ein Empfehlungssystem schlägt Dinge vor, die einer Person wahrscheinlich gefallen. Beim kollaborativen Filtern stammt der Vorschlag aus dem Verhalten ähnlicher Personen, ohne dass jemand die Bücher selbst beschreiben muss.

Wer dieselben Bücher geliehen hat wie Sie, hat vermutlich einen ähnlichen Geschmack. Was diese Personen noch geliehen haben, ist Ihr nächster Tipp.

Am Ende dieser Lektion

Notiz

Ich kann Bücher aus den Ausleihen ähnlicher Personen empfehlen und jeder Empfehlung eine Zahl geben.

Schlüsselwörter

BegriffWas er bedeutet
Empfehlungssystemein Programm, das Dinge für eine Person vorschlägt
Kollaboratives FilternVorschläge aus dem Verhalten vieler Personen
Ähnlichkeitwie viele Bücher zwei Personen gemeinsam geliehen haben
Empfehlungswertdie Zahl, die zeigt, wie stark ein Buch passt
Kaltstartdas Problem bei neuen Personen ohne Ausleihen

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ähnliche Personen haben ähnliche Bücher geliehen

Die Daten sind einfach: für jede Person die Liste ihrer geliehenen Bücher. Die Ähnlichkeit zweier Personen zählt die Bücher, die in beiden Listen stehen.

Anna und Ben haben Krimi und Kochbuch gemeinsam, ihre Ähnlichkeit ist also 2. Anna und Cem teilen nur den Krimi, ihre Ähnlichkeit ist 1.

Beispiel: Ähnlichkeit zu Anna

PersonAusleihenGemeinsam mit AnnaÄhnlichkeit
BenKrimi, Kochbuch, ReiseberichtKrimi, Kochbuch2
CemKrimi, LyrikKrimi1
DoraRoman, Lyrik, AtlasRoman1
EmilKochbuch, ReiseberichtKochbuch1

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Gemeinsame Bücher zweier Personen zählen

Befehl
docker exec jupyter python3 -c "print(len([b for b in ['Krimi','Kochbuch','Roman'] if b in ['Krimi','Kochbuch','Reisebericht']]))"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Der Empfehlungswert addiert die Ähnlichkeiten

Für ein Buch, das Anna noch nicht kennt, gehen Sie alle anderen Personen durch. Hat eine Person das Buch geliehen, addieren Sie ihre Ähnlichkeit zu Anna.

Das Ergebnis ist der Empfehlungswert. Der Reisebericht hat 3: Ben bringt 2, Emil 1. Das Buch mit dem höchsten Wert ist der erste Tipp.

Ähnlichkeiten zu Anna berechnen

Code: python
# Was haben fünf Personen in der Hochschulbibliothek ausgeliehen?
ausleihen = {
    "Anna": ["Krimi", "Kochbuch", "Roman"],
    "Ben": ["Krimi", "Kochbuch", "Reisebericht"],
    "Cem": ["Krimi", "Lyrik"],
    "Dora": ["Roman", "Lyrik", "Atlas"],
    "Emil": ["Kochbuch", "Reisebericht"],
}

def aehnlichkeit(a, b):
    gemeinsam = 0
    for buch in ausleihen[a]:
        if buch in ausleihen[b]:
            gemeinsam = gemeinsam + 1
    return gemeinsam

for person in ["Ben", "Cem", "Dora", "Emil"]:
    print(person, aehnlichkeit("Anna", person))
# Wer ist Anna am ähnlichsten? Ändern Sie "Anna" in "Emil" und lesen Sie neu.

Ein häufiger Fehler

Warnung

Viele denken, das beliebteste Buch sei die beste Empfehlung. Die Empfehlung gehört aber zu einer Person: Sie zählt nur die Ausleihen ähnlicher Personen, und zwar stärker, je ähnlicher sie sind. Ein Buch, das alle leihen, kann für Anna trotzdem unpassend sein.

Neue Personen haben keine Ausleihen

Wer noch nichts geliehen hat, ist niemandem ähnlich, und das System kann nichts empfehlen. Man nennt das den Kaltstart. Hilfreich ist dann, die beliebtesten Bücher zu zeigen.

Außerdem verstärken Empfehlungen sich selbst: Wer nur sieht, was andere liehen, entdeckt wenig Neues. Zeigen Sie deshalb auch Bücher, die niemand empfohlen bekam.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.