Irisデータセットの探索的データ分析

【概要】このページでは、Irisデータセットを用いた探索的データ分析の基礎を学ぶ。データ構造の理解、基本統計量の算出、複数の可視化手法による特徴把握を通じて、データ分析の基本的な手順と考え方を習得できる。Google Colabで実行可能なプログラムを提供し、実験計画から結果の考察までの一連の流れを解説する。

Colabのページ(ソースコードと説明): https://colab.research.google.com/drive/1Dqsy_3jsz_yoCW35t9cN-h7f6Eu_PwFM?usp=sharing

Irisデータセットの可視化例1
Irisデータセットの可視化例2
Irisデータセットの可視化例3

【目次】

  1. 用語リスト
  2. プログラム利用ガイド
  3. プログラムの説明
  4. 実験・研究スキルの基礎:Google Colabで学ぶ探索的データ分析実験

用語リスト

データ構造

DataFrame

pandasライブラリが提供する表形式のデータ構造である。行と列で構成され、各列に名前(列名)がある。このコードでは、Irisデータセットを格納するために使用されている。

配列(numpy.ndarray)

NumPyライブラリが提供する数値データの集まりである。このコードでは、scikit-learnから読み込んだデータを格納している。

列(カラム)

DataFrameの縦方向のデータである。このコードでは、がく片の長さ、がく片の幅、花弁の長さ、花弁の幅、種名の5つの列がある。

行(サンプル)

DataFrameの横方向のデータである。このコードでは、1つの行が1つの花のデータを表す。150行ある。

基本統計量

平均(mean)

データの合計をデータ数で割った値である。データの中心的な傾向を示す。

標準偏差(std)

データのばらつきの大きさを示す値である。標準偏差が大きいほどデータが平均から離れている。

最小値(min)、最大値(max)

データの中で最も小さい値と最も大きい値である。データの範囲を把握できる。

四分位数

データを小さい順に並べたとき、25%の位置(第1四分位数)、50%の位置(中央値)、75%の位置(第3四分位数)の値である。このコードでは25%、50%、75%として表示される。

相関係数

2つの特徴量の関係の強さを-1から1の値で示す。1に近いほど正の相関(一方が増えると他方も増える)、-1に近いほど負の相関(一方が増えると他方は減る)、0に近いほど関係がないことを示す。

可視化

ヒストグラム

データの分布を棒グラフで表示する。横軸が値の範囲、縦軸が頻度(その範囲に含まれるデータの数)である。

散布図

2つの特徴量の関係を点で表示する。横軸と縦軸にそれぞれ異なる特徴量を配置し、各データを点として描く。

箱ひげ図(box plot)

データの分布を箱と線で表示する。箱の中央の線が中央値、箱の上下が第1・第3四分位数、箱から伸びる線(ひげ)が最小値・最大値付近、点が外れ値を示す。

ヒートマップ

数値データを色の濃淡で表現する図である。このコードでは、相関係数を色で表示している。

ペアプロット

複数の特徴量の組み合わせを一度に表示する散布図の集まりである。このコードでは、最初の2つの特徴量の関係を種別に表示している。

データ処理

欠損値

データが記録されていない部分である。このコードでは、isnull()メソッドで欠損値の有無を確認している。

データ型(dtype)

各列に格納されているデータの種類である。数値(float、int)、文字列(object)などがある。

インデックス

DataFrameの各行を識別するための番号または名前である。このコードでは0から149までの番号が割り振られている。

プログラム利用ガイド

1. このプログラムの利用シーン

データ分析の基礎を学習する際に、Irisデータセットの構造と特性を理解するためのツールである。統計量の確認、可視化手法の実践、種別間の特徴比較を通じて、探索的データ分析の基本を習得できる。

2. 主な機能

3. 基本的な使い方

  1. Colabのページを開く

    Colabのページ(ソースコードと説明): https://colab.research.google.com/drive/1Dqsy_3jsz_yoCW35t9cN-h7f6Eu_PwFM?usp=sharing

  2. データセット情報、統計量、グラフが表示される
  3. 各グラフの説明がコンソールに出力される

4. 便利な機能

プログラムの説明

概要

このプログラムは、Irisデータセットを用いた探索的データ分析を実行する。データの構造把握、統計量の算出、複数の可視化手法による特徴の把握を行う。

主要技術

探索的データ分析(Exploratory Data Analysis, EDA)

John Tukeyが1970年代に開発したデータ分析手法である[2]。データセットの主要な特性を要約し、統計グラフィックスと可視化を用いてパターン、異常値、変数間の関係性を発見する[3]。

Irisデータセット

Ronald Fisherが1936年に導入した分類問題の古典的データセットである[1]。3種のアヤメ(Setosa、Versicolor、Virginica)について、がく片と花弁の長さと幅の4特徴量を150サンプル収録する[4]。scikit-learnライブラリに組み込まれている。

技術的特徴

参考文献

[1] Fisher, R. A. (1936). The Use of Multiple Measurements in Taxonomic Problems. Annals of Eugenics, 7(2), 179-188.

[2] Tukey, J. W. (1977). Exploratory Data Analysis. Addison-Wesley.

[3] IBM. (2024). What is Exploratory Data Analysis? https://www.ibm.com/think/topics/exploratory-data-analysis

[4] scikit-learn developers. load_iris — scikit-learn documentation. https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html

[5] Waskom, M. An introduction to seaborn. https://seaborn.pydata.org/tutorial/introduction.html

[6] pandas development team. pandas documentation. https://pandas.pydata.org/

実験・研究スキルの基礎:Google Colabで学ぶ探索的データ分析実験

1. 実験・研究のスキル構成要素

実験や研究を行うには、以下の5つの構成要素を理解する必要がある。

1.1 実験用データ

このプログラムではIrisデータセットが実験用データである。3種のアヤメ(Setosa、Versicolor、Virginica)について、がく片の長さ・幅、花弁の長さ・幅の4つの特徴量を150サンプル(各種50サンプル)収録している。

1.2 実験計画

何を明らかにするために実験を行うのかを定める。

計画例:

1.3 プログラム

実験を実施するためのツールである。このプログラムはscikit-learnのIrisデータセット、pandas、matplotlib、seabornを使用している。

1.4 プログラムの機能

このプログラムは複数の可視化と統計分析を自動実行する。

入力データ:

出力情報:

データの自動処理:

1.5 検証(結果の確認と考察)

プログラムの実行結果を観察し、データの特性を考察する。

基本認識:

観察のポイント:

2. 間違いの原因と対処方法

2.1 期待と異なる結果が出る場合

相関係数が1.0

散布図で種が完全に分離されていない

基本統計量の平均と中央値が大きく異なる

3. 実験レポートのサンプル

種を区別する最適な特徴量の探索

実験目的:

Irisデータセットの3種(Setosa、Versicolor、Virginica)を最も明確に区別できる特徴量または特徴量の組み合わせを見つける。

実験計画:

各特徴量について、種間の分離度を評価する。箱ひげ図で種間の重なりを確認し、散布図で2つの特徴量の組み合わせによる分離性を評価する。

実験方法:

プログラムを実行し、生成された6つのグラフを観察しながら以下の基準で評価する:

実験結果:

特徴量 Setosaの分離 Versicolor/Virginicaの分離 総合評価
がく片の長さ xxx xxx xxx
がく片の幅 xxx xxx xxx
花弁の長さ xxx xxx xxx
花弁の幅 xxx xxx xxx
特徴量の組み合わせ 分離の明確さ 観察された特徴
がく片の長さ × がく片の幅 xxx (例文)Setosaは部分的に分離、他2種は重複
花弁の長さ × 花弁の幅 xxx (例文)Setosaは完全分離、他2種も比較的明確

考察:

結論:

(例文)本実験により、Irisデータセットの3種を区別するには花弁の特徴量(長さ・幅)が最も有効であることが確認できた。特にSetosaは花弁が小さいという明確な特徴を持つため、他の2種と容易に区別できる。VersicolorとVirginicaの区別には複数の特徴量を組み合わせる必要があるが、花弁の長さがx.xcm未満ならSetosa、x.x~x.xcm程度ならVersicolor、x.xcm以上ならVirginicaという大まかな分類基準を設定できる。この知見は機械学習による分類モデルの特徴量選択にも活用できる。