Heim > Backend-Entwicklung > Python-Tutorial > Explorative Datenanalyse: Den Rückstand durchforsten

Explorative Datenanalyse: Den Rückstand durchforsten

DDD
Freigeben: 2024-12-23 17:50:15
Original
778 Leute haben es durchsucht

In der inspirierenden Geschichte der Six Triple Eight bestand der erste Schritt ihrer Mission darin, einen überwältigenden Rückstand an nicht zugestellter Post zu bewerten und zu organisieren. Diese bis zur Decke aufragenden Stapel mussten kategorisiert und verstanden werden, bevor Fortschritte erzielt werden konnten. In der Welt des modernen maschinellen Lernens ähnelt diese Anfangsphase der Exploratory Data Analysis (EDA).

Für diese Serie replizieren wir diesen Prozess mithilfe eines CSV-Datensatzes, wobei jede Zeile eine Kategorie (z. B. „Technik“, „Geschäft“) und den damit verbundenen Text enthält. Die Kategorien fungieren als Beschriftungen und geben an, wo jeder Textabschnitt hingehört. Tools wie Pandas zur Datenmanipulation, Matplotlib zur Visualisierung, WordCloud für Texteinblicke, Tiktoken zur Token-Analyse und NLTK zur Textverarbeitung helfen uns, unseren Datensatz zu verstehen.

In diesem Schritt werden wir:

  1. Laden Sie die Daten und überprüfen Sie ihre Struktur.

  2. Identifizieren Sie fehlende oder inkonsistente Werte, die die Leistung unseres Modells beeinträchtigen könnten.

  3. Untersuchen Sie die Kategorieverteilungen, um das Gleichgewicht zwischen den Labels zu verstehen.

  4. Visualisieren Sie Worthäufigkeiten in Textdaten, um Muster aufzudecken.

  5. Analysieren Sie die Anzahl der Token mit Tiktoken, um die Komplexität zu messen.

Diese EDA-Phase spiegelt die akribischen Sortierbemühungen der Six Triple Eight wider, die erst einen Sinn im Chaos finden mussten, bevor sie Ordnung schaffen konnten. Indem wir unseren Datensatz im Detail verstehen, legen wir den Grundstein für den Aufbau eines fein abgestimmten LLM, das in der Lage ist, Texte präzise zu kategorisieren und zu interpretieren.

Einführung

Exploratory Data Analysis (EDA) ist vergleichbar mit der Bewältigung eines gewaltigen Datenrückstands – hoch gestapelt, unorganisiert und voller ungenutztem Potenzial. Ähnlich wie die Six Triple Eight-Einheit den überwältigenden Rückstand nicht zugestellter Post während des Zweiten Weltkriegs bewältigte, ist EDA unsere Art, das Chaos zu durchforsten, Erkenntnisse zu gewinnen, Trends zu erkennen und uns auf die nächsten Phasen der Datenanalyse vorzubereiten.

In dieser Erkundung tauchen wir in einen Datensatz von BBC-Nachrichtenartikeln ein, entschlüsseln dessen Struktur, beheben Inkonsistenzen und decken die in den Daten verborgenen Geschichten auf.“

Bewertung des Backlogs: Datensatzübersicht

Zunächst müssen wir den Umfang und die Struktur unseres Datensatzes verstehen. Der Datensatz der BBC-Nachrichtenartikel umfasst 2.234 Einträge, die auf fünf Kategorien verteilt sind: Wirtschaft, Sport, Politik, Technologie und Unterhaltung. Jeder Eintrag hat zwei Hauptfunktionen:

  • Kategorie: Das Thema oder der Abschnitt des Artikels.
  • Text: Der vollständige Inhalt des Artikels.

Um einen klareren Überblick darüber zu erhalten, womit wir arbeiten, haben wir die Daten in einen Pandas DataFrame geladen, eine kurze Inspektion durchgeführt und Folgendes festgestellt:

Bereinigen des Rückstands

Während die Six Triple Eight unsortierte Poststapel in Angriff nahm, müssen auch wir unseren Datensatz organisieren. Der Reinigungsprozess umfasste mehrere wichtige Schritte:

  • Duplikate entfernen
    Doppelte Artikel überfüllten den Datensatz. Nachdem diese Redundanzen identifiziert und beseitigt wurden.

  • Umgang mit fehlenden Werten
    Obwohl unser Datensatz relativ sauber war, haben wir sichergestellt, dass alle potenziellen Nullwerte berücksichtigt wurden und keine leeren Einträge in den endgültigen Daten zurückblieben.“

Aufschlüsselung der Kategorien

Nachdem wir den Rückstand beseitigt hatten, analysierten wir die Verteilung der Artikel über die Kategorien, um dominante Themen zu identifizieren. Folgendes haben wir gefunden:

  • Top-Kategorien: Wirtschaft und Sport teilen sich den größten Anteil mit jeweils 512 Artikeln.

  • Kleinere Kategorien: Unterhaltung, Politik und Technik hatten weniger Artikel, boten aber einzigartige Einblicke.

Die Verteilung bestätigte, dass der Datensatz ausgewogen war, sodass wir uns auf eine tiefere Analyse konzentrieren konnten, ohne uns über ein erhebliches Ungleichgewicht der Kategorien Gedanken machen zu müssen.

Vergrößern: Sportartikel unter der Lupe

Ähnlich wie beim Sortieren von Post nach ihrem Ziel haben wir uns für einen tieferen Einblick auf die Kategorie „Sport“ konzentriert. Ziel war es, den Textinhalt zu analysieren und aussagekräftige Muster zu extrahieren.“

  • Tokenisierung und Entfernung von Stoppwörtern
    Mithilfe der NLTK-Bibliothek haben wir den Text in einzelne Wörter unterteilt und gängige Stoppwörter entfernt (z. B. „und“, „der“, „ist“). Dadurch konnten wir uns auf Wörter mit größerer Bedeutung für die Kategorie konzentrieren.“

  • Worthäufigkeitsanalyse
    Um die häufigsten Begriffe in Sportartikeln zu identifizieren, wurde eine Häufigkeitsverteilung erstellt. Es überrascht nicht, dass Wörter wie „Spiel“, „Team“ und „Spiel“ dominierten, was den Wettbewerbscharakter des Inhalts widerspiegelt.“

Visualisierung der Ergebnisse: Eine Wortwolke
Um die Essenz der Sportartikel einzufangen, haben wir eine Wortwolke erstellt. Die am häufigsten verwendeten Begriffe erscheinen größer und zeichnen ein anschauliches Bild der Kernthemen der Kategorie.“

Exploratory Data Analysis: Digging Through the Backlog

Wichtige Erkenntnisse

So wie die Six Triple Eight den Poststau sorgfältig sortiert und zugestellt haben, hat unser EDA-Prozess eine strukturierte und aufschlussreiche Ansicht des BBC-Nachrichtendatensatzes enthüllt.

Code

!pip install tiktoken
!pip install matplotlib
!pip install wordcloud
!pip install nltk
!pip install pandas

import pandas as pd

df = pd.read_csv('/content/bbc.csv', on_bad_lines='skip')  


df.head()

df.info()

df.describe()

label_count = df['category'].value_counts()


len(df['text'])


df.drop_duplicates(inplace=True)

null_values = df.isnull().sum()

df.dropna(inplace=True)

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from wordcloud import WordCloud
from collections import Counter
import matplotlib.pyplot as plt


nltk.download('punkt')
nltk.download('stopwords')
nltk.download('punkt_tab') 


target_label ="sport"
target_df = df[df['category'] == target_label]



target_word = [ word.lower()  for text in target_df['text']
                 for word in word_tokenize(text)
                 if word.isalnum() and word not in stopwords.words('english')
                   ]

target_word_count = Counter(target_word)


word_cloud = WordCloud().generate_from_frequencies(target_word_count)


plt.figure(figsize=(10, 5))
plt.imshow(word_cloud, interpolation='bilinear')
plt.axis('off')
plt.show()

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonExplorative Datenanalyse: Den Rückstand durchforsten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage