科学の箱

科学・IT・登山の話題

機械学習

irisデータを読み込んでseabornでいろいろ表示をしてみる。

投稿日:

data可視化ライブラリのseabornではすぐに機械学習を始められるように質が良いデータが用意されている。その中でも最も有名であるirisについてpairplotを使って可視化してみる。

ここでは以下について説明する

  • seabornで用意されているデータ
  • irisの読み込み方
  • seaborn.pairplotで可視化
  • カテゴリ別にデータを可視化

seabornで用意されているデータ

seabornで用意されているデータは.get_dataset_names()で取得できる。

print(sns.get_dataset_names())
# ['anscombe', 'attention', 'brain_networks', 'car_crashes', 'diamonds', 'dots', 'exercise', 'flights', 'fmri', 'gammas', 'iris', 'mpg', 'planets', 'tips', 'titanic']

 

このデータの本体はgithubで公開されている。

seaborn-data ー github

 

irisの読み込み方

irisデータを読み込む。iris.DESCRでそのデータセットの説明が出てくる。

import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()
# 

scikit-learnでもirisデータは用意されている。しかし初めてである場合にはseabornのデータセットを使うほうが簡単である。その理由としては、speciesがついているので、すでに正解データがわかる。これにより機械学習のモデルづくりと検証が簡単にできる。2つ目の理由としては読み込むとすぐにDataFrameになっていることである。scikit-learnのデータはndarray型であるためにpandas.DataFrameで変換する必要がある。

 

seabornでデータを可視化

seabornを利用するとデータの可視化が簡単にできる。

seabornで最も強力なt関数の一つがpairplotをある。この関数にデータを送るとすべてのカラムについてペアで可視化をする。しかも変数の種類により、グラフも変えてくれる。

sns.pairplot(iris)

カテゴリ別にデータを可視化

さてデータを可視化をしてみたがこれだけではデータ分析のために役立つは言い難い。例えば次の散布図を見てみる。

こちらは大きく分けて2つのブロックに分かれている。知りたいにはこのブロックが種類によって分かれているのか、それともランダムかである。

もし種類によって分かれているということであればx軸とy軸の値の関係から、最小二乗法で種類を予測することができる。もちろんすべて総当たりでという方法もあるが、データ量が多い場合にはあらかじめ絞りこみができれば都合がよい。

この時に役に立つのがhueである。

seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind=’scatter’, diag_kind=’auto’, markers=None, height=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None, size=None)

hueはデフォルトでは指定されていないのでカテゴリ別にわけずデータを可視化する。いまhueに’species’を指定する。

これにより例えばsepal_lengthとsepal_widthを利用すればspeciesを分けられる可能性があることがわかる。

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Pythonではじめる機械学習 – Chap03

3.1 Types of Unsupervised Learning 教師なし学習の例 次元削減: 重要な特徴量のみを使って元のデータを表現する トピック抽出: データを構成する部品を見つける クラス …

no image

Pythonではじめる機械学習 – Chap04

4.4 Binning, Discretization, Linear Models, and Trees ビン化のメリット 決定木でビン化するメリットはあまりない 決定木はモデルの中で一つの特徴につ …

no image

Pythonではじめる機械学習 – Chap05 – Model Evaluation and Improvement

Chapter 5. Model Evaluation and Improvement 学習モデルの評価 定量的なモデルの評価は教師付きモデルが主になる。 教師なしモデルは定性的なアプローチで評価する …

no image

ラテン方格

ラテン方格は1~nまでの数字についてn x nの正方行列に一回だけ現れるように並べたものである。ラテン方格を利用して実験の割り付けを行う実験計画法がラテン方格法である。 ラテン方格法と似た実験計画法に …

no image

irisをナイーブベイズで分類

ナイーブベイズの概要 ナイーブベイズは教師ありの分類アルゴリズムの一つである。 計算アルゴリズムとしてはベイズ定理を用いている。 機械学習における特徴としてはいかがある 実装が簡単であり、複雑なハイパ …

2019年9月
« 8月   10月 »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

side bar top



アーカイブ

カテゴリー