K-Means ist ein Verfahren für Supervised Machine Learning.
Falsch
K-Means ist ein Unsupervised Learning-Algorithmus.
Ziel: Datenpunkte in K Cluster gruppieren, ohne dass Labels vorgegeben sind.
Ablauf grob:
Wähle K zufällige Cluster-Zentren
Ordne jeden Punkt dem nächsten Zentrum zu
Berechne neue Zentren als Mittelwert der Punkte
Wiederholen, bis Zentren sich nicht mehr ändern
Supervised Learning braucht Labels, K-Means nicht.
In Python kann jedes algorithmische Problem, das mittels Rekursion gelöst werden kann, auch ohne Rekursion
gelöst werden.
Wahr
Message Authentication Codes (MACs) erlauben es, die Datenintegrität von Nachrichten zu überprüfen.
MACs (Message Authentication Codes) sorgen dafür, dass du prüfen kannst, ob eine Nachricht unterwegs verändert wurde.
Funktioniert so:
Sender berechnet einen MAC aus Nachricht + geheimes Schlüsselwort.
Empfänger berechnet denselben MAC aus Nachricht + gleichem Schlüssel.
Stimmen die MACs überein → Nachricht ist unverändert.
Wichtig: MACs prüfen Integrität & Authentizität, aber sind nicht dasselbe wie digitale Signaturen, die asymmetrisch arbeiten.
Integrität = Unverändertheit
In Python gehören Tupel zu den veränderbaren (engl. mutable) Datentypen.
Digitale Signaturen basieren auf symmetrischer Kryptographie.
Fasch
Digitale Signaturen basieren auf asymmetrischer Kryptographie (Public/Private Key), nicht auf symmetrischer.
Ablauf kurz:
Sender erstellt Hash der Nachricht.
Sender verschlüsselt Hash mit privatem Schlüssel → das ist die Signatur.
Empfänger prüft Signatur mit öffentlichem Schlüssel → verifiziert, dass Nachricht echt ist & unverändert.
Symmetrische Kryptographie (gleicher Schlüssel zum Verschlüsseln & Entschlüsseln) reicht nicht für Signaturen, weil der Empfänger sonst selbst den Schlüssel hätte → kann Nachricht fälschen.
In der objektorientierten Programmierung wird die Instanzierung einer Klasse als Vererbung bezeichnet.
Vererbung
Bedeutet: eine neue Klasse von einer bestehenden Klasse ableiten, um deren Eigenschaften & Methoden zu nutzen.
Instanzierung
Bedeutet: ein Objekt von einer Klasse erstellen.
Funktionen ermöglichen das Programmierkonzept der Rekursion.
In Python gehören Listen zu den veränderbaren (engl. mutable) Datentypen.
Unsupervised Machine Learning kann genutzt werden, wenn Feature-Vektoren aber keine Label vorhanden sind.
Feature-Vektoren = Input, Labels = unbekannt, ML findet Strukturen selbst.
Funktionen ermöglichen es, Codestücke zu generalisieren und wiederzuverwenden.
In Machine Learning ist der Minkowski-Abstand eine wichtige Metrik zur Erfassung des Abstands zweier
Datenpunkte.
D(x,y)=(∑∣xi−yi∣p)1/p = Minkowski
p=1 → wie man auf Straßen geht (Manhattan-Abstand)
p=1
p=2 → gerade Linie durch die Luft (Euklidischer Abstand)
p=2
Es gibt Programmieraufgaben, bei denen ein iteratives Vorgehen eine effizientere Lösung bietet als ein rekursives Vorgehen.
Malware ist eine Sicherheitssoftware, die im Gegensatz zu herkömmlichen Antiviren-Scannern Dateien in
Echtzeit scannt.
In Python gehören Dictionaries zu den Sequenzdatentypen.
(Sequenzdatentypen zum Beispiel Tupel, wo man mit T[0] zugreifen kann)
Dictionarys kann man über den Schlüssel abfragen
Abstract Data Types können in Python durch die Verwendung von Klassen umgesetzt werden.
Abstract Data Type
ADT = nur die Regeln/Funktionen, Klasse = Umsetzung.
Da Python eine interpretierte Programmiersprache ist, kann Python auch nicht Turing-vollständig sein.
Turing-Vollständigkeit bedeutet: Eine Sprache kann jeden berechenbaren Algorithmus ausdrücken, wenn genug Speicher vorhanden ist.
Interpretierte Sprache vs kompilierte Sprache hat damit nichts zu tun.
Python ist Turing-vollständig, weil du Schleifen, Bedingungen, Rekursion und Speicherstrukturen nutzen kannst, um beliebige Berechnungen durchzuführen.
D1 == D2 ist Werteäquivalenz
Werteäquivalenz: interessiert nur der Inhalt, nicht, wo es im Speicher liegt.
Objektäquivalenz: interessiert nur, ob beide Variablen dasselbe Objekt referenzieren.
Last changed18 days ago