多くの場合、データを比較する必要があります。たとえば、人間の活動のある領域(産業、医学、政府など)からの一連のデータがいくつかあり、それらがどれほど類似しているか、または逆に、いくつかの指標が他の指標と比較してどのように際立っているかを比較したいと思います。知覚を容易にするために、より単純で、普遍的で、中立的なデータを取りましょう。アメリカンケンネルクラブによると、枯れた高さといくつかの犬種の体重です。平均的な岩のサイズのデータは ここにあります..。 Python numpyライブラリからrandom.uniform関数を追加し、インチをセンチメートルに、ポンドをキログラムに変換すると、リアルに見える多品種の犬のサイズのデータセットができあがります。この例では、これらはChihuahuas、Beagles、Rottweilers、およびEnglishSettersです。
これらの4つの一連の数値を比較するために使用できる1つのアナリストは、それらの中央値を調べることです。データ系列を2つの部分に分割します:値の半分は中央値より小さく、残りの半分は大きくなります。パンダライブラリを使用して品種列でグループ化し、グループ化されたデータに中央値関数を適用することで、中央値を見つけます。同様に、他の統計指標を見ることができます:平均(平均)とモード(モード)。
私たちが出会ったチワワの半分の高さは枯れた部分で18cm以下で、ビーグルははるかに高く、41 cmの領域で、次のサイズはロットワイラーとイングリッシュセッターで、高さがわずかに異なります:58cmと63cm。
図2.中央値4つの犬種の高さの値が枯れます。
しかし、データの比較分析には1つの中央値だけでは不十分です。 Pythonのseabornプロットライブラリを使用して、ボックスアンドウィスカープロットなどのツールを調べることで、より多くの情報を得ることができます。ボックス内の線はおなじみの中央値です。右側のグラフのレベル(図3を参照)は、左側の対応する列の高さと一致します。しかし同時に、スイングチャートには、データが行内でどのように分散されているかに関する追加情報が含まれています:長方形(ボックス)の下の境界線は最初の四分位(値はシリーズの値の25%を超えています)であり、上の境界線は3番目の四分位です(値は値の75%を超えています) )。そして、それらの非常に「ムスタッシュ」はセグメントです、長方形の中央から上下に伸びる範囲は、四分円間の範囲に基づいてプロットされ、異常値を除く、データの重要な部分の上限と下限を示します。 「口ひげ」の外側にラベルとして表示される場合、異常値はありません(ジストロフィーや巨大な犬には遭遇しませんでした)。
図3.同じデータセットに対してプロットされた棒グラフと範囲グラフの比較。
同じ海生まれのライブラリからのバイオリンプロットは、問題のデータの構造についてさらに多くの洞察を与えてくれます。下の図4は、3つのグラフすべてを示しています。ここでは、岩が毎回同じ順序であり、対応する行の色が保持されています。
図4.同じデータセットに対してプロットされたバー、スイング、およびバイオリンプロットの比較。
たとえば、Rottweilerデータは緑色で表示されます。
スパン図(口ひげのあるボックス)とバイオリングラフの類似点と相違点を次の図5に示します。最初に、類似点:(1)いずれかの形式の両方のグラフは、0.25量子、0.5量子(中央値)、および0.75量子を表します。 (2)ボックスの下端と上端からプロットされた1.5の四分位範囲(IQR)の値に近い極端な値があります-スイング図のまさに「口ひげ」であり、その外側には「外れ値」があります。
違いは、バイオリングラフには、データが内部でどのように分散されているかに関する情報も含まれていることです。構築された「ビオリン」の境界は、90度回転した分布密度です。そしてこの場合、グラフを分析すると、はるかに多くの情報があります:4つの四分円間距離(1.5 + 1 + 1.5)を説明するクォンタイルと値に加えて、バイオリングラフでは、データが均等に分布しているか、値がより多くあるいくつかのセンターがあるかどうかを確認できますしばしば。
図5。スパンとバイオリンの2つのグラフの要素の対応についての説明。
このアイデアは、次のグラフ(図6)でより明確に見ることができます。ここでは、Rottweilerの2つのグループのデータが異なりますが、中央値が一致するように(左端のグラフ)、さらにはスイング図(中央)も一致するように選択されています。そして、バイオリングラフ(右端)だけが、実際にはデータ構造が大幅に異なることを示しています。
図6.バイオリングラフのみで、検討中のデータの内部構造の違いを確認できる例。
sklearnモジュールのK-Meansクラスタリング(cluster.KMeans)を使用すると、seabornモジュールのscatterplot関数を使用して散布図をプロットすることにより、グループ化されたデータを視覚的に表すことができます。ここで、色はMLアルゴリズムによって作成された1つのクラスターを別のクラスターから分離し、マーカーの形状は1つまたは別のグループに属する元のクラスターを示します。 PCAやその他の方法を使用して寸法を縮小する必要はありませんでした。データは元々2Dです。
クラスタリングとスキャッタープロットのコード:
したがって、いくつかの品種の犬の枯れた高さに関するデータの例を使用して、数列のいくつかの統計的特性とそれらを視覚化するためのツールに精通しました。単純なツールは明確なメトリックを提供しますが、全体像を提供するわけではありません。より洗練されたツールを使用すると、データの全体像を把握できますが、グラフ上の情報量が増えるため、認識が難しくなります。そしてここでは、必要な情報の完全性とチャート上での認識のしやすさのバランスを見つけるために、特定のタスク用のツールを選択することが重要です。