seaborn

【seaborn】サンプルデータを取得する方法

MAX

seabornから機械学習の練習やテストに使えるサンプルデータを取得できる。

sklearnからもサンプルデータを取得できるが、sklearnのサンプルデータは数値計算に重きを置いている。

seabornのサンプルデータは可視化も踏まえたデータ内容となっている。

スポンサーリンク

サンプルデータ一覧の取得

get_dataset_names()を使うことで、取得可能なサンプルデータの一覧を取得できる。

1import seaborn as sns
2
3sample_data_list = sns.get_dataset_names()
4print(sample_data_list)
1>>
2['anagrams',
3 'anscombe',
4 'attention',
5 'brain_networks',
6 'car_crashes',
7 'diamonds',
8 'dots',
9 'exercise',
10 'flights',
11 'fmri',
12 'gammas',
13 'geyser',
14 'iris',
15 'mpg',
16 'penguins',
17 'planets',
18 'taxis',
19 'tips',
20 'titanic']

githubからもデータ一覧をCSVを確認できる。

https://github.com/mwaskom/seaborn-data

分類用データ取得

タイタニック号の生存者データ

勉強用データとして有名なタイタニックのデータ。

1df_titanic = sns.load_dataset("titanic")
2print(df_titanic.head())
1>>
2   survived  pclass     sex   age  sibsp  parch     fare embarked  class  \
30         0       3    male  22.0      1      0   7.2500        S  Third   
41         1       1  female  38.0      1      0  71.2833        C  First   
52         1       3  female  26.0      0      0   7.9250        S  Third   
63         1       1  female  35.0      1      0  53.1000        S  First   
74         0       3    male  35.0      0      0   8.0500        S  Third   
8
9     who  adult_male deck  embark_town alive  alone  
100    man        True  NaN  Southampton    no  False  
111  woman       False    C    Cherbourg   yes  False  
122  woman       False  NaN  Southampton   yes   True  
133  woman       False    C  Southampton   yes  False  
144    man        True  NaN  Southampton    no   True  

「class」列~「alive」列は「survived」列~「embarked」列とほぼ同じ内容になる(数値が文字列になっているだけだったりする)。

カテゴリーデータの基本的なエンコーディングについても学べるようになっている。

可視化の際には、カテゴリーデータの値を使うことで、意味も通じやすくなる。

あやめの分類データ

多クラス分類のための基本的なデータ。

1df_iris = sns.load_dataset("iris")
2print(df_iris.head())
1>>
2   sepal_length  sepal_width  petal_length  petal_width species
30           5.1          3.5           1.4          0.2  setosa
41           4.9          3.0           1.4          0.2  setosa
52           4.7          3.2           1.3          0.2  setosa
63           4.6          3.1           1.5          0.2  setosa
74           5.0          3.6           1.4          0.2  setosa

scikit-learnにもサンプルデータとして存在する。

scikit-learnのデータの場合、目的変数であるspeciesが0, 1, 2の数値になっている。

回帰用データ

チップ支払額データ

食事の際に支払われたチップの金額のデータ。

1df_tips = sns.load_dataset("tips")
2print(df_tips.head())
1>>
2   total_bill   tip     sex smoker  day    time  size
30       16.99  1.01  Female     No  Sun  Dinner     2
41       10.34  1.66    Male     No  Sun  Dinner     3
52       21.01  3.50    Male     No  Sun  Dinner     3
63       23.68  3.31    Male     No  Sun  Dinner     2
74       24.59  3.61  Female     No  Sun  Dinner     4

dayには曜日が入っているため、日付の扱い方も少し必要になってくる。

時系列用データ取得

旅客機の乗客数データ

飛行機の乗客数の月次データ。

1df_flights = sns.load_dataset("flights")
2print(df_flights.head())
1>>
2   year month  passengers
30  1949   Jan         112
41  1949   Feb         118
52  1949   Mar         132
63  1949   Apr         129
74  1949   May         121

月次データなので、144行しかデータがないが、時系列データの基本を学習するには良いデータ。(144行といっても月次だと12年分のデータとなる。)

説明変数が一切ないからこそ、自分で移動平均や微分などを作成する練習になる。

scikit-learnからサンプルデータを取得する方法

scikit-learnからサンプルデータを取得する場合、以下の記事を参照。

あわせて読みたい
【scikit-learn】サンプルデータを取得する方法
【scikit-learn】サンプルデータを取得する方法

scikit-learnのサンプルデータは全ての値が数値のため、カテゴリー項目のエンコーディングを気にせず、計算することが可能。

カテゴリーのエンコーディング以外の部分を練習、テストしたい場合などは、scikit-learnのサンプルデータを使う方が良いかもしれない。

まとめ

1import seaborn as sns
2
3# 取得可能なサンプルデータ一覧の取得
4sample_data_list = sns.get_dataset_names()
5
6# タイタニックデータ(2値分類)
7df_titanic = sns.load_dataset("titanic")
8
9# あやめデータ(多クラス分類)
10df_iris = sns.load_dataset("iris")
11
12# 旅客機データ(時系列データ)
13df_flights = sns.load_dataset("flights")
スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました