検索
ホームページバックエンド開発Python チュートリアルPython を使用した探索的データ分析 (EDA): データから洞察を明らかにする

EXPLORATORY DATA ANALYSIS (EDA) WITH PYTHON: UNCOVERING INSIGHTS FROM DATA

Python を使用した探索的データ分析 (EDA): データから洞察を明らかにします。

はじめに
探索的データ分析 (EDA) は、アナリストが洞察を明らかにし、さらなるモデリングのためのデータを準備できるため、データ分析において非常に重要です。この記事では、データの理解を深めるために、Python で利用できるさまざまな EDA テクニックとツールについて詳しく説明します。データセットのクリーニング/処理から、結果の視覚化、データを使ってストーリーを伝えるための Python の使用まで。

探索的データ分析とは何ですか?

探索的データ分析 (EDA) は、データセットを分析してその主な特徴を理解する方法です。これには、視覚的および統計的手法を通じてデータの特徴を要約し、パターンを検出し、関係を明らかにすることが含まれます。 EDA は、洞察を得て、さらなる分析のための仮説を立てるのに役立ちます。

Python の探索的データ分析 (EDA) は、データから洞察を明らかにするために不可欠なさまざまな手法を採用しています。基本的なテクニックの 1 つは、Matplotlib や Seaborn などのライブラリを使用したデータの視覚化です。これらのツールを使用すると、データ サイエンティストは、データセット内の分布と関係を理解するために重要な、散布図、ヒストグラム、箱ひげ図などのさまざまな種類のプロットを作成できます。

データを視覚化することで、アナリストは数値分析だけでは明らかではない傾向、外れ値、パターンを特定できます。

EDA のもう 1 つの重要なテクニックは、主に Pandas ライブラリによって促進されるデータのクリーニングと操作です。これには、欠損値の処理、データのフィルタリング、および洞察を要約するための集計関数の採用によるデータセットの処理が含まれます。 「groupby」などの関数を適用すると、ユーザーはデータを意味のあるカテゴリに分類できるため、より明確な分析が容易になります。さらに、相関分析などの統計手法を組み込むことで、変数間の関係をさらに理解できるようになり、より構造化された分析でテストできる仮説を立てるのに役立ちます。

Python を使用して EDA を実行する方法

ステップ 1: Python ライブラリをインポートする

Python を使用した ML の最初のステップは、ライブラリを使用してデータを理解し、操作することです。このリンクを使用して、Kaggle Web サイトでデータセットを取得できます: https://www.kaggle.com/datasets/sukhmanibedi/cars4u
データの読み込み、統計分析、視覚化、データ変換、マージと結合など、分析に必要なすべてのライブラリをインポートします。

Pandas と Numpy はデータ操作と数値計算に使用されています
Matplotlib と Seaborn はデータの視覚化に使用されています。
コード:
パンダを pd としてインポート
numpy を np
としてインポート matplotlib.pyplot を plt
としてインポート Seaborn を SNS としてインポート
警告を無視するには
インポート警告
warnings.filterwarnings('ignore')

ステップ 2: データセットの読み取り

Python Pandas ライブラリは、画像、.csv、.xlsx、.sql、.pickle、.html、.txt などのファイルからデータを pandas DataFrame にロードするための幅広い可能性を提供します。
ほとんどのデータは、CSV ファイルの表形式で入手できます。おしゃれでアクセスしやすいです。 read_csv() 関数を使用すると、データを pandas DataFrame に変換できます。
この記事では、中古車価格を予測するデータを例に挙げています。このデータセットでは、中古車の価格と、EDA が車の価格に影響を与える要因の特定にどのように重点を置いているかを分析しようとしています。データは DataFrame データに保存されました。
data = pd.read_csv("used_cars.csv")

データの分析

推論を行う前に、データ内のすべての変数を調べてデータを聞きます。
データ理解の主な目標は、行と列の数、データ内の値、データ型、データセット内の欠損値を含む、データに関する一般的な洞察を獲得することです。
形状 – 形状は、データセット内の観測値 (行) と特徴量 (列) の数を表示します
データセットには 7253 の観測値と 14 の変数があります
head() はデータセットの上位 5 つの観測値を表示します
data.head()

tail() はデータセットの最後の 5 つの観測値を表示します
data.tail()
info() は、各列のレコード数、null を含むデータ、null でないデータ、データ型、データセットのメモリ使用量など、データ型とデータに関する情報を理解するのに役立ちます

data.info()
data.info() は、変数 Mileage、Engine、Power、Seats、New Price、および Price に欠損値があることを示します。 Mileage や Power などの数値変数のデータ型は次のとおりです。 float64 と int64。 Location、Fuel_Type、Transmission、Owner Type などのカテゴリ変数はオブジェクト データ型です。

重複を確認してください

nunique() は、各列のいくつかの一意の値とデータの説明に基づいて、データ内の連続列とカテゴリ列を識別できます。重複したデータは、さらなる分析に基づいて処理または削除できます。
data.nunique()

https://www.analyticsvidhya.com/blog/2022/07/step-by-step-exploratory-data-analysis-eda-using-python/

欠損値の計算

isnull() は、データ内の null 値を識別するためにすべての前処理ステップで広く使用されています
この例では、data.isnull().sum() を使用して、各列の欠落レコードの数を取得します
data.isnull().sum()

以下のコードは、各列の欠損値の割合を計算するのに役立ちます
(data.isnull().sum()/(len(data)))*100

列 New_Price と Price の欠損値の割合は、それぞれ ~86% と ~17% です。

ステップ 3: データ削減

一部の列または変数は、分析に価値を追加しない場合は削除できます。
私たちのデータセットでは、列 S.No には、従属変数を予測する予測力がないと仮定して、ID 値のみが含まれています。

S.No.を削除します。データからの列

data = data.drop(['S.No.'], axis = 1)
data.info()

分析に必要な列を追加する必要があるため、特徴エンジニアリングを開始します。

ステップ 4: 特徴量エンジニアリング

特徴量エンジニアリングとは、機械学習または統計モデリングを使用して予測モデルを作成する際に、ドメイン知識を使用して生データから最も関連性の高い変数を選択して変換するプロセスを指します。特徴エンジニアリングの主な目標は、生データから意味のあるデータを作成することです。

ステップ 5: フィーチャーの作成

データセット内の変数 Year と Name を試してみましょう。サンプルデータを見ると、「年式」列が車の製造年を示しています。
車の年齢は車の価格に寄与する要素であるため、年形式の場合は車の年齢を見つけるのは困難です。
車の年式がわかる新コラム「Car_Age」のご紹介
datetime インポート日から
date.today().year
data['Car_Age']=date.today().year-data['年']
data.head()

現在のデータでは、車の名前は価格を予測するのにあまり役立ちません。ただし、この列を処理して、ブランド名とモデル名を使用して重要な情報を抽出することができます。名前を分割して、新しい変数「Brand」と「Model」を導入しましょう
data['ブランド'] = data.Name.str.split().str.get(0)
data['モデル'] = data.Name.str.split().str.get(1) data.Name.str.split().str.get(2)
データ[['名前','ブランド','モデル']]

ステップ 6: データのクリーニング/ラングリング
変数の名前の中には、関連性がなく、理解しにくいものもあります。一部のデータにはデータ入力エラーがあり、一部の変数にはデータ型の変換が必要な場合があります。データ内のこの問題を修正する必要があります。
例では、ブランド名「いすゞ」「ISUZU」「ミニ」「ランド」は間違っているようです。

これは修正する必要があります

print(data.Brand.unique())
print(data.Brand.nunique())
searchfor = ['いすゞ' ,'いすゞ','ミニ','ランド']
data[data.Brand.str.contains('|'.join(searchfor))].head(5)
data["ブランド"].replace({"ISUZU": "いすゞ", "Mini": "ミニクーパー","Land":"ランドローバー"}, inplace=True)
基本的なデータ分析、フィーチャリング、データのクリーンアップを行いました。

EDA プロセスに移りましょう

探索的データ分析の基礎について読む: https://www.analyticsvidhya.com/blog/2021/11/fundamentals-of-exploratory-data-analysis/

ステップ 7: EDA の探索的データ分析

探索的データ分析とは、データの初期調査を実行してパターンを発見し、概要統計とグラフ表現を利用して仮説を確認する重要なプロセスを指します。

• EDA を利用して、特定のデータの異常値、パターン、傾向をチェックできます。

• EDA は、データ内の意味のあるパターンを見つけるのに役立ちます。

• EDA は、ビジネス上の問題を解決するためにデータセットに対する深い洞察を提供します。

• EDA はデータセット内の欠損値を代入する手がかりを提供します

ステップ 8: 統計の概要

この情報では、データについて簡単かつ簡単に説明します。
個数、平均値、標準偏差、中央値、最頻値、最小値、最大値、範囲、標準偏差などを含めることができます。

統計の概要は、データに外れ値、データ入力エラー、データの分布 (データが正規分布しているか左右に偏っているかなど) があるかどうかを識別するための高レベルのアイデアを提供します

Python では、describe() を使用してこれを実現できます
description() 関数はデータのすべての統計概要を提供します
説明する() ; int、float
などの数値データ型に属するデータの統計概要を提供します。 data.describe().T

統計の概要から、以下の結果が推測できます:
• 年式の範囲は 1996 年から 2019 年で、中古車には最新モデルと古いモデルの両方が含まれていることを示す範囲内で最高値を示しています。

• 中古車の平均走行キロ数は約 58,000 キロメートルです。最大値が 650000 KM であることは外れ値の証拠を示しているため、範囲は最小値と最大値の間に大きな差があることを示しています。このレコードは削除できます。

• 走行距離の最小値は、走行距離 0 の車は販売されないことを示しています。これはデータ入力の問題のようです。
• エンジンとパワーに外れ値があり、データが右に偏っているようです。

• 車の平均座席数は 5 です。車の座席は価格に大きく寄与する重要な機能です。

• 中古車の最高価格は 160,000 ですが、これは非常に奇妙で、中古車としては非常に高い価格です。外れ値またはデータ入力の問題がある可能性があります。

describe(include=’all’) は、オブジェクト、カテゴリなどを含むすべてのデータの統計概要を提供します
data.describe(include='all')

EDA を実行する前に、分析を容易にするために数値変数とカテゴリ変数を分離しましょう
cat_cols=data.select_dtypes(include=['object']).columns
num_cols = data.select_dtypes(include=np.number).columns.tolist()
print("カテゴリ変数:")
print(cat_cols)
print("数値変数:")
print(num_cols)
Excel とスプレッドシートの標準偏差に関する記事もお読みください https://www.analyticsvidhya.com/blog/2024/06/standard-deviation-in-excel/

ステップ 9: EDA 単変量分析
一度に 1 つの変数を取得してデータセットを分析/視覚化します:
データの視覚化は不可欠です。データをよりよく理解するには、どのようなグラフをプロットするかを決定する必要があります。この記事では、Matplotlib と Seaborn ライブラリを使用してデータを視覚化します。
Matplotlib は、基本的なグラフを描画するために使用される Python 2D プロット ライブラリです。
Seaborn は、Matplotlib 上に構築された Python ライブラリでもあり、短いコード行を使用して Pandas と Numpy から統計プロットを作成およびスタイル設定します
単変量分析は、カテゴリ変数と数値変数の両方に対して実行できます。

カテゴリ変数は、個数プロット、棒グラフ、円グラフなどを使用して視覚化できます。
数値変数は、ヒストグラム、箱ひげ図、密度プロットなどを使用して視覚化できます。

この例では、連続変数のヒストグラムと箱ひげ図を使用して一変量分析を実行しました。
以下の図では、一部の変数には歪度と外れ値があるため、ヒストグラムと箱ひげ図を使用して変数のパターンを示しています。

num_cols の列:
print(col)
print('Skew :',round(data[col].skew(), 2))
plt.figure(figsize = (15, 4))
plt.subplot(1, 2, 1)
data[col].hist(grid=False)
plt.ylabel('カウント')
plt.subplot(1, 2, 2)
sns.boxplot(x=data[col])
plt.show()

価格と走行キロ数は、このデータが変換されるように正しく偏っており、すべての外れ値は代入中に処理され、カテゴリ変数はカウント プロットを使用して視覚化されます。カテゴリ変数は、自動車の価格に影響を与える要因のパターンを提供します。
fig, axes = plt.subplots(3, 2, figsize = (18, 18))
fig.suptitle('データセット内のすべてのカテゴリ変数の棒グラフ')
sns.countplot(ax = axes[0, 0], x = 'Fuel_Type', data = データ, color = 'blue',
order = data['Fuel_Type'].value_counts().index);
sns.countplot(ax = axes[0, 1], x = '送信', data = データ, color = 'blue',
order = data['送信'].value_counts().index);
sns.countplot(ax = axes[1, 0], x = 'Owner_Type', data = データ, color = 'blue',
order = data['Owner_Type'].value_counts().index);
sns.countplot(ax = axes[1, 1], x = '場所', data = データ, color = 'blue',
order = data['Location'].value_counts().index);
sns.countplot(ax = axes[2, 0], x = 'ブランド', data = データ, color = 'blue',
order = data['Brand'].head(20).value_counts().index);
sns.countplot(ax = axes[2, 1], x = 'モデル', data = データ, color = 'blue',
order = data['Model'].head(20).value_counts().index);
axes[1][1].tick_params(labelrotation=45);
axes[2][0].tick_params(labelrotation=90);
axes[2][1].tick_params(labelrotation=90);

カウントプロットから、以下の観測結果が得られます
• 購入可能な車の数が最も多いのはムンバイで、ハイデラバードとコインバトールがそれに続きます
• 約 53% の車の燃料タイプがディーゼルであり、これはディーゼル車がより高いパフォーマンスを発揮することを示しています
• 車の約 72% がマニュアル トランスミッションを備えています
• 車の約 82% が最初に所有されている車です。これは、ほとんどの購入者がファーストオーナー車の購入を好むことを示しています
• 車の約 20% がマルティ ブランドに属し、続いて車の 19% がヒュンダイに属します
• ワゴンRは、​​購入可能な全モデルの中で1位にランクされています。

結論:
探索的データ分析 (EDA) は、外れ値、主要なパターン、変数間の関係を検出することで、データセットから洞察と知識を明らかにします。これには、データの収集、クリーニング、変換を行って、その属性を明らかにすることが含まれます。
楽しく読んで、一緒にデータ サイエンスの未来を探求しましょう…

以上がPython を使用した探索的データ分析 (EDA): データから洞察を明らかにするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python vs. C:重要な違​​いを理解しますPython vs. C:重要な違​​いを理解しますApr 21, 2025 am 12:18 AM

PythonとCにはそれぞれ独自の利点があり、選択はプロジェクトの要件に基づいている必要があります。 1)Pythonは、簡潔な構文と動的タイピングのため、迅速な開発とデータ処理に適しています。 2)Cは、静的なタイピングと手動メモリ管理により、高性能およびシステムプログラミングに適しています。

Python vs. C:プロジェクトのためにどの言語を選択しますか?Python vs. C:プロジェクトのためにどの言語を選択しますか?Apr 21, 2025 am 12:17 AM

PythonまたはCの選択は、プロジェクトの要件に依存します。1)迅速な開発、データ処理、およびプロトタイプ設計が必要な場合は、Pythonを選択します。 2)高性能、低レイテンシ、および緊密なハードウェアコントロールが必要な場合は、Cを選択します。

Pythonの目標に到達する:毎日2時間のパワーPythonの目標に到達する:毎日2時間のパワーApr 20, 2025 am 12:21 AM

毎日2時間のPython学習を投資することで、プログラミングスキルを効果的に改善できます。 1.新しい知識を学ぶ:ドキュメントを読むか、チュートリアルを見る。 2。練習:コードと完全な演習を書きます。 3。レビュー:学んだコンテンツを統合します。 4。プロジェクトの実践:実際のプロジェクトで学んだことを適用します。このような構造化された学習計画は、Pythonを体系的にマスターし、キャリア目標を達成するのに役立ちます。

2時間の最大化:効果的なPython学習戦略2時間の最大化:効果的なPython学習戦略Apr 20, 2025 am 12:20 AM

2時間以内にPythonを効率的に学習する方法は次のとおりです。1。基本的な知識を確認し、Pythonのインストールと基本的な構文に精通していることを確認します。 2。変数、リスト、関数など、Pythonのコア概念を理解します。 3.例を使用して、基本的および高度な使用をマスターします。 4.一般的なエラーとデバッグテクニックを学習します。 5.リストの概念を使用したり、PEP8スタイルガイドに従ったりするなど、パフォーマンスの最適化とベストプラクティスを適用します。

PythonとCのどちらかを選択:あなたに適した言語PythonとCのどちらかを選択:あなたに適した言語Apr 20, 2025 am 12:20 AM

Pythonは初心者やデータサイエンスに適しており、Cはシステムプログラミングとゲーム開発に適しています。 1. Pythonはシンプルで使いやすく、データサイエンスやWeb開発に適しています。 2.Cは、ゲーム開発とシステムプログラミングに適した、高性能と制御を提供します。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Python vs. C:プログラミング言語の比較分析Python vs. C:プログラミング言語の比較分析Apr 20, 2025 am 12:14 AM

Pythonはデータサイエンスと迅速な発展により適していますが、Cは高性能およびシステムプログラミングにより適しています。 1. Python構文は簡潔で学習しやすく、データ処理と科学的コンピューティングに適しています。 2.Cには複雑な構文がありますが、優れたパフォーマンスがあり、ゲーム開発とシステムプログラミングでよく使用されます。

1日2時間:Python学習の可能性1日2時間:Python学習の可能性Apr 20, 2025 am 12:14 AM

Pythonを学ぶために1日2時間投資することは可能です。 1.新しい知識を学ぶ:リストや辞書など、1時間で新しい概念を学びます。 2。練習と練習:1時間を使用して、小さなプログラムを書くなどのプログラミング演習を実行します。合理的な計画と忍耐力を通じて、Pythonのコアコンセプトを短時間で習得できます。

Python vs. C:曲線と使いやすさの学習Python vs. C:曲線と使いやすさの学習Apr 19, 2025 am 12:20 AM

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。