[Data Science/EDA]もしもし、EDAもできますよ!(2-Pythonを用いて可視化コードを記述)
8332 ワード
驚いたことに、これは前の文章が存在した.ブログの最初の文章にどうして最初の文章があるのか、私たちはリンクに賭けて、信じて確認することができます.
前編でまだ話し終わっていない残りの問題ライブラリseborn私たちをもっと華やかにするためには、まだ長い道のりがあるので、ライブラリの使用方法は迅速に整理してスキップしなければなりません.だからできるだけ基本だけ知っていて、私たちがよく使う程度は、スキップしたいと思っています.もっと深い内容が必要な場合は、必要なときに検索します.もしあなたがこれらのライブラリを研究し始めたら、それだけで論文を書くことができます......
seaborn ( APIリファレンス )
前編でまだ話し終わっていない残りの問題ライブラリseborn私たちをもっと華やかにするためには、まだ長い道のりがあるので、ライブラリの使用方法は迅速に整理してスキップしなければなりません.だからできるだけ基本だけ知っていて、私たちがよく使う程度は、スキップしたいと思っています.もっと深い内容が必要な場合は、必要なときに検索します.もしあなたがこれらのライブラリを研究し始めたら、それだけで論文を書くことができます......
seaborn ( APIリファレンス )
sebornはmatplotlibをベースに、様々な色のトピックや統計グラフなどの機能を追加したライブラリです.基本的な可視化機能はmatplotlibライブラリに依存し,統計機能はstatmodelsライブラリに依存する.コードを見ればわかりますが、sebornに描いた後、それ以外の方法はmatplotlibの方法を使います.そのため、私はできるだけ重複した、枝葉的な内容をスキップします.
先にインポート同様に、King God colabでは追加の設定は必要ありません.import seaborn as sns
こいつはみなsnsと略称している.なぜsnsなのか考えてみましょう.全く違和感があったので探してみましたが、痛快な答えは見つかりませんでした.知り合いがいたら教えてください.
まず,前に練習した線図とストライプ図はそれぞれlineplot法とbarplot法に取って代わられる.
振込書
sns.lineplot([4,2,2,3,3],[1,2,4,2,4])
plt.show()
特に、インデックス繰返し値の平均値を線で表し、値の範囲を異なる色で表します.
柱状図
棒グラフの場合も似ています.sns.barplot([4,2,2,3,3],[1,2,4,2,4])
plt.show()
逆に、こいつは縦線で値段の範囲を表している.
サンプルデータセット
この奇抜なやつは筆者と同じように(データ分析)、林たちは実験を容易に行うことができるサンプルデータを提供した.読み込まれたコードは次のとおりです.titanic = sns.load_dataset('titanic')
titanic.head()
「キーキー」タイタニック号のデータを他のコードにロードします.
heatmap(正式的书类)
heatmapはx軸とy軸を指定し、私たちが見たいデータを選択すると、選択したデータがどのx、yに分布しているかを見ることができます.import numpy as np
data = np.random.rand(10, 12)
sns.heatmap(data, annot=True)
plt.show()
ランダムデータが生成され、描画されます.annotオプションは、図に数値を表示します.サンプルデータを利用して描く.sns.heatmap(data, annot=True, fmt='d', cmap=sns.light_palette('blue'))
plt.show()
このような形で、色やスタイルも適用できます.参照として、fmtオプションは、ホットマップにマークされた数値の形式を指定します.(ex.'0.2 f'->から小数第2位、'd'->整数位のみ)
hue
提供されるオプションにはhueという名前のオプションがあり、データの分類に使用できます.sns.lineplot(x='pclass', y='age', data=titanic, hue='sex')
# 위의 한 줄이 아래 주석과 완전히 같은 의미
# sns.lineplot(x=titanic.query('sex=="male"')['pclass'],
# y=titanic.query('sex=="male"')['age'])
# sns.lineplot(x=titanic.query('sex=="female"')['pclass'],
# y=titanic.query('sex=="female"')['age'])
plt.show()
これによりhueオプションを使用すると、図形を複数回重ね合わせることで、描画プロセスをより簡単にすることができます.
countplot
sebornの利点の1つは、簡単な統計ツールを含むことです.EDAを行うと徐々に分かるようになりますが、野生のデータから意味のある因子を見つけてつなぎたいなら、毛穴の統計データを一つ一つよく観察しなければなりません.知っていれば十分役に立ちます.このうちcountplotというやつはとても簡単なやつで、私たちが指定したコラムでカテゴリ別にデータを計算しています.sns.countplot(x='pclass', data=titanic, hue='sex')
plt.show()
これにより、タイタニック号の各車両の性別乗客数をグラフで確認することができます.この場合もhueアトリビュートで2層シェイプを非常に簡単に描くことができます.pyplotでは涙の屁眼ショーで描かれた図ですが、こんなに便利なのにラテは想像できません.sns.countplot(x='sex', data=titanic, hue='pclass')
plt.show()
このようにx軸とhueオプションの因子を変えると,三重レバーが確認できる.適当な場所に使えば、とても便利な友達です.x軸を基準に描いたやつをyにすると、横に柱状図を描くこともできますので、試してみてください.
heatmapアプリケーション(feat.pandas.DataFrame.corr()
pandas.DataFrame.corr()法は,各カラム間の相関係数を示した.オプションとして相関係数導出式(リファレンス)を選択できるようになる.しかし、筆者は統計学の素人で、ピルソン兄貴の公式が最もよく、別途選択肢を設定しないと信じている.これは非常に無知で推奨されない方法であり、賢明な読者に知恵を発揮させ、いつでも導出式の選択肢を変更させる.このメソッドを使用して、次の表を表示します.titanic.corr()
このように、各列間の相関係数は、−1〜1の数字で表される.目の先の人はすでに把握しているはずですが、既存のデータから漏れた列が見えます.この方法は数値型データのみを扱うため,カテゴリ型カラムが漏れてしまう.係数の解釈はeagleを参照してください.筆者はこの方法を用いてheatmapを描きます.sns.heatmap(titanic.corr())
plt.show()
非常に簡単な方法で、既存の表をホットグラフで確認することができます.数値で確認したり、直感的に見た方が有利な場合もありますので、状況に応じて活用してほしいです.
正式文書では,corrメソッドを用いたheatmapをより直感的に見ることができる例がある.次に、この例を用いてタイタニック号データに適用されるコードを示す.# Generate a mask for the upper triangle
mask = np.triu(np.ones_like(titanic.corr()))
# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(11, 9))
# Generate a custom diverging colormap
cmap = sns.diverging_palette(230, 20, as_cmap=True)
# Draw the heatmap with the mask and correct aspect ratio
sns.heatmap(titanic.corr(), mask=mask, cmap=cmap, vmax=.3, center=0,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
plt.yticks(rotation=0)
plt.show()
pairplot
この友人は,先に紹介したcorr法のグラフィック化と考えられる.各因子間の相関係数の数値で表すのではなく,散点で表す.sns.pairplot(data=titanic[['pclass','age','fare']])
# bool 자료형의 경우 에러가 발생하므로 Numeric 컬럼만 인자로 주었음
plt.show()
散点図とヒストグラムが気に入らない場合は、上、下、で必要なグラフィックを選択できます.# pairgrid 활용 pairplot 그리기
grid = sns.PairGrid(titanic[['pclass','age','fare']])
grid.map_upper(sns.regplot)
grid.map_lower(sns.lineplot)
grid.map_diag(sns.violinplot)
plt.show()
PairGridから呼び出される3つの方法で、必要なグラフィックタイプを指定できます.図の種類が多すぎて、APIリファレンスを確認して、必要な図を描けるデリンになりましょう.
sebornで使用可能な可視化と統計機能について簡単に説明します.実際、foliumとployも試したことがありますが、1つの文章で複数のパッケージを処理するので、成分の関係を調整することができず、この文章でも言及していません.千里の道を歩む私たちにとって、次のシリーズまでライブラリを使う方法は、贅沢です.高盧秋後にデータを処理する過程で、必要な場合は対応する文章や付録で処理します.次の記事では,正式なEDAの前にデータを前処理するプロセスについて議論する.足りない文章を読んだ読者たちは、目に深い慰問を伝え、データの可視化洞察力を提供する良い文章分を分かち合った.
Reference
この問題について([Data Science/EDA]もしもし、EDAもできますよ!(2-Pythonを用いて可視化コードを記述)), 我々は、より多くの情報をここで見つけました
https://velog.io/@sasganamabeer/Data-Science-EDA-야-너두-EDA-할-수-있어-2-시각화-코드-작성하기-by-Python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
import seaborn as sns
sns.lineplot([4,2,2,3,3],[1,2,4,2,4])
plt.show()
sns.barplot([4,2,2,3,3],[1,2,4,2,4])
plt.show()
titanic = sns.load_dataset('titanic')
titanic.head()
import numpy as np
data = np.random.rand(10, 12)
sns.heatmap(data, annot=True)
plt.show()
sns.heatmap(data, annot=True, fmt='d', cmap=sns.light_palette('blue'))
plt.show()
sns.lineplot(x='pclass', y='age', data=titanic, hue='sex')
# 위의 한 줄이 아래 주석과 완전히 같은 의미
# sns.lineplot(x=titanic.query('sex=="male"')['pclass'],
# y=titanic.query('sex=="male"')['age'])
# sns.lineplot(x=titanic.query('sex=="female"')['pclass'],
# y=titanic.query('sex=="female"')['age'])
plt.show()
sns.countplot(x='pclass', data=titanic, hue='sex')
plt.show()
sns.countplot(x='sex', data=titanic, hue='pclass')
plt.show()
titanic.corr()
sns.heatmap(titanic.corr())
plt.show()
# Generate a mask for the upper triangle
mask = np.triu(np.ones_like(titanic.corr()))
# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(11, 9))
# Generate a custom diverging colormap
cmap = sns.diverging_palette(230, 20, as_cmap=True)
# Draw the heatmap with the mask and correct aspect ratio
sns.heatmap(titanic.corr(), mask=mask, cmap=cmap, vmax=.3, center=0,
square=True, linewidths=.5, cbar_kws={"shrink": .5})
plt.yticks(rotation=0)
plt.show()
sns.pairplot(data=titanic[['pclass','age','fare']])
# bool 자료형의 경우 에러가 발생하므로 Numeric 컬럼만 인자로 주었음
plt.show()
# pairgrid 활용 pairplot 그리기
grid = sns.PairGrid(titanic[['pclass','age','fare']])
grid.map_upper(sns.regplot)
grid.map_lower(sns.lineplot)
grid.map_diag(sns.violinplot)
plt.show()
Reference
この問題について([Data Science/EDA]もしもし、EDAもできますよ!(2-Pythonを用いて可視化コードを記述)), 我々は、より多くの情報をここで見つけました https://velog.io/@sasganamabeer/Data-Science-EDA-야-너두-EDA-할-수-있어-2-시각화-코드-작성하기-by-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol