ホームページ > バックエンド開発 > Python チュートリアル > 探索的データ分析: バックログを掘り下げる

探索的データ分析: バックログを掘り下げる

DDD
リリース: 2024-12-23 17:50:15
オリジナル
778 人が閲覧しました

シックス・トリプル・エイトの感動的な物語では、彼らの使命の最初のステップは、大量の未配達メールを評価して整理することでした。天井までそびえ立つこれらのスタックは、進歩を遂げる前に分類され、理解される必要がありました。現代の機械学習の世界では、この初期段階は探索的データ分析 (EDA) に似ています。

このシリーズでは、CSV データセットを使用してこのプロセスを複製します。各行にはカテゴリ (「テクノロジー」、「ビジネス」など) とそれに関連付けられたテキストが含まれています。カテゴリはラベルとして機能し、各テキストがどこに属するかを示します。データ操作のための Pandas、視覚化のための Matplotlib、テキスト分析のための WordCloud、トークン分析のための Tiktoken、テキスト処理のための NLTK などのツールは、データセットを理解するのに役立ちます。

このステップでは、次のことを行います:

  1. データをロードし、その構造を検査します。

  2. モデルのパフォーマンスを妨げる可能性のある欠落値または矛盾した値を特定します。

  3. カテゴリの分布を調査して、ラベル間のバランスを理解します。

  4. テキスト データ内の単語の頻度を視覚化してパターンを明らかにします。

  5. Tiktoken を使用してトークン数を分析し、複雑さを測定します。

この EDA フェーズは、秩序をもたらす前に混乱を理解する必要があった シックス・トリプル・エイトの細心の注意を払った選別の取り組みを反映しています。データセットを詳細に理解することで、テキストを正確に分類して解釈できる、微調整された LLM を構築するための基礎を築きます。

導入

探索的データ分析 (EDA) は、大量に積み上げられ、整理されておらず、未開発の可能性が詰まった、気の遠くなるようなデータのバックログに取り組むことに似ています。第二次世界大戦中にシックス・トリプル・エイト部隊が未配達郵便の圧倒的な未処理の処理に取り組んだのと同じように、EDA は混乱を選別して洞察を明らかにし、傾向を特定し、データ分析の次の段階に備えるための私たちの手段です。

この調査では、BBC ニュース記事のデータセットを詳しく調査し、その構造を解明し、不一致に対処し、データ内に埋もれたストーリーを明らかにします。」

バックログの評価: データセットの概要

まず、データセットの規模と構造を理解する必要があります。 BBC ニュース記事データセットは、ビジネス、スポーツ、政治、テクノロジー、エンターテイメントの 5 つのカテゴリに分散された 2,234 のエントリで構成されています。各エントリには 2 つの主な機能があります:

  • カテゴリ: 記事のトピックまたはセクション。
  • テキスト: 記事の全内容。

作業内容をより明確に把握するために、データを Pandas DataFrame にロードし、簡単な検査を実行して、次のことを発見しました。

バックログのクリーニング

シックス・トリプル・エイトが未分類の郵便の山に取り組んだように、私たちもデータセットを整理する必要があります。クリーニングプロセスには、いくつかの重要な手順が含まれます:

  • 重複の削除
    重複した記事によりデータセットが乱雑になりました。これらの冗長性を特定して削除した後。

  • 欠損値の処理
    私たちのデータセットは比較的きれいでしたが、最終的なデータに空のエントリが残らないように、潜在的な null 値がすべて対処されるようにしました。」

カテゴリを細分化する

バックログが解消されたので、主要なテーマを特定するためにカテゴリ間の記事の分布を分析しました。私たちが見つけたものは次のとおりです:

  • トップ カテゴリ: ビジネスとスポーツが最大のシェアを占めており、それぞれ 512 件の記事が含まれています。

  • 小カテゴリ: エンターテインメント、政治、テクノロジーに関する記事は少なかったが、独自の洞察が得られました。

この分布により、データセットのバランスが取れていることが確認され、カテゴリの不均衡が顕著であることを心配することなく、より深い分析に集中できるようになりました。」

ズームイン: 顕微鏡下のスポーツ記事

郵便物を宛先ごとに分類するのと同じように、さらに詳しく調べるためにスポーツ カテゴリに焦点を当てることにしました。目標は、テキストの内容を分析し、意味のあるパターンを抽出することでした。」

  • トークン化とストップワードの削除
    NLTK ライブラリを使用して、テキストを個々の単語にトークン化し、一般的なストップワード (「and」、「the」、「is」など) を削除しました。これにより、そのカテゴリにとってより重要な単語に焦点を当てることができました。」

  • 単語頻度分析
    スポーツ記事で最も一般的な用語を特定するために頻度分布が作成されました。当然のことながら、コンテンツの競争的な性質を反映して、「試合」、「チーム」、「ゲーム」などの単語が優勢でした。」

  • 調査結果の視覚化: ワードクラウド
スポーツ記事の本質を捉えるために、ワードクラウドを生成しました。最も頻繁に使用される用語が大きく表示され、カテゴリの中核テーマが鮮明に描かれています。」


Exploratory Data Analysis: Digging Through the Backlog

重要なポイント

シックス・トリプル・エイトが未処理の郵便物を細心の注意を払って分類して配信したのと同じように、私たちのEDAプロセスはBBCニュース・データセットの構造化された洞察力に富んだビューを明らかにしました。

コード


!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()

ログイン後にコピー

以上が探索的データ分析: バックログを掘り下げるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート