Direkt zum Inhalt
HeimDer blogDatenwissenschaft

28 Top-Interviewfragen für Datenwissenschaftler für alle Ebenen

Hier findest du die besten Fragen und Antworten zu Vorstellungsgesprächen in den Datenwissenschaften für Studenten und Berufstätige, die einen Job suchen.
Aktualisierte 10. Sept. 2024  · 23 Min. lesen

Data Science Interview Header.png

In diesem Beitrag haben wir die am häufigsten gestellten Fragen in den Phasen des statistischen und maschinellen Lernens, der Analyse, der Kodierung und des Interviews mit den Produktverantwortlichen zusammengefasst. Das Üben dieser Interviewfragen für Datenwissenschaftler/innen hilft Studierenden auf der Suche nach einem Praktikum und Berufstätigen auf der Suche nach einem Job, alle Phasen des technischen Interviews zu meistern.

Verdiene eine Python-Zertifizierung

Zeige, dass du ein arbeitsfähiger Datenwissenschaftler in Python bist
Meine Datenkarriere Aufbauen

Nicht-technische Fragen zum Data Science Interview 

Schauen wir uns zunächst einige der allgemeinen Kompetenzfragen an, die du in deinem Vorstellungsgespräch stellen könntest. Hier werden einige der Soft Skills getestet, die du als Datenwissenschaftler/in brauchst: 

Erzähl mir von einer Situation, in der du jemandem ohne technischen Hintergrund ein komplexes Datenkonzept erklären musstest. Wie hast du sichergestellt, dass sie es verstanden haben?

Diese Frage bewertet deine Kommunikationsfähigkeit und deine Fähigkeit, komplexe Themen zu vereinfachen. Hier ist eine Beispielantwort:

In meiner vorherigen Position musste ich unserem Marketingteam das Konzept des maschinellen Lernens erklären. Ich habe die Analogie verwendet, einem Kind beizubringen, verschiedene Obstsorten zu erkennen. Genauso wie du einem Kind viele Beispiele zeigen würdest, um ihm beim Lernen zu helfen, wird ein maschinelles Lernmodell mit Daten trainiert. Diese Analogie hat dazu beigetragen, ein komplexes Konzept leichter verständlich zu machen.

Beschreibe ein Projekt, bei dem du mit einem schwierigen Teammitglied zusammenarbeiten musstest. Wie hast du die Situation gemeistert?

Dabei werden deine Fähigkeiten zur Zusammenarbeit im Team und zur Konfliktlösung getestet. Du könntest das mit etwas wie: 

Bei einem Projekt habe ich mit einem Kollegen zusammengearbeitet, der einen ganz anderen Arbeitsstil hatte. Um unsere Differenzen beizulegen, habe ich ein Treffen vereinbart, um seine Sichtweise zu verstehen. Wir fanden eine gemeinsame Basis in unseren Projektzielen und einigten uns auf einen gemeinsamen Ansatz. Diese Erfahrung lehrte mich den Wert von offener Kommunikation und Empathie in der Teamarbeit.

Kannst du ein Beispiel nennen, bei dem du unter Zeitdruck arbeiten musstest? Wie hast du deine Aufgaben bewältigt und pünktlich geliefert?

Bei dieser Frage geht es um Zeitmanagement und Prioritätensetzung. Hier ist eine Beispielantwort: 

Einmal musste ich eine Analyse innerhalb einer sehr knappen Frist abgeben. Ich habe die wichtigsten Teile des Projekts nach Prioritäten geordnet, dem Team meinen Plan mitgeteilt und mich auf eine effiziente Ausführung konzentriert. Durch die Aufteilung der Aufgabe und die Festlegung von Miniterminen gelang es mir, das Projekt rechtzeitig fertigzustellen, ohne die Qualität zu beeinträchtigen.

Hast du jemals einen großen Fehler in deiner Analyse gemacht? Wie bist du damit umgegangen und was hast du daraus gelernt?

Hier geht es darum, ob du in der Lage bist, Fehler einzugestehen und aus ihnen zu lernen. Du könntest antworten mit: 

In einem Fall habe ich die Ergebnisse eines Datenmodells falsch interpretiert. Als ich meinen Fehler bemerkte, informierte ich sofort mein Team und analysierte die Daten neu. Diese Erfahrung hat mich gelehrt, wie wichtig es ist, Ergebnisse doppelt zu überprüfen und wie wichtig Transparenz am Arbeitsplatz ist.

Das zeigt, dass du dich bemühst, ständig zu lernen und in deinem Bereich relevant zu bleiben. Hier ist ein Beispiel für eine Antwort: 

Ich bleibe auf dem Laufenden, indem ich Fachzeitschriften lese, an Webinaren teilnehme und in Online-Foren mitmache. Außerdem nehme ich mir jede Woche Zeit, um mit neuen Werkzeugen und Techniken zu experimentieren. Das hilft mir nicht nur, auf dem Laufenden zu bleiben, sondern verbessert auch ständig meine Fähigkeiten.

Kannst du uns von einer Zeit erzählen, in der du an einem Projekt mit unklaren oder sich ständig ändernden Anforderungen arbeiten musstest? Wie hast du dich angepasst?

Diese Frage bewertet die Anpassungsfähigkeit und die Problemlösungskompetenz. Du könntest zum Beispiel sagen: 

Bei einem früheren Projekt haben sich die Anforderungen häufig geändert. Ich passte mich an, indem ich eine offene Kommunikation mit den Interessengruppen pflegte, um ihre Bedürfnisse zu verstehen. Ich habe auch agile Methoden eingesetzt, um flexibler vorzugehen, was mir geholfen hat, Änderungen effektiv zu berücksichtigen.

Beschreibe eine Situation, in der du datengestützte Entscheidungen mit anderen Überlegungen (wie ethischen Bedenken, geschäftlichen Anforderungen usw.) abwägen musstest.

Damit wird deine Fähigkeit bewertet, verschiedene Aspekte zu berücksichtigen, die über die reinen Daten hinausgehen. Eine Beispielantwort könnte lauten: 

In meiner letzten Position musste ich die Notwendigkeit datengestützter Entscheidungen mit ethischen Überlegungen in Einklang bringen. Ich habe dafür gesorgt, dass bei der Datennutzung die ethischen Standards und die Datenschutzgesetze eingehalten werden, und ich habe bei Bedarf Alternativen aufgezeigt. Dieser Ansatz half dabei, fundierte Entscheidungen zu treffen und gleichzeitig die ethischen Grenzen zu respektieren.

Allgemeine Fragen zum Data Science Interview

Welche Annahmen sind für eine lineare Regression erforderlich?

Die vier Annahmen für eine lineare Regression sind:

  1. Lineare Beziehung: Es sollte eine lineare Beziehung zwischen der unabhängigen Variable x und der abhängigen Variable y bestehen. 
  2. Unabhängigkeit: Es gibt keine Korrelation zwischen aufeinanderfolgenden Residuen. Sie tritt meist bei Zeitreihendaten auf. 
  3. Homoskedastizität: Auf jedem Niveau von x sollte die Varianz konstant sein. 
  4. Normalität: Die Residuen sind normal verteilt.

Linear Regression.png

Bild von Statology

Du kannst die Konzepte und Anwendungen von linearen Modellen in unserem Kurs Einführung in die lineare Modellierung in Python kennenlernen. 

Wie gehst du mit einem Datensatz um, in dem mehrere Werte fehlen?

Es gibt verschiedene Möglichkeiten, mit fehlenden Daten umzugehen. Das kannst du:

  1. Lass die Zeilen mit fehlenden Werten weg.
  2. Streiche die Spalten mit mehreren fehlenden Werten.
  3. Fülle den fehlenden Wert mit einer Zeichenkette oder einer numerischen Konstante auf. 
  4. Ersetze die fehlenden Werte durch den Durchschnitts- oder Medianwert der Spalte. 
  5. Verwende Mehrfach-Regressionsanalysen, um einen fehlenden Wert zu schätzen.
  6. Verwende mehrere Spalten, um fehlende Werte durch simulierte Durchschnittswerte und Zufallsfehler zu ersetzen.

Lerne, wie du fehlende Daten diagnostizierst, visualisierst und behandelst, indem du den Kurs Handling Missing Data with Imputations in R abschließt.

Wie erklärst du Stakeholdern mit nicht-technischem Hintergrund die technischen Aspekte deiner Ergebnisse?

Zuerst musst du mehr über den Hintergrund des Interessenvertreters erfahren und diese Informationen nutzen, um deine Formulierungen zu ändern. Wenn er einen Finanzhintergrund hat, lerne die gebräuchlichen Begriffe aus dem Finanzwesen und verwende sie, um die komplexe Methodik zu erklären.  

Zweitens musst du viele Grafiken und Schaubilder verwenden. Menschen sind visuelle Lerner, da sie mit kreativen Kommunikationsmitteln viel besser lernen.

explain technical aspects.png

Bild vom Autor

Drittens: Sprich in Form von Ergebnissen. Versuche nicht, die Methoden oder Statistiken zu erklären. Versuche, dich darauf zu konzentrieren, wie sie die Informationen aus der Analyse nutzen können, um das Geschäft oder den Arbeitsablauf zu verbessern.

Ermutige sie schließlich dazu, dir Fragen zu stellen. Die Menschen haben Angst oder schämen sich sogar, Fragen zu unbekannten Themen zu stellen. Schaffe einen zweiseitigen Kommunikationskanal, indem du sie in die Diskussion einbeziehst. 

In unserem Kurs Reporting in SQL lernst du, deine eigenen SQL-Berichte und Dashboards zu erstellen.

Technische Interviewfragen zum Thema Datenwissenschaft

Welche Methoden gibt es, um die richtigen Variablen auszuwählen?

Es gibt drei Hauptmethoden für die Merkmalsauswahl: Filter-, Wrapper- und eingebettete Methoden.

Filter-Methoden

Filtermethoden werden in der Regel in Vorverarbeitungsschritten eingesetzt. Diese Methoden wählen unabhängig von den Algorithmen des maschinellen Lernens Merkmale aus einem Datensatz aus. Sie sind schnell, benötigen weniger Ressourcen und entfernen doppelte, korrelierte und redundante Merkmale.

Filter Methods.png

Bild vom Autor

Einige der verwendeten Techniken sind:  

  • Abweichung Schwellenwert
  • Korrelationskoeffizient
  • Chi-Quadrat-Test
  • Gegenseitige Abhängigkeit

Wrapper-Methoden

Bei Wrapper-Methoden trainieren wir das Modell iterativ mit einer Teilmenge von Merkmalen. Auf der Grundlage der Ergebnisse des trainierten Modells werden weitere Merkmale hinzugefügt oder entfernt. Sie sind rechenintensiver als Filtermethoden, bieten aber eine bessere Modellgenauigkeit. 

Wrapper Methods.png

Bild vom Autor

Einige der verwendeten Techniken sind:

  • Auswahl vorwärts
  • Rückwärts-Eliminierung
  • Bi-direktionale Eliminierung
  • Rekursive Eliminierung 

Eingebettete Methoden

Eingebettete Methoden kombinieren die Eigenschaften von Filter- und Wrapper-Methoden. Der Algorithmus für die Merkmalsauswahl ist Teil des Lernalgorithmus, sodass das Modell über eine integrierte Methode zur Merkmalsauswahl verfügt. Diese Methoden sind schneller, wie die Filtermethoden, genauer wie die Wrapper-Methoden und berücksichtigen auch eine Kombination von Merkmalen.  

Embedded Methods.png

Bild vom Autor

Einige der verwendeten Techniken sind:

  • Regulierung
  • Baumbasierte Methoden

Wie kannst du eine Überanpassung deines Modells vermeiden?

Überanpassung bezieht sich auf ein Modell, das in einem Trainingsdatensatz zu gut trainiert wurde, aber in einem Test- und Validierungsdatensatz versagt.

Du kannst eine Überanpassung vermeiden, indem du:

  1. Das Modell einfach zu halten, indem die Komplexität des Modells verringert wird, weniger Variablen berücksichtigt werden und die Anzahl der Parameter in neuronalen Netzen reduziert wird.
  2. Verwendung von Kreuzvalidierungstechniken.
  3. Trainiere das Modell mit mehr Daten.
  4. Die Datenerweiterung, die die Anzahl der Stichproben erhöht. 
  5. Verwendung von Ensembling (Bagging und Boosting)
  6. Verwendung von Regularisierungstechniken, um bestimmte Modellparameter zu bestrafen, wenn sie zu einer Überanpassung führen könnten.

Nenne die verschiedenen Arten von Beziehungen in SQL

Es gibt vier Haupttypen von SQL-Beziehungen:

  • One-to-One: Es liegt vor, wenn jeder Datensatz einer Tabelle mit nur einem Datensatz in einer anderen Tabelle verbunden ist. 
  • One to Many und Many to One: Das ist die häufigste Verbindung, bei der jeder Datensatz in einer Tabelle mit mehreren Datensätzen in einer anderen verknüpft ist.  
  • Many to Many: Sie liegt vor, wenn jeder Datensatz der ersten Tabelle mit mehr als einem Datensatz in der zweiten Tabelle verknüpft ist und ein einzelner Datensatz in der zweiten Tabelle mit mehr als einem Datensatz in der ersten Tabelle verknüpft sein kann. 
  • Selbstreferenzierende Beziehungen: Sie treten auf, wenn eine Tabelle eine Verbindung mit sich selbst deklarieren muss.

Lerne in unserem Kurs " Explorative Datenanalyse in SQL ", wie du die Tabellen, die Beziehungen zwischen ihnen und die in ihnen gespeicherten Daten untersuchen kannst.

Was sind Dimensionalitätsreduktion und ihre Vorteile?

Die Dimensionalitätsreduktion ist ein Prozess, der den Datensatz von mehreren Dimensionen in weniger Dimensionen umwandelt und dabei ähnliche Informationen beibehält. 

dimensionality reduction.png

Bild vom Autor | Grafiken von howecoresearch

Vorteile der Dimensionalitätsreduktion:

  1. Komprimierung der Daten und Reduzierung des Speicherplatzes. 
  2. Reduzieren Sie die Rechenzeit und ermöglichen Sie uns eine schnellere Datenverarbeitung.  
  3. Sie entfernt überflüssige Funktionen, falls vorhanden. 

Verstehe das Konzept der Dimensionalitätsreduktion und beherrsche die Techniken, indem du den Kurs Dimensionalitätsreduktion in Python übst.

Was ist das Ziel von A/B-Tests?

AB Testing.png

Bild vom Autor

A/B-Tests machen das Rätselraten überflüssig und helfen uns, datengestützte Entscheidungen zu treffen, um das Produkt oder die Website zu optimieren. Dabei werden randomisierte Experimente durchgeführt, um zwei oder mehr Versionen von Variablen (Webseiten, App-Funktionen usw.) zu analysieren und herauszufinden, welche Version die meisten Besucher/innen und Geschäftskennzahlen bringt.

In unserem Kurs Kundenanalyse und A/B-Tests in Python lernst du, wie du A/B-Tests erstellst, durchführst und analysierst.

Data Science Coding Interview Fragen

Wenn du ein Wörterbuch mit vielen Wurzeln und einen Satz hast, stamme alle Wörter des Satzes mit der Wurzel, die sie bildet.

Stemming wird häufig in der Text- und Stimmungsanalyse verwendet. In dieser Frage sollst du eine Python-Funktion schreiben, die bestimmte Wörter aus der Liste in ihre Stammform umwandelt - Interview Query.

Eingabe:

Die Funktion nimmt zwei Argumente entgegen: eine Liste von Stammwörtern und einen Satz.  

roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"

Ausgabe:

Es wird den Satz mit den Stammwörtern zurückgeben. 

"the cat was rat by the bat"

Bevor du mit dem Schreiben des Codes beginnst, musst du verstehen, dass wir zwei Aufgaben durchführen: prüfen, ob das Wort einen Wortstamm hat und ihn ersetzen. 

  1. Du wirst den Satz in Wörter zerlegen.
  2. Führe die äußere Schleife über jedes Wort in der Liste und die innere Schleife über die Liste der Wortstämme aus.
  3. Prüfe, ob das Wort mit dem Wortstamm beginnt. Python stellt uns die Funktion `startswith()` zur Verfügung, um diese Aufgabe zu erfüllen. 
  4. Wenn das Wort mit dem Wortstamm beginnt, ersetze das Wort mit Hilfe eines Listenindexes durch den Wortstamm. 
  5. Verbinde alle Wörter, um einen Satz zu bilden. 
roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"


def replace_words(roots, sentence):
    words = sentence.split(" ")

    # looping over each word
    for index, word in enumerate(words):
        # looping over each root
        for root in roots:
            # checking if words start with root
            if word.startswith(root):
                # replacing the word with its root
                words[index] = root
    return " ".join(words)


replace_words(roots, sentence)


# 'the cat was rat by the bat'

Prüfen, ob String ein Palindrom ist

Bei der Zeichenkette text wird True zurückgegeben, wenn es ein Palindrom ist, sonst False.

Nachdem alle Buchstaben verkleinert und alle nicht alphanumerischen Zeichen entfernt wurden, sollte das Wort vorwärts und rückwärts gleich lauten.

String is Pallindrome.png

Bild vom Autor

Python bietet einfache Möglichkeiten, diese Herausforderung zu lösen. Du kannst den String entweder als iterable behandeln und ihn mit text[::-1] umkehren oder die eingebaute Methode reversed(text) verwenden.

  1. Als erstes wirst du den Text absenken.
  2. Bereinige den Text, indem du nicht-alphanumerische Zeichen mit Regex entfernst. 
  3. Wende den Text mit [::-1] um.
  4. Vergleiche den bereinigten Text mit dem umgekehrten Text.  
import re

def is_palindrome(text):
    # lowering the string
    text = text.lower()
   
    # Cleaning the string
    rx = re.compile('\W+')
    text = rx.sub('',text).strip()
   
    # Reversing and comparing the string
    return text == text[::-1]

Bei der zweiten Methode ersetzt du einfach den umgekehrten Text durch ''.join(reversed(text)) und vergleichst ihn mit dem bereinigten Text. 

Beide Methoden sind ganz einfach. 

def is_palindrome(text):
    # lowering the string
    text = text.lower()
   
    # Cleaning the string
    rx = re.compile('\W+')
    text = rx.sub('',text).strip()
   
    # Reversing the string
    rev = ''.join(reversed(text))
    return text == rev

Ergebnisse:

Wir geben die Liste des Wortes an die Funktion is_palindrome() weiter und drucken die Ergebnisse aus. Wie du siehst, hat die Funktion "Level" und "Radar" auch mit Sonderzeichen als Palindrome erkannt. 

# Test cases
List = ['Anna', '**Radar****','Abid','(Level)', 'Data']

for text in List:
    print(f"Is {text} a palindrome? {is_palindrome(text)}")


# Is Anna a palindrome? True
# Is **Radar**** a palindrome? True
# Is Abid a palindrome? False
# Is (Level) a palindrome? True
# Is Data a palindrome? False

Bereite dich auf deine nächsten Vorstellungsgespräche vor, indem du mit unserem interaktiven Kurs Fragen für Vorstellungsgespräche in Python übst.

Finde das zweithöchste Gehalt

Es ist leicht, den höchsten und den niedrigsten Wert zu finden, aber schwer, den zweithöchsten oder den n-ten höchsten Wert zu finden. 

In der Frage wird dir eine Datenbanktabelle vorgelegt, die aus id und base_salary besteht. Du wirst die SQL-Abfrage schreiben, um das zweithöchste Gehalt zu finden. 

SQL query.png

Bild vom Autor

In dieser Abfrage findest du die eindeutigen Werte und ordnest sie vom höchsten zum niedrigsten Wert. Dann benutzt du LIMIT 1, um nur den höchsten Wert anzuzeigen. Am Ende versetzt du den Wert um 1, um die zweithöchste Zahl anzuzeigen. 

Du kannst auch den Wert OFFSET ändern, um das n-te höchste Gehalt zu erhalten. 

SELECT DISTINCT base_salary AS "Second Highest Salary"
FROM employee
ORDER BY base_salary DESC
LIMIT 1
OFFSET 1;

Das zweithöchste Grundgehalt beträgt 8.500.

sql salary.png

Finde die doppelten Emails

In dieser Frage sollst du eine Abfrage schreiben, die alle doppelten E-Mails anzeigt. 

Duplicate Emails database table.png

Bild vom Autor

In dieser Abfrage wirst du eine email Spalte anzeigen und die Tabelle nach email gruppieren. Danach werden wir die HAVING Klausel verwenden, um E-Mails zu finden, die mehr als einmal erwähnt werden. 

HAVING wird als Ersatz für die Anweisung WHERE in Verbindung mit Aggregationen verwendet.

SELECT email
FROM employee_email
GROUP BY email
HAVING COUNT(email) > 1;

Nur "matt@hotmail.com" kommt mehr als einmal vor.

sql email.png

Schreibe wartbaren SQL-Code, um geschäftliche Fragen zu beantworten, indem du den Kurs "Applying SQL to Real-World Problems " belegst. 

FAANG Data Science Frage

Facebook Data Science Interview Frage

Facebook Composer, das Posting-Tool, ist von 3 % Posts pro Nutzer im letzten Monat auf 2,5 % Posts pro Nutzer heute gefallen. Wie würdest du untersuchen, was passiert ist?

Abid's Facebook composer.png

Bild vom Autor

Der Beitrag von vor einem Monat fiel von 3% auf 2,5% heute. Bevor du zu einer Schlussfolgerung kommst, musst du den Kontext des Problems klären. 

Du musst Fragen stellen:

  • Ist heute ein Wochentag?
  • War heute vor einem Monat ein Wochenende?
  • Gibt es besondere Anlässe, Ereignisse oder saisonale Besonderheiten? 
  • Gibt es einen allmählichen Abwärtstrend oder ein einmaliges Ereignis?

Im zweiten Teil musst du erläutern, was der Grund für den Rückgang ist. Ist die Zahl der Nutzer gestiegen oder die Zahl der Beiträge gesunken? Danach wird der/die Interviewer/in darum bitten, eine Diskussion mit einer oder beiden Begründungen zu beginnen. 

Wie sieht deiner Meinung nach die Verteilung der Zeit aus, die du pro Tag auf Facebook verbringst? Welche Kennzahlen würdest du verwenden, um diese Verteilung zu beschreiben?

Bei der Verteilung der Zeit, die pro Tag auf Facebook verbracht wird, kann man davon ausgehen, dass es zwei Gruppen geben könnte:

  1. Menschen, die schnell durch den Feed scrollen, ohne zu viel Zeit zu verbringen.
  2. Superuser, die viel Zeit auf Facebook verbringen.

Für den zweiten Teil musst du statistisches Vokabular verwenden, um die Verteilung zu beschreiben, wie z. B.:

  1. Mitte: Mittelwert, Median und Modus
  2. Streuung: Standardabweichung, Interquartilsabstand und Spanne
  3. Form: Schiefe, Kurtosis und uni- oder bimodale Form
  4. Ausreißer

Schreibe einen Pandas-Code für einen Datensatz mit Testergebnissen, um den kumulativen Prozentsatz der Schüler/innen zu ermitteln, die innerhalb der Bereiche <50, <75, <90 und <100 bewertet wurden.

In dieser Frage schreibst du Pandas-Code, um die Punktzahl zunächst in verschiedene Bereiche zu unterteilen und dann den Prozentsatz der Schüler zu berechnen, die die Punktzahl in diesen Bereichen erreichen. 

Eingabe:

Unser Datensatz hat die Spalten user_id, grade und test_score. 

Dataset Test Score.png

Bild vom Autor 

Ausgabe:

Du wirst die Funktion schreiben, die die Spalten grade und test_score verwendet. Und zeige den Datenrahmen mit Noten, Bereichsnoten und dem kumulativen Prozentsatz der Schüler, die Bereichsnoten erhalten haben, an.  

dataset grades.png

Bild vom Autor

  1. Mit der Funktion pandas.cut() konvertierst du die Punktzahlen in Bucket Scores, indem du die Bins und Labels der Buckets verwendest. 
  2. Berechne die Größe der einzelnen Gruppen (Note und Test_score).
  3. Um den Prozentsatz zu berechnen, brauchen wir Zähler (kumulierte Summe) und Nenner (Summe aller Werte).
  4. Konvertiere den Bruchwert in einen richtigen Prozentsatz, indem du ihn mit 100 multiplizierst und "%" hinzufügst.
  5. Setze den Index zurück und benenne die Spalte in "Prozent" um.
def bucket_test_scores(df):
    bins = [0, 50, 75, 90, 100]
    labels = ["<50", "<75", "<90", "<100"]

    # converting the scores into buckets
    df["test_score"] = pd.cut(df["test_score"], bins, labels=labels, right=False)

    # Calculate size of each group, by grade and test score
    df = df.groupby(["grade", "test_score"]).size()

    # Calculate numerator and denominator for percentage
    NUM = df.groupby("grade").cumsum()
    DEN = df.groupby("grade").sum()

    # Calculate percentage, multiply by 100, and add %
    percentage = (NUM / DEN).map(lambda x: f"{int(100*x):d}%")

    # reset the index
    percentage = percntage.reset_index(name="percentage")
    return percentage


bucket_test_scores(df)

Du hast das perfekte Ergebnis mit einem Eimertestergebnis und dem Prozentsatz. 

dataset grades.png

Lerne im Kurs Datenmanipulation mit Pandas, wie man Daten bereinigt, Statistiken berechnet und Visualisierungen erstellt.

Amazon Data Science Interview Frage

Erkläre Konfidenzintervalle

Das Konfidenzintervall ist ein Bereich von Schätzungen für einen unbekannten Parameter, von dem du erwartest, dass er in einen bestimmten Prozentsatz der Zeit fällt, wenn du das Experiment noch einmal durchführst oder die Grundgesamtheit in ähnlicher Weise neu beprobst.

confidence intervals.png

Bild von omnicalculator

Das Konfidenzniveau von 95 % wird häufig in statistischen Experimenten verwendet und gibt an, in wie viel Prozent der Fälle du erwartest, einen geschätzten Parameter zu reproduzieren. Die Konfidenzintervalle haben eine obere und untere Grenze, die durch den Alpha-Wert festgelegt wird.

Du kannst Konfidenzintervalle für verschiedene statistische Schätzungen verwenden, z. B. für Proportionen, Mittelwerte der Bevölkerung, Unterschiede zwischen Mittelwerten oder Proportionen der Bevölkerung und Schätzungen der Variation zwischen Gruppen.

Baue die Grundlagen der Statistik auf, indem du unseren Kurs Statistisches Denken in Python (Teil 1) absolvierst.

Wie verwaltest du einen unausgewogenen Datensatz?

Im unausgewogenen Datensatz sind die Klassen ungleich verteilt. Im Datensatz zur Betrugserkennung gibt es zum Beispiel nur 400 Betrugsfälle im Vergleich zu 300.000 Nicht-Betrugsfällen. Die unausgewogenen Daten führen dazu, dass das Modell bei der Aufdeckung von Betrug schlechter abschneidet. 

unausgeglichener Datensatz.png

Bild vom Autor

Um mit unausgewogenen Daten umzugehen, kannst du verwenden:

  1. Undersampling
  2. Oversampling
  3. Synthetische Daten erstellen
  4. Kombination aus Unter- und Überbeprobung

Undersampling

Die Merkmale der Mehrheitsklasse werden neu gesampelt, damit sie den Merkmalen der Minderheitsklasse entsprechen. 

Im Datensatz zur Aufdeckung von Betrug sind beide Klassen gleich groß, d.h. 400 Stichproben. Mit imblearn.under_sampling kannst du deinen Datensatz ganz einfach resampeln.

from imblearn.under_sampling import RandomUnderSampler
RUS = RandomUnderSampler(random_state=1)
X_US, y_US = RUS.fit_resample(X_train, y_train)

Oversampling

Die Merkmale der Minderheitsklasse werden neu gesampelt, damit sie den Merkmalen der Mehrheitsklasse entsprechen. Die Wiederholung oder die gewichtete Wiederholung der Merkmale der Minderheitenklasse sind einige der üblichen Methoden, um die Daten auszugleichen. Kurz gesagt, beide Klassen werden 300K Proben haben. 

from imblearn.over_sampling import RandomOverSampler

ROS = RandomOverSampler(random_state=0)
X_OS, y_OS = ROS.fit_resample(X_train, y_train)

Synthetische Daten erstellen

Das Problem bei Wiederholungen ist, dass sie keine zusätzlichen Informationen liefern, was zu einer schlechten Leistung der Modelle führt. Um dem entgegenzuwirken, können wir SMOTE (Synthetic Minority Oversampling technique) verwenden, um synthetische Datenpunkte zu erstellen. 

from imblearn.over_sampling import SMOTE

SM = SMOTE(random_state=1)
X_OS, y_OS = SM.fit_resample(X_train, y_train)

Kombination aus Unter- und Überbeprobung

Um die Modellverzerrungen und die Leistung zu verbessern, kannst du eine Kombination aus Over- und Under-Sampling verwenden. Wir werden SMOTE für das Over-Sampling und EEN (Edited Nearest Neighbours) für die Bereinigung verwenden. 

Die imblearn.combine stellt uns verschiedene Funktionen zur Verfügung, die automatisch beide Stichprobenfunktionen ausführen. 

from imblearn.combine import SMOTEENN

SMTN = SMOTEENN(random_state=0)
X_OUS, y_OUS = SMTN.fit_resample(X_train, y_train)

Schreibe eine Abfrage, die die Gesamtzahl der Verkäufe für jedes Produkt für den Monat März 2022 zurückgibt.

Als Data Scientist wirst du eine ähnliche Art von Abfrage schreiben, um die Daten zu extrahieren und eine Datenanalyse durchzuführen. In dieser Aufgabe verwendest du entweder die WHERE Klausel mit Vergleichszeichen oder WHERE mit BETWEEN Klausel, um eine Filterung durchzuführen.

Tabelle: Bestellungen

Bestellungen SQL-Tabelle.png

Bild vom Autor

Beispielhafte Ausgabe:

Sample output.png

Bild vom Autor

  1. Du wirst die Produkt-ID und die Summe der Menge aus der Tabelle Bestellungen anzeigen. 
  2. Filtere die Daten vom Datum '2022-03-01' bis '2022-04-01' mit Hilfe der WHERE- und AND-Klausel heraus. Du kannst auch BETWEEN verwenden, um eine ähnliche Aktion durchzuführen. 
  3. Verwende eine Gruppe nach product_id, um die Gesamtzahl der Verkäufe für jedes Produkt zu erhalten.
SELECT product_id,
      SUM(qty)
FROM orders
WHERE order_dt >= '2022-03-01'
  AND order_dt < '2022-04-01'
GROUP BY product_id;

Google Data Science Interview Frage

Wie würdest du die Leistung des Modells bewerten, wenn die Labels bei einem Clustering-Projekt bekannt sind?

Beim unüberwachten Lernen kann es schwierig sein, die Leistung des Clustering-Projekts zu ermitteln. Das Kriterium für ein gutes Clustering sind unterschiedliche Gruppen mit wenig Ähnlichkeit. 

Da es bei Clustermodellen keine Genauigkeitsmetrik gibt, verwenden wir entweder die Ähnlichkeit oder die Unterscheidbarkeit der Gruppen, um die Leistung des Modells zu bewerten.  

clustering performance.png

Bild aus der scikit-learn Dokumentation

Die drei am häufigsten verwendeten Kennzahlen sind:

  • Silhouette Score
  • Calinski-Harabaz-Index
  • Davies-Bouldin Index

Silhouette Score

Sie wird anhand des mittleren Intra-Cluster-Abstands und des mittleren Nearest-Cluster-Abstands berechnet. 

Wir können Scikit-Learn verwenden, um die Metrik zu berechnen. Der Silhouette Score liegt zwischen -1 und 1, wobei höhere Werte eine geringere Ähnlichkeit zwischen Gruppen und unterschiedlichen Clustern bedeuten. 

from sklearn import metrics


model = KMeans().fit(X)
labels = model.labels_

metrics.silhouette_score(X, labels)

Calinski-Harabaz Index

Sie berechnet die Unterscheidbarkeit zwischen Gruppen anhand der Streuung zwischen den Clustern und der Streuung innerhalb der Cluster. Die Kennzahl hat keine Begrenzung und genau wie der Silhouette Score bedeutet eine höhere Punktzahl eine bessere Modellleistung. 

metrics.calinski_harabasz_score(X, labels)

Davies-Bouldin Index

Sie berechnet die durchschnittliche Ähnlichkeit jedes Clusters mit seinem ähnlichsten Cluster. Im Gegensatz zu anderen Metriken bedeutet eine niedrigere Punktzahl eine bessere Modellleistung und eine bessere Trennung zwischen den Clustern.   

metrics.davies_bouldin_score(X, labels)


In unserem Kurs " Clusteranalyse in R" lernst du, wie du hierarchisches und k-means Clustering anwenden kannst.

Es gibt vier Personen in einem Aufzug und vier Stockwerke in einem Gebäude. Wie groß ist die Wahrscheinlichkeit, dass jede Person in einer anderen Etage aussteigt?

4 Personen und 4 Etagen Wahrscheinlichkeitsproblem.png

Bild vom Autor

Wir werden sie benutzen:

probability.png

  • F = Anzahl der Stockwerke
  • P = Anzahl der Personen

Um dieses Problem zu lösen, müssen wir zuerst die Gesamtzahl der Wege finden, um von den Böden herunterzukommen: 44 = 4x4x4x4 = 256 Möglichkeiten.

Berechne dann die Anzahl der Möglichkeiten, wie jede Person in einer anderen Etage aussteigen kann: 4! = 24.

Um die Wahrscheinlichkeit zu berechnen, dass jede Person in einer anderen Etage aussteigt, müssen wir die Anzahl der Möglichkeiten, wie jede Person in einer anderen Etage aussteigt, durch die Gesamtzahl der Möglichkeiten, die Etagen zu verlassen, teilen. 

24/256 = 3/32

Lerne Strategien, um knifflige Wahrscheinlichkeitsfragen mit R zu beantworten, indem du unseren Kurs "Wahrscheinlichkeitsrätsel in R " belegst.

Schreibe eine Funktion, die N Stichproben aus einer Normalverteilung erzeugt und das Histogramm aufzeichnet.

Um N Stichproben aus der Normalverteilung zu erzeugen, kannst du entweder Numpy (np.random.randn(N)) oder SciPy (sp.stats.norm.rvs(size=N)) verwenden. 

Um ein Histogramm zu erstellen, kannst du entweder Matplotlib oder Seaborn verwenden. 

Die Frage ist ganz einfach, wenn du die richtigen Werkzeuge kennst. 

  1. Du wirst mit der Numpy-Funktion randn Stichproben der Normalverteilung erzeugen. 
  2. Zeichne ein Histogramm mit KDE und Seaborn. 
  3. Zeichne ein Histogramm für 10K Stichproben und gib das Numpy-Array zurück. 
import numpy as np
import seaborn as sns

N = 10_000

def norm_dist_hist(N):
    # Generating Random normal distribution samples
x = np.random.randn(N)
    # Plotting histogram
    sns.histplot(x, bins = 20, kde=True);
    return x
   
X = norm_dist_hist(N)

distribution histogram.png

Lerne im Kurs Einführung in die Datenvisualisierung mit Seaborn, wie du in Sekundenschnelle informative und attraktive Visualisierungen erstellst.

Wie du dich auf das Vorstellungsgespräch in den Datenwissenschaften vorbereitest

Data Science Interview weightage .png

Bild vom Autor

Die Data Science Interviews sind in vier bis fünf Phasen unterteilt. Du wirst zu statistischem und maschinellem Lernen, Coding (Python, R, SQL), Verhalten, Produktverständnis und manchmal auch zu Führungsfragen befragt. 

Du kannst dich auf alle Phasen vorbereiten, indem du:

  1. Recherchiere das Unternehmen und die Arbeitsaufgaben: Das wird dir helfen, deine Bemühungen in einem bestimmten Bereich der Datenwissenschaft zu priorisieren. 
  2. Überprüfung früherer Projekte: Der Personalverantwortliche wird deine Fähigkeiten beurteilen, indem er dir Fragen zu deinen Projekten stellt. 
  3. Überarbeitung der Grundlagen der Datenwissenschaft: Wahrscheinlichkeit, Statistik, Hypothesentests, deskriptive und bayesianische Statistik und Dimensionalitätsreduktion. Spickzettel sind der beste Weg, um die Grundlagen schnell zu lernen. 
  4. Übe dich im Programmieren: Nimm an Bewertungstests teil, löse Online-Code-Herausforderungen und lese die am häufigsten gestellten Fragen zum Programmieren. 
  5. Übe dich in End-to-End-Projekten: Frische deine Kenntnisse durch Datenbereinigung, -manipulation, -analyse und -visualisierung auf. 
  6. Lies die häufigsten Fragen im Vorstellungsgespräch: Fragen zum Produktverständnis, statistische, analytische, verhaltensbezogene und Führungsfragen. 
  7. Probevorstellungsgespräch: Übe ein Vorstellungsgespräch mit einem Freund, verbessere dein statisches Vokabular und werde selbstbewusst. 

Lies den Blog zur Vorbereitung auf das Data Science Interview, um zu erfahren, was dich erwartet und wie du das Interview angehst.

Data Science Interview FAQs

Was sind die vier wichtigsten Komponenten der Datenwissenschaft?

Die vier Hauptkomponenten der Datenwissenschaft sind:

  • Geschäftsverständnis und Datenstrategie.
  • Datenaufbereitung (Bereinigung, Imputation, Validierung).
  • Datenanalyse und Modellierung.
  • Datenvisualisierung und Operationalisierung.

Sind Vorstellungsgespräche in den Datenwissenschaften schwer?

Normalerweise, ja. Um ein Vorstellungsgespräch in den Datenwissenschaften zu bestehen, musst du deine Fähigkeiten in verschiedenen Bereichen wie Statistik und Wahrscheinlichkeitsrechnung, Codierung, Datenanalyse, maschinelles Lernen, Produktverständnis und Berichtswesen nachweisen. Unser Leitfaden für Interviewfragen für Data Scientists hilft dir bei der Vorbereitung!

Ist Datenwissenschaft ein stressiger Job?

Das kommt darauf an. Dein ganzes Team/Unternehmen kann sich auf dich verlassen, wenn es darum geht, Analysen und umsetzbare Informationen zu liefern. In manchen Fällen musst du mehrere Aufgaben übernehmen, z. B. als Dateningenieur, Datenanalyst, Ingenieur für maschinelles Lernen, MLOps-Ingenieur, Datenmanager und Teamleiter. Manche Menschen finden das aufregend und herausfordernd, während andere es manchmal stressig und überwältigend finden.

Ist ein Jahr Lernen genug für Data Science?

Vielleicht. Das hängt von deinem Hintergrund ab. Wenn du als Software-Ingenieur arbeitest und umsteigen willst, kannst du das meiste in einem Jahr lernen. Aber wenn du bei Null anfängst, wird es schwer für dich sein, in einem Jahr arbeitsfähig zu werden. Beginne deine Reise als Datenwissenschaftler mit Python und lerne alle Grundlagen in 6 Monaten.

Ist Datenwissenschaft mathematisch schwer?

Ja. Du musst Statistik, Wahrscheinlichkeitsrechnung, Mathematik, Datenanalyse, Datenvisualisierung und das Erstellen und Auswerten von Machine Learning Modellen lernen.

Bietet eine Karriere in der Datenwissenschaft ein gutes Gehalt?

Ja. Laut Glassdoor erhält der Datenwissenschaftler in den USA ein Gesamtgehalt von 124.817 Dollar pro Jahr. Das durchschnittliche Gehalt eines Data Scientist liegt weltweit bei 70.714 $ pro Jahr.

Wie kann ich Arbeitgebern mein Wissen über Datenwissenschaft vermitteln?

Neben dem Absolvieren von Kursen und der Arbeit an realen Data-Science-Projekten ist unsere Data Scientist-Zertifizierung der beste Weg, um dein Fachwissen bei Arbeitgebern unter Beweis zu stellen. Diese branchenweit anerkannte Zertifizierung prüft deine Fähigkeiten in zwei zeitlich begrenzten Prüfungen und einer praktischen Prüfung.

Themen

Datenwissenschaft Kurse

Course

Intermediate Python

4 hr
1.1M
Level up your data science skills by creating visualizations using Matplotlib and manipulating DataFrames with pandas.
See DetailsRight Arrow
Start Course
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

See MoreSee More