Wie erkennt man persönliche Daten mit einem ML-Modell?

Oktober 9, 2024

Die Erkennung von persönlich identifizierbaren Informationen (PII) ist eine zentrale Aufgabe in der heutigen datengetriebenen Welt. Unternehmen müssen sicherstellen, dass vertrauliche Informationen geschützt sind, um den Datenschutz und die Privatsphäre ihrer Kunden zu gewährleisten. In diesem Artikel zeigen wir Ihnen, wie Sie ein maschinelles Lernmodell erstellen können, um PII in Datensätzen zu erkennen. Wir verwenden dafür Bibliotheken wie Pandas und Sklearn und folgen einer strukturierten Vorgehensweise, die in mehrere Schritte unterteilt ist.

1. Bibliotheken importieren

Zu Beginn müssen wir die notwendigen Bibliotheken importieren, um das maschinelle Lernmodell erstellen zu können. Wir nutzen Pandas zur Datenmanipulation und Sklearn zur Erstellung und Bewertung des Modells. Der erste Schritt besteht darin, die folgenden Bibliotheken zu importieren:

import sklearnimport pandas as pdimport numpy as np

Falls die benötigten Bibliotheken noch nicht installiert sind, verwenden Sie den folgenden Befehl:

pip install pandas scikit-learn numpy

Durch den Import dieser Bibliotheken stellen wir sicher, dass wir die erforderlichen Werkzeuge zur Verfügung haben, um unsere Daten zu verarbeiten und das maschinelle Lernmodell zu entwickeln. Diese Vorbereitung ist unerlässlich und legt den Grundstein für die nachfolgenden Schritte in unserem Prozess.

2. Datensatz laden

Nachdem die Bibliotheken importiert wurden, ist der nächste Schritt das Laden des Datensatzes. Hierfür nehmen wir an, dass Sie einen Datensatz mit verschiedenen PII-Kategorien wie Namen, Kreditkartennummern, Telefonnummern und Geburtsdaten zur Verfügung haben. Laden Sie den Datensatz mit Pandas und werfen Sie einen Blick auf die ersten Zeilen, um einen Überblick zu gewinnen:

df = pd.read_csv("/content/drive/MyDrive/data.csv")df = df.sample(frac=1)  # Zufälliges Mischen der Datendf.head()

Dieser Schritt hilft Ihnen, einen ersten Eindruck von der Struktur und dem Inhalt des Datensatzes zu bekommen. Dadurch können Sie besser planen, welche Merkmale für das Training des Modells extrahiert werden müssen. Eine sorgfältige Vorbereitung der Daten ist entscheidend, um ein zuverlässiges Modell zu entwickeln, das in der Lage ist, persönlich identifizierbare Informationen genau zu erkennen und zu klassifizieren.

3. Merkmale extrahieren

Um ein effektives maschinelles Lernmodell zu trainieren, ist es wichtig, relevante Merkmale aus dem Datensatz zu extrahieren. Dieser Schritt umfasst die Identifikation und Extraktion von Merkmalen, die sich auf die Länge der Zeichenfolge sowie auf das Vorhandensein bestimmter Zeichen wie ‚@‘, Leerzeichen, ‚/‘ und Dezimalzahlen beziehen. Beispielsweise können Sie die Länge der Zeichenfolge mit folgendem Code extrahieren:

df["noofcharkey"] = df["key"].str.len()

Zusätzlich können Sie feststellen, ob die Zeichenfolge ein ‚@‘ enthält:

abc = pd.DataFrame(df['key'].str.contains("@", case=False))df["key_has_@"] = abc["key"]

Durch die Extraktion dieser und weiterer Merkmale gewinnen Sie wertvolle Informationen, die das Modell dabei unterstützen, PII genau zu erkennen. Diese Merkmale dienen als Eingangsdaten für das maschinelle Lernmodell und beeinflussen dessen Leistungsfähigkeit erheblich.

4. Merkmale zuweisen

Nach der Extraktion der Merkmale müssen diese den Daten zugewiesen werden, um das Modell effizient trainieren zu können. In diesem Schritt definieren wir die Merkmalskolonnen, die als Eingaben für das Modell verwendet werden. Die zugehörigen Variablen, die als Zielvariablen (Labels) fungieren, werden ebenfalls festgelegt. Beispielhaft verwenden wir hier die Merkmale wie Länge der Zeichenfolge und das Vorhandensein von ‚@‘:

cols = ["noofcharkey", "key_has_@", "deimalornot_key", "key_has_/", "space_in_key"]X = df[cols]  # Merkmaley = df["label"]  # Zielvariable

Durch die klare Zuweisung der Merkmale und Labels bereiten wir den Datensatz optimal auf das Training des maschinellen Lernmodells vor. Dieser Schritt stellt sicher, dass das Modell die relevanten Informationen erhält, um präzise Vorhersagen treffen zu können.

5. Modell trainieren

Nachdem die Merkmale zugewiesen wurden, teilen wir die Daten in Trainings- und Testdatensätze auf und trainieren das Modell. Hierfür verwenden wir den RandomForestClassifier aus der Sklearn-Bibliothek, der oft hervorragende Ergebnisse bei Klassifizierungsproblemen liefert. Der folgende Code teilt die Daten auf und trainiert das Modell:

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=99)from sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier()model.fit(X_train, y_train)model.score(X_test, y_test)

Die Aufteilung in Trainings- und Testdatensatz ermöglicht es uns, die Leistung des Modells objektiv zu bewerten. Durch das Training des Modells auf dem Trainingsdatensatz und die anschließende Bewertung auf dem Testdatensatz stellen wir sicher, dass das Modell generalisiert und nicht nur die Trainingsdaten auswendig lernt.

6. Modell speichern

Nach dem erfolgreichen Training des Modells ist es wichtig, dieses zu speichern, damit es für zukünftige Vorhersagen wiederverwendet werden kann. Wir können das Modell als Pickle-Datei oder .pmml-Datei speichern. Pickle-Dateien sind besonders praktisch für die Verwendung in Python, während .pmml-Dateien für die Integration in verschiedene Programmiersprachen geeignet sind. Der folgende Code speichert das Modell:

from sklearn2pmml import sklearn2pmmlsklearn2pmml(model, "pii_detection_model.pmml", with_repr=True)

Durch das Speichern des Modells stellen wir sicher, dass unsere harte Arbeit nicht verloren geht und das Modell jederzeit für Vorhersagen zur Verfügung steht. Dieser Schritt ist entscheidend, um die Einsatzmöglichkeiten des Modells in verschiedenen Umgebungen zu maximieren und langfristige Erfolge zu sichern.

7. PII-Typ erkennen

Mit dem gespeicherten Modell können wir persönlich identifizierbare Informationen (PII) in Texten erkennen. Um den genauen Typ der PII zu bestimmen, können wir ein weiteres Modell erstellen, das ähnlich wie das erste trainiert wird. Dies ermöglicht es uns, spezifische PII-Kategorien wie Namen, Kreditkartennummern oder Telefonnummern zu identifizieren. Der folgende Code zeigt, wie ein solches Modell erstellt und trainiert wird:

cols = ["noofcharkey", "key_has_@", "deimalornot_key", "key_has_/", "space_in_key", "noofchar_value", "space_in_value"]X = df[cols]  # Merkmaley = df["final"]  # Zielvariable

Die Erkennung von persönlich identifizierbaren Informationen (PII) spielt eine maßgebliche Rolle in unserer datengetriebenen Ära. Unternehmen stehen vor der Herausforderung, sensible Daten zu schützen, um den Datenschutz sowie die Privatsphäre ihrer Kunden zu wahren. Dies ist nicht nur eine Frage der Ethik, sondern auch der Einhaltung gesetzlicher Vorschriften wie der DSGVO.

In dem vorliegenden Artikel erläutern wir Schritt für Schritt, wie man ein maschinelles Lernmodell entwickelt, das PII automatisch in Datensätzen identifizieren kann. Hierbei kommen gängige Python-Bibliotheken wie Pandas und Sklearn zum Einsatz. Der Prozess beginnt mit der Datenvorbereitung, bei der die Datensätze gereinigt und formatiert werden. Anschließend folgt die Merkmalsextraktion, bei der relevante Informationen gewonnen werden, die das Modell zur Identifizierung von PII verwendet. Es wird besonders darauf geachtet, dass die Modelle sorgfältig trainiert und validiert werden, um hohe Genauigkeit und Zuverlässigkeit sicherzustellen.

Zusätzlich geben wir Empfehlungen zur kontinuierlichen Überwachung und Verbesserung des Modells, sobald es in der Produktion eingesetzt ist. Dies umfasst auch, wie man auf neue Bedrohungen und Datenveränderungen reagieren kann. Insgesamt bietet dieser Artikel eine umfassende Anleitung, die sowohl für Einsteiger als auch für erfahrene Datenwissenschaftler wertvoll ist und dabei hilft, die Vertraulichkeit sensibler Daten effektiv zu schützen.

Abonnieren Sie unseren wöchentlichen Nachrichtenüberblick.

Treten Sie jetzt bei und werden Sie Teil unserer schnell wachsenden Gemeinschaft.

Ungültige E-Mail-Adresse
Danke für Ihr abonnement.
Wir senden Ihnen in Kürze unsere besten Nachrichten.
Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal