<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>データ解析 | DL FreeTime</title>
	<atom:link href="https://www.ct-innovation.blog/dl-freetime/tag/data-analysis/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ct-innovation.blog/dl-freetime</link>
	<description>毎月の分配金で生活を少しずつ楽にする。エンジニアの高配当ETF実践記録</description>
	<lastBuildDate>Mon, 10 Jun 2024 06:39:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-cooltext289278806579247-32x32.png</url>
	<title>データ解析 | DL FreeTime</title>
	<link>https://www.ct-innovation.blog/dl-freetime</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>Signate Beginner向けコンペ初参加で8位入賞！スコアアップ方法</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2834/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2834/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Tue, 11 Jun 2024 12:52:26 +0000</pubDate>
				<category><![CDATA[AI/MachineLearning]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[XGBoost]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[データ解析]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2834</guid>

					<description><![CDATA[こんにちは、SIGNATE主催の「第46回_Beginner限定コンペ 携帯電話の機能データからの価格帯分類」で最高時3位、最終的に8位に入賞することができました！このブログ記事では、コンペに参加した経緯やスコアアップの [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">こんにちは、SIGNATE主催の「第46回_Beginner限定コンペ 携帯電話の機能データからの価格帯分類」で最高時3位、最終的に8位に入賞することができました！このブログ記事では、コンペに参加した経緯やスコアアップのプロセス、そして実際に使用したPythonコードを交えながら、私の体験をシェアしたいと思います。</p>



<h2 class="wp-block-heading">コンペの概要と参加のきっかけ</h2>



<p class="wp-block-paragraph">「第46回_Beginner限定コンペ」は、携帯電話の各種機能・スペックのデータから、その携帯電話の価格帯を予測するという課題のコンペティションです。価格帯は0から3の4クラスに分類されており、与えられた特徴量を用いて分類モデルを構築するのが目的でした。</p>



<p class="wp-block-paragraph">Kaggleを含め、登録とTitanicだけして、その後本業の業務などが忙しくなり腰を据えてやる時間を取れなかった私ですが、今回少し時間に余裕ができたのとBeginner限定のコンペは学びの機会として最適だと感じ、また実データを使った課題に取り組むことで、実際のコンペの雰囲気をつかんでちょっと本腰でやろうと参加を決めました。</p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" width="780" height="140" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/06/スクリーンショット-2024-06-10-153844.png" alt="" class="wp-image-2870" style="width:800px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/06/スクリーンショット-2024-06-10-153844.png 780w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/06/スクリーンショット-2024-06-10-153844-300x54.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/06/スクリーンショット-2024-06-10-153844-768x138.png 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<h2 class="wp-block-heading">探索的データ分析（EDA）</h2>



<p class="wp-block-paragraph">コンペに参加したら、まずは与えられたデータを探索的に分析（EDA）しました。以下のようなコードを用いて、各特徴量の分布や価格帯との関係性を可視化してみました。</p>



<pre class="wp-block-code python"><code><code>import seaborn as sns
import matplotlib.pyplot as plt

def plot_matrix(data):
    columns = data.columns&#91;:-1]
    num_columns = len(columns)

    num_rows = (num_columns + 1) // 2
    num_cols = 2

    fig, axes = plt.subplots(num_rows, num_cols, figsize=(12, 4 * num_rows))

    for i, column in enumerate(columns):
        row = i // num_cols
        col = i % num_cols

        sns.histplot(data=data, x=column, ax=axes&#91;row, col], hue="price_range", multiple="stack", bins=10, legend=False)

        axes&#91;row, col].set_title(f'Distribution of {column}')
        axes&#91;row, col].set_xlabel(column)
        axes&#91;row, col].set_ylabel('Count')

    handles, labels = axes&#91;0, 0].get_legend_handles_labels()
    fig.legend(handles, labels, title='Price Range', loc='upper right')

    if num_columns % 2 != 0:
        fig.delaxes(axes&#91;-1, -1])

    plt.tight_layout()
    plt.show()</code></code></pre>



<p class="wp-block-paragraph">この可視化により、いくつかの特徴量で価格帯ごとに分布の違いが見られることがわかりました。この知見は特徴量の選択や前処理の方針を決める上で役立ちました。</p>



<h2 class="wp-block-heading">データの前処理</h2>



<p class="wp-block-paragraph">EDAの結果を踏まえ、データの前処理を行いました。具体的には以下の2つの処理を実施しました。</p>



<ol class="wp-block-list">
<li>px_heightをsc_hで、px_widthをsc_wで割った新たな変数を作成し、元の変数を削除</li>



<li>0-1の範囲に収まらない変数について、最小値0、最大値1に正規化</li>
</ol>



<p class="wp-block-paragraph">これらの処理を以下の関数で実装しました。</p>



<pre class="wp-block-code python"><code><code>from scipy.stats import norm

def data_cleansing(dataFrame):
    data = dataFrame.copy()
    data&#91;'sc_w'] = data&#91;'sc_w'].replace(0, 1)

    data&#91;'pxsc_h'] = data&#91;'px_height'] / data&#91;'sc_h'] * 10
    data&#91;'pxsc_w'] = data&#91;'px_width'] / data&#91;'sc_w'] * 10
    data = data.drop(&#91;'px_height', 'px_width', 'sc_h', 'sc_w'], axis=1)

    for column in data.columns:
        data&#91;column] = (data&#91;column] - data&#91;column].min()) / (data&#91;column].max() - data&#91;column].min())

    return data</code></code></pre>



<p class="wp-block-paragraph">前処理の効果を確認するため、再度可視化を行ったところ、各特徴量の分布がより扱いやすい形に整えられていることが確認できました。</p>



<h2 class="wp-block-heading">モデルの選択とハイパーパラメータ調整</h2>



<p class="wp-block-paragraph">前処理したデータを用いて、複数の機械学習モデルを試してみることにしました。今回は以下の５つのモデルを候補に選びました。</p>



<ol class="wp-block-list">
<li>ランダムフォレスト</li>



<li>ロジスティック回帰</li>



<li>サポートベクターマシン（SVM）</li>



<li>ニューラルネットワーク（多層パーセプトロン）</li>



<li>XGBoost</li>
</ol>



<p class="wp-block-paragraph">各モデルのハイパーパラメータ調整には、Optunaというハイパーパラメータ自動最適化ツールを使用しました。例えば、ランダムフォレストの場合は以下のようなコードでハイパーパラメータ探索を行いました。</p>



<pre class="wp-block-code python"><code><code>import optuna

def objective_rf(trial):
    params = {
        'n_estimators': trial.suggest_int('n_estimators', 50, 500),
        'max_depth': trial.suggest_int('max_depth', 2, 20),
        'min_samples_split': trial.suggest_int('min_samples_split', 2, 10),
        'min_samples_leaf': trial.suggest_int('min_samples_leaf', 1, 10),
    }
    model = RandomForestClassifier(**params, random_state=42)
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    accuracy = accuracy_score(y_test, y_pred)
    return accuracy

study_rf = optuna.create_study(direction='maximize')
study_rf.optimize(objective_rf, n_trials=100)
print("Best hyperparameters for Random Forest:", study_rf.best_params)
print("Best accuracy for Random Forest:", study_rf.best_value)</code></code></pre>



<p class="wp-block-paragraph">他のモデルについても同様にハイパーパラメータ探索を行い、各モデルの最適パラメータを求めました。</p>



<h2 class="wp-block-heading">モデルの評価と改善</h2>



<p class="wp-block-paragraph">ハイパーパラメータ調整後、各モデルの性能を評価しました。評価指標には、accuracy（正解率）とclassification report（適合率、再現率、F1スコア）を用いました。</p>



<p class="wp-block-paragraph">評価の結果、ランダムフォレストとXGBoostが特に高い性能を示しました。一方で、SVMはカーネルの種類によって大きく性能が変動し、調整が難しいことがわかりました。</p>



<p class="wp-block-paragraph">そこで、ランダムフォレストとXGBoostをさらに改善することに注力しました。具体的には、特徴量の重要度を確認し、重要度の低い特徴量を削除することで、モデルの汎化性能を高める工夫をしました。</p>



<h2 class="wp-block-heading">アンサンブル学習による最終提出</h2>



<p class="wp-block-paragraph">各モデルを改善した後、アンサンブル学習によって最終的な予測を行いました。具体的には、ランダムフォレスト、ロジスティック回帰、SVM、ニューラルネットワーク、XGBoostの予測結果を組み合わせ、多数決や平均化によって最終的な予測ラベルを決定しました。</p>



<p class="wp-block-paragraph">以下は、予測結果を組み合わせるコードの一例です。</p>



<pre class="wp-block-preformatted"><code>import numpy as np<br>from scipy import stats<br><br>def process_array(arr):<br>    result = []<br>    for row in arr:<br>        unique_elements, counts = np.unique(row, return_counts=True)<br>        if len(unique_elements) == 1:<br>            result.append(unique_elements[0])<br>        elif len(unique_elements) == 2:<br>            result.append(unique_elements[np.argmax(counts)])<br>        else:<br>            result.append(row[2])<br>    return np.array(result)<br><br>stacked = np.column_stack((rf_valid, lr_valid, svm_valid, nn_valid, xgb_valid))<br>result = process_array(stacked)</code></pre>



<p class="wp-block-paragraph">このアンサンブル学習によって、単体のモデルよりも高い性能を達成することができました。</p>



<h2 class="wp-block-heading">参考にしたおススメのUdemy講座</h2>



<p class="wp-block-paragraph">Signateに参加するにあたり、Udemyの講座を参考にしました。その中で役に立ったなという講座を幾つかご紹介します。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-pickup">

<a rel="noopener" target="_blank" href="https://click.linksynergy.com/deeplink?id=VccPUbDe07g&#038;mid=47984&#038;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Foptworks_1%2F%3FcouponCode%3DST19MT60324" title="Error" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fclick.linksynergy.com%2Fdeeplink%3Fid%3DVccPUbDe07g%26mid%3D47984%26murl%3Dhttps%253A%252F%252Fwww.udemy.com%252Fcourse%252Foptworks_1%252F%253FcouponCode%253DST19MT60324?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Error</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://click.linksynergy.com/deeplink?id=VccPUbDe07g&#038;mid=47984&#038;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Foptworks_1%2F%3FcouponCode%3DST19MT60324" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">click.linksynergy.com</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">まず一つ目は、<a rel="noopener" target="_blank" href="https://click.linksynergy.com/deeplink?id=VccPUbDe07g&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Foptworks_1%2F%3FcouponCode%3DST19MT60324" class="broken_link">【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門</a>です。こちらは、Pythonでデータ分析を学べる実践的な講座です。ビジネスケースを通じて、データサイエンスの基礎から応用までを身につけられます。これからデータ分析を始める方におすすめの一作です。そしてなんといってもSignateさんが作っている講座です。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-pickup">

<a rel="noopener" target="_blank" href="https://click.linksynergy.com/deeplink?id=VccPUbDe07g&#038;mid=47984&#038;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fml-with-python%2F%3FcouponCode%3DST19MT60324" title="Error" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fclick.linksynergy.com%2Fdeeplink%3Fid%3DVccPUbDe07g%26mid%3D47984%26murl%3Dhttps%253A%252F%252Fwww.udemy.com%252Fcourse%252Fml-with-python%252F%253FcouponCode%253DST19MT60324?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Error</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://click.linksynergy.com/deeplink?id=VccPUbDe07g&#038;mid=47984&#038;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fml-with-python%2F%3FcouponCode%3DST19MT60324" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">click.linksynergy.com</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">二つ目は、26個ものアルゴリズムを理論と実践で学べる<a rel="noopener" target="_blank" href="https://click.linksynergy.com/deeplink?id=VccPUbDe07g&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fml-with-python%2F%3FcouponCode%3DST19MT60324" class="broken_link">【世界で91万人が受講】基礎から理解し、Pythonで実装！機械学習26のアルゴリズムを理論と実践を通じてマスターしよう</a>です。Pythonでの実装力が身につき、機械学習エンジニアとしてのスキルアップに最適な内容です。初学者から上級者まで幅広くおすすめ。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-pickup">

<a rel="noopener" target="_blank" href="https://click.linksynergy.com/deeplink?id=VccPUbDe07g&#038;mid=47984&#038;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fkagglepython%2F%3FcouponCode%3DST19MT60324" title="Error" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fclick.linksynergy.com%2Fdeeplink%3Fid%3DVccPUbDe07g%26mid%3D47984%26murl%3Dhttps%253A%252F%252Fwww.udemy.com%252Fcourse%252Fkagglepython%252F%253FcouponCode%253DST19MT60324?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Error</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://click.linksynergy.com/deeplink?id=VccPUbDe07g&#038;mid=47984&#038;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fkagglepython%2F%3FcouponCode%3DST19MT60324" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">click.linksynergy.com</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">三つめは、データ分析と機械学習の基礎をPythonで学ぶ、<a rel="noopener" target="_blank" href="https://click.linksynergy.com/deeplink?id=VccPUbDe07g&amp;mid=47984&amp;murl=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fkagglepython%2F%3FcouponCode%3DST19MT60324" class="broken_link">豊富な演習問題とKaggle実践で身に付ける！『Python データ分析 &amp; 機械学習 ～パーフェクトスターターコース』</a>です。こちらは、コンペサイトのKaggleをテーマに豊富な演習問題とKaggle実践で実力が身につきます。丁寧な解説と充実した内容で、データサイエンティストを目指す方におすすめの一作です。</p>



<h2 class="wp-block-heading">終わりに</h2>



<p class="wp-block-paragraph">本記事で紹介した探索的データ分析、前処理、モデル選択、ハイパーパラメータ調整、アンサンブル学習といった一連のプロセスを通じて、データ分析コンペで良い成績を収めるためのコツの一端が掴めたのではないかと思います。</p>



<p class="wp-block-paragraph">もちろん、まだまだ改善の余地は多くあります。しかし、今回の経験を糧に、さらにスキルアップを重ねていきたいと思います。</p>



<p class="wp-block-paragraph">データ分析や機械学習に興味のある方々にとって、本記事が少しでも参考になれば幸いです。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2834/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの応用：displotを使いこなす &#8211; 見やすく効果的な分布データの可視化（二変量）</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2514/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2514/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Wed, 10 Apr 2024 13:48:53 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[displot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2514</guid>

					<description><![CDATA[Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの中でも [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの中でも<span class="marker-under-blue">二変量</span>での可視化について解説していきます。</p>



<p class="wp-block-paragraph"><span class="marker-under">単変量</span>での描画については以前の記事を参照してください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-prev">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/2450/" title="Seabornの応用：displotを使いこなす - 見やすく効果的な分布データの可視化（単変量）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-300x168.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-768x431.jpg 768w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-240x135.jpg 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-640x360.jpg 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123.jpg 780w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Seabornの応用：displotを使いこなす - 見やすく効果的な分布データの可視化（単変量）</div><div class="blogcard-snippet internal-blogcard-snippet">この記事では、Seabornのdisplotを使用してカテゴリデータを視覚化する方法について解説しました。displotを使うことで、データセット内の分布データを理解するのに役立ちます。データの可視化における重要性やSeabornのdisplotがその役割を果たす方法について述べ、読者がデータ解析や洞察を得る際にこの強力なツールを活用することの重要性を強調しました。読者がこの記事を通じてdisplotの基本的な使い方を理解し、さらに応用的なプロットの作成やデータ解析に活かすことができれば幸いです。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.04.05</div></div></div></div></a>
</div>



<span id="more-2514"></span>



<h2 class="wp-block-heading">displotとは？</h2>



<p class="wp-block-paragraph">displotはSeabornライブラリの中で、2次元の分布を可視化するための便利な関数です。この関数は、ヒストグラムや密度曲線を描画することができ、それらを美しく見栄えの良いグラフにするためのオプションが多数用意されています。以下にdisplotの基本的な使い方と主要なパラメータについて説明します。</p>



<h3 class="wp-block-heading">2変量分布とは</h3>



<p class="wp-block-paragraph"> 2変量分布とは、2つの確率変数の同時分布を表したものです。単に2つのヒストグラムを並べるのではなく、2変数間の相関関係なども表現されます。</p>



<h2 class="wp-block-heading">displotの種類</h2>



<p class="wp-block-paragraph">分布プロットには、主に2つの種類があります。これに一つのオプションが追加できます。</p>



<ol class="wp-block-list">
<li>histplot() (with kind=&#8221;hist&#8221;; the default)</li>



<li>kdeplot() (with kind=&#8221;kde&#8221;)</li>
</ol>



<h2 class="wp-block-heading">データの準備</h2>



<p class="wp-block-paragraph">今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("penguins")</code></pre>



<h3 class="wp-block-heading">すべてに共通の引数</h3>



<ul class="wp-block-list">
<li>data: プロットするデータのデータフレーム</li>



<li>x: x軸のカテゴリデータの列名</li>



<li>y: y軸のカテゴリデータの列名</li>
</ul>



<h2 class="wp-block-heading">histplot：<span class="marker-under">ヒストグラム</span></h2>



<h3 class="wp-block-heading">histplot()の実装</h3>



<p class="wp-block-paragraph">ヒストグラムは、データの値の出現頻度を高さで表すグラフです。横軸はデータの値を表し、縦軸は各区間の値の出現回数(密度や確率に変換することも可能)を表します。</p>



<ul class="wp-block-list">
<li>データを区間(ビン)に分割し、各ビンの値の出現回数をカウントします。</li>



<li>ビンの幅が狭いほど詳細な分布を捉えられますが、過度に狭いと雑音が目立ちます。</li>



<li>カウント数を色の濃さでヒートマップ的に表現します。</li>
</ul>



<p class="wp-block-paragraph">ヒストグラムは分布の概形をパッと見て把握できる直感的なグラフです。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", <strong><em>y="bill_depth_mm"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="484" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407.png" alt="" class="wp-image-2566" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407.png 484w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142407-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<h5 class="wp-block-heading">binwidth</h5>



<p class="wp-block-paragraph">データを区間(ビン)に分割するサイズを変更できる、ただしあまり幅を大きくとりすぎると特徴をうまく捉えられないので注意すること。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm",<strong><em> binwidth=(2, 2)</em></strong>)
sns.displot(data, x="bill_length_mm", y="bill_depth_mm",<strong><em> binwidth=(1, .5)</em></strong>)</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="485" height="482" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046.png" alt="" class="wp-image-2570" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046.png 485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046-300x298.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143046-150x150.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="485" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132.png" alt="" class="wp-image-2571" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132.png 485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143132-150x150.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
</div>
</div>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="609" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142421.png" alt="" class="wp-image-2567" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142421.png 609w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142421-300x239.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<h5 class="wp-block-heading">col</h5>



<p class="wp-block-paragraph">各バーを重ねたり、積み重ねたりする代わりに、サブプロットとして別のグラフに分けて表示することも可能です。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", y="bill_depth_mm", <strong><em>col="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="1484" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416.png" alt="" class="wp-image-2572" style="width:800px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416.png 1484w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416-300x99.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416-1024x337.png 1024w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-143416-768x253.png 768w" sizes="(max-width: 1484px) 100vw, 1484px" /></figure>



<p class="wp-block-paragraph">その他オプションによって、正規化することで観測を助ける方法もあります。</p>



<h2 class="wp-block-heading">kdeplot：<span class="marker-under">カーネル密度推定</span></h2>



<h3 class="wp-block-heading">kdeplot()の実装</h3>



<p class="wp-block-paragraph">密度曲線は、カーネル密度推定(Kernel Density Estimation: KDE)によってデータの確率密度関数を滑らかな曲線で描画します。</p>



<ul class="wp-block-list">
<li>カーネル関数を使って各データ点の周りに滑らかな曲線を重ね合わせ、密度曲線を推定します。</li>



<li>ヒストグラムに比べてビン幅の設定に左右されない滑らかな分布を表せます。</li>



<li>等高線は密度の<em>等比例</em>で描画されます。</li>
</ul>



<p class="wp-block-paragraph">密度曲線は連続的なデータ分布をなめらかに可視化できる利点があります。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm", <strong><em>kind="kde"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="484" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437.png" alt="" class="wp-image-2568" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437.png 484w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142437-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、histplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="bill_length_mm", y="bill_depth_mm", kind="kde",<strong><em> hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="609" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142534.png" alt="" class="wp-image-2569" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142534.png 609w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/04/スクリーンショット-2024-03-15-142534-300x240.png 300w" sizes="(max-width: 609px) 100vw, 609px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">displotは、データの分布を可視化するための強力なツールであり、様々な種類のグラフを簡単に作成できることがわかりました。適切に使用することで、データの特徴や傾向を把握し、洞察を得ることができます。</p>



<p class="wp-block-paragraph"><div class="product-item-box amazon-item-box no-icon product-item-error cf"><div><a rel="nofollow noopener" target="_blank" href="https://www.amazon.co.jp/exec/obidos/ASIN/4798055433/lightstry-22/">Amazonで詳細を見る</a></div></div></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2514/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの応用：displotを使いこなす &#8211; 見やすく効果的な分布データの可視化（単変量）</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2450/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2450/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Fri, 05 Apr 2024 08:56:33 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[displot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2450</guid>

					<description><![CDATA[Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの基本的 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもdisplotは、分布データの視覚化に特化した非常に便利な機能です。本記事では、displotの基本的な使い方から応用まで、実例を交えながら解説していきます。</p>



<p class="wp-block-paragraph">カテゴリデータの可視化についてはこちら</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/2387/" title="Seabornの応用：catplotを使いこなす - 見やすく効果的なカテゴリデータの可視化" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-320x180.jpg 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-300x168.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-768x431.jpg 768w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-240x135.jpg 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123-640x360.jpg 640w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/スクリーンショット-2024-02-29-133123.jpg 780w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Seabornの応用：catplotを使いこなす - 見やすく効果的なカテゴリデータの可視化</div><div class="blogcard-snippet internal-blogcard-snippet">この記事では、Seabornのcatplotを使用してカテゴリデータを視覚化する方法について解説しました。catplotを使うことで、データセット内のカテゴリごとのパターンや関係性を理解するのに役立ちます。データの可視化における重要性やSeabornのcatplotがその役割を果たす方法について述べ、読者がデータ解析や洞察を得る際にこの強力なツールを活用することの重要性を強調しました。読者がこの記事を通じてcatplotの基本的な使い方を理解し、さらに応用的なプロットの作成やデータ解析に活かすことができれば幸いです。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2024.04.04</div></div></div></div></a>
</div>



<span id="more-2450"></span>



<h2 class="wp-block-heading">displotとは？</h2>



<p class="wp-block-paragraph">displotはSeabornライブラリの中で、1次元の分布を可視化するための便利な関数です。この関数は、ヒストグラムや密度曲線を描画することができ、それらを美しく見栄えの良いグラフにするためのオプションが多数用意されています。以下にdisplotの基本的な使い方と主要なパラメータについて説明します。</p>



<h2 class="wp-block-heading">displotの種類</h2>



<p class="wp-block-paragraph">分布プロットには、主に3つの種類があります。これに一つのオプションが追加できます。</p>



<ol class="wp-block-list">
<li>histplot() (with kind=&#8221;hist&#8221;; the default)</li>



<li>kdeplot() (with kind=&#8221;kde&#8221;)</li>



<li>ecdfplot() (with kind=&#8221;ecdf&#8221;)</li>
</ol>



<ul class="wp-block-list">
<li>rugplot() (with rug=True)</li>
</ul>



<h2 class="wp-block-heading">データの準備</h2>



<p class="wp-block-paragraph">今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset("penguins")</code></pre>



<h3 class="wp-block-heading">すべてに共通の引数</h3>



<ul class="wp-block-list">
<li>data: プロットするデータのデータフレーム</li>



<li>x: x軸のカテゴリデータの列名</li>



<li>rug: Trueを指定すると、x軸上にデータ点を小さな垂線で示します。</li>
</ul>



<h2 class="wp-block-heading">histplot：<span class="marker-under">ヒストグラム</span></h2>



<h3 class="wp-block-heading">histplot()の実装</h3>



<p class="wp-block-paragraph">ヒストグラムは、データの値の出現頻度を高さで表すグラフです。横軸はデータの値を表し、縦軸は各区間の値の出現回数(密度や確率に変換することも可能)を表します。</p>



<ul class="wp-block-list">
<li>データを区間(ビン)に分割し、各ビンの値の出現回数をカウントします。</li>



<li>ビンの幅が狭いほど詳細な分布を捉えられますが、過度に狭いと雑音が目立ちます。</li>



<li>ビン数が多すぎると分布の大まかな形を捉えにくくなります。</li>
</ul>



<p class="wp-block-paragraph">ヒストグラムは分布の概形をパッと見て把握できる直感的なグラフです。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm")</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="489" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417.png" alt="" class="wp-image-2502" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417.png 489w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175417-150x150.png 150w" sizes="(max-width: 489px) 100vw, 489px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<h5 class="wp-block-heading">binwidth</h5>



<p class="wp-block-paragraph">データを区間(ビン)に分割するサイズを変更できる、ただしあまり幅を大きくとりすぎると特徴をうまく捉えられないので注意すること。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>binwidth=20</em></strong>)
sns.displot(data, x="flipper_length_mm", <strong><em>binwidth=3</em></strong>)</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="485" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642.png" alt="" class="wp-image-2503" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642.png 485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180642-150x150.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="486" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659.png" alt="" class="wp-image-2504" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659.png 486w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-180659-150x150.png 150w" sizes="(max-width: 486px) 100vw, 486px" /></figure>
</div>
</div>



<h5 class="wp-block-heading">bins</h5>



<p class="wp-block-paragraph">データを区間(ビン)に分割する個数を変更できる、個数から幅を逆算される</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>bins=15</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="488" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449.png" alt="" class="wp-image-2505" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449.png 488w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181449-150x150.png 150w" sizes="(max-width: 488px) 100vw, 488px" /></figure>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="613" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181818.png" alt="" class="wp-image-2506" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181818.png 613w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-181818-300x237.png 300w" sizes="(max-width: 613px) 100vw, 613px" /></figure>



<h5 class="wp-block-heading">multiple</h5>



<p class="wp-block-paragraph">各バーを重ねる代わりに、バーを「積み重ねる」こともできます。このプロットでは、アウトラインは、変数が1つだけのプロットと一致します。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", hue="species", <strong><em>multiple="stack"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="610" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182448.png" alt="" class="wp-image-2507" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182448.png 610w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182448-300x238.png 300w" sizes="(max-width: 610px) 100vw, 610px" /></figure>



<h5 class="wp-block-heading">col</h5>



<p class="wp-block-paragraph">各バーを重ねたり、積み重ねたりする代わりに、サブプロットとして別のグラフに分けて表示することも可能です。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>col="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="1485" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845.png" alt="" class="wp-image-2508" style="width:800px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845.png 1485w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845-300x98.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845-1024x336.png 1024w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-182845-768x252.png 768w" sizes="(max-width: 1485px) 100vw, 1485px" /></figure>



<p class="wp-block-paragraph">その他オプションによって、正規化することで観測を助ける方法もあります。</p>



<h2 class="wp-block-heading">kdeplot：<span class="marker-under">カーネル密度推定</span></h2>



<h3 class="wp-block-heading">kdeplot()の実装</h3>



<p class="wp-block-paragraph">密度曲線は、カーネル密度推定(Kernel Density Estimation: KDE)によってデータの確率密度関数を滑らかな曲線で描画します。</p>



<ul class="wp-block-list">
<li>カーネル関数を使って各データ点の周りに滑らかな曲線を重ね合わせ、密度曲線を推定します。</li>



<li>ヒストグラムに比べてビン幅の設定に左右されない滑らかな分布を表せます。</li>



<li>カーネルの種類やカーネル幅のパラメータによって曲線の形状が変わります。</li>
</ul>



<p class="wp-block-paragraph">密度曲線は連続的なデータ分布をなめらかに可視化できる利点があります。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", <strong><em>kind="kde"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="487" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430.png" alt="" class="wp-image-2500" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430.png 487w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430-300x298.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175430-150x150.png 150w" sizes="(max-width: 487px) 100vw, 487px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、histplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading"><strong><em>bw_adjust</em></strong></h5>



<p class="wp-block-paragraph">ヒストグラムのビン幅と同様に、KDEがデータを正確に表現できるかどうかは、平滑化帯域幅の選択に依存します。帯域幅を調整できます。やりすぎには気を付けましょう。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", kind="kde", <strong><em>bw_adjust=.25</em></strong>)
sns.displot(data, x="flipper_length_mm", kind="kde", <strong><em>bw_adjust=3</em></strong>)</code></pre>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="490" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード.png" alt="" class="wp-image-2509" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード.png 490w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-150x150.png 150w" sizes="(max-width: 490px) 100vw, 490px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="489" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1.png" alt="" class="wp-image-2510" style="width:400px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1.png 489w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-1-150x150.png 150w" sizes="(max-width: 489px) 100vw, 489px" /></figure>
</div>
</div>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", kind="kde", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="615" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-2.png" alt="" class="wp-image-2511" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-2.png 615w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-2-300x239.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></figure>



<h2 class="wp-block-heading">ecdfplot：<span class="marker-under">累積分布関数</span></h2>



<h3 class="wp-block-heading">ecdfplot() の実装</h3>



<p class="wp-block-paragraph">累積分布関数(ECDF)は、データ点がその値以下になる割合(累積確率)を階段状のグラフで表します。</p>



<ul class="wp-block-list">
<li>データを小さい順に並び替え、各値の累積確率を計算してプロットします。</li>



<li>縦軸は累積確率(0から1)を表します。</li>



<li>データの上側と下側の確率を眺めることができます。</li>
</ul>



<p class="wp-block-paragraph">ECDFは、データの全体的な分布や特定の値を下回る確率を視覚的に把握するのに役立ちます。</p>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm",<strong><em> kind="ecdf"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="487" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442.png" alt="" class="wp-image-2501" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442.png 487w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442-300x300.png 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-11-175442-150x150.png 150w" sizes="(max-width: 487px) 100vw, 487px" /></figure>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.displot(data, x="flipper_length_mm", kind="ecdf", <strong><em>hue="species"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="615" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-3.png" alt="" class="wp-image-2512" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-3.png 615w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/ダウンロード-3-300x239.png 300w" sizes="(max-width: 615px) 100vw, 615px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">displotは、データの分布を可視化するための強力なツールであり、様々な種類のグラフを簡単に作成できることがわかりました。適切に使用することで、データの特徴や傾向を把握し、洞察を得ることができます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2450/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの応用：catplotを使いこなす &#8211; 見やすく効果的なカテゴリデータの可視化</title>
		<link>https://www.ct-innovation.blog/dl-freetime/programming/python/2387/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/programming/python/2387/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Thu, 04 Apr 2024 08:36:06 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[pairplot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2387</guid>

					<description><![CDATA[Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもcatplotは、カテゴリデータの視覚化に特化した非常に便利な機能です。本記事では、catplotの基 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのデータ可視化ライブラリSeabornは、データ分析の効率とわかりやすさを格段に高めてくれます。その中でもcatplotは、カテゴリデータの視覚化に特化した非常に便利な機能です。本記事では、catplotの基本的な使い方から応用まで、実例を交えながら解説していきます。</p>



<span id="more-2387"></span>



<h2 class="wp-block-heading">Catplotとは？</h2>



<p class="wp-block-paragraph">Catplotは、カテゴリ型の変数を含むデータセットの関係を可視化するためのSeabornの機能です。カテゴリ型の変数とは、離散的な値を持つ変数のことであり、性別や地域などが代表的な例です。Catplotは、カテゴリごとにデータを分析し、パターンや相関関係を可視化するのに役立ちます。</p>



<h2 class="wp-block-heading">Catplotの種類</h2>



<p class="wp-block-paragraph">カテゴリプロットでは、主に3つの種類があります。そこから表現方法の違いで細分化すると8種類となります。</p>



<ol class="wp-block-list">
<li>Categorical scatterplots：<span class="marker-under">散布図</span>
<ul class="wp-block-list">
<li>stripplot() (with kind=&#8221;strip&#8221;; the default)</li>



<li>swarmplot() (with kind=&#8221;swarm&#8221;)</li>
</ul>
</li>



<li>Categorical distribution plots：<span class="marker-under">分布図</span>
<ul class="wp-block-list">
<li>boxplot() (with kind=&#8221;box&#8221;)</li>



<li>boxenplot() (with kind=&#8221;boxen&#8221;)</li>



<li>violinplot() (with kind=&#8221;violin&#8221;)</li>
</ul>
</li>



<li>Categorical estimate plots：<span class="marker-under">推定プロット</span>
<ul class="wp-block-list">
<li>barplot() (with kind=&#8221;bar&#8221;)</li>



<li>countplot() (with kind=&#8221;count&#8221;)</li>



<li>pointplot() (with kind=&#8221;point&#8221;)</li>
</ul>
</li>
</ol>



<h2 class="wp-block-heading">データの準備</h2>



<p class="wp-block-paragraph">今回は、seabornでサンプルとして準備されているデータを呼び出して使用します。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")</code></pre>



<h3 class="wp-block-heading">すべてに共通の引数</h3>



<ul class="wp-block-list">
<li>data: プロットするデータのデータフレーム</li>



<li>x: x軸のカテゴリデータの列名</li>



<li>y: y軸のデータの列名</li>



<li>row/col: 行列方向にプロットを小分けする変数の列名</li>
</ul>



<h2 class="wp-block-heading">Categorical scatterplots：<span class="marker-under">散布図</span></h2>



<h3 class="wp-block-heading">stripplot()の実装</h3>



<p class="wp-block-paragraph">Strip Plotは、カテゴリごとのデータの分布や個々のデータ点を視覚的に表現するのに役立ちます。</p>



<ol class="wp-block-list">
<li><strong>個々のデータ点の表示</strong>: 各データポイントがそのままプロットされ、その分布が視覚的にわかりやすくなります。これにより、データの分散や外れ値などを素早く把握することができます。</li>



<li><strong>カテゴリごとの比較</strong>: 異なるカテゴリに属するデータの分布を比較するのに適しています。カテゴリごとにデータポイントの密度や分布を比較することができます。</li>



<li><strong>Jittering（ジッタリング）</strong>: データポイントが重なる場合、ランダムなノイズを追加して、データの重なりを解消することができます。これにより、データの分布がより明確に表示されます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(x="day", y="total_bill", data=tips);</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="505" height="489" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-144148.png" alt="" class="wp-image-2388" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-144148.png 505w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-144148-300x290.png 300w" sizes="(max-width: 505px) 100vw, 505px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<h5 class="wp-block-heading">jitter</h5>



<p class="wp-block-paragraph">一つの軸に対してプロットする際の横（縦）方向のずれの値を設定できる箇所だが、Falseを置くことでずれをなくすことも可能</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>jitter=False</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="501" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-145805.png" alt="" class="wp-image-2390" style="width:499px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-145805.png 501w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-145805-300x290.png 300w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じて色分けを行うことができる。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>hue="sex"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="583" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150114.png" alt="" class="wp-image-2391" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150114.png 583w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150114-300x252.png 300w" sizes="(max-width: 583px) 100vw, 583px" /></figure>



<h5 class="wp-block-heading">dodge</h5>



<p class="wp-block-paragraph">上記のhueで色分けを行った場合に、そのカテゴリごとに軸を避けて描画できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", hue='sex', <strong><em>dodge=True</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="579" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150458.png" alt="" class="wp-image-2392" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150458.png 579w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-150458-300x250.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<p class="wp-block-paragraph">これ以外にも今縦に積み上げているものをそのまま90度倒して横方向にするオプションに加え、プロットの色を指定したりサイズを指定することが可能です。</p>



<h3 class="wp-block-heading">swarmplot()の実装</h3>



<p class="wp-block-paragraph">Strip Plotと同様に、個々のデータポイントをプロットしますが、Swarm Plotではデータポイント同士が重ならないように配置されます。しばしば「ミツバチの群れ」と称されるような見た目にかわります。</p>



<ol class="wp-block-list">
<li><strong>個々のデータ点の表示</strong>: 各データポイントがそのままプロットされ、その分布が視覚的にわかりやすくなります。これにより、データの分散や外れ値などを素早く把握することができます。</li>



<li><strong>データポイントの重なり防止</strong>: データポイント同士が重ならないように配置されます。これにより、データポイントの密度や分布をより正確に理解することができます。</li>



<li><strong>カテゴリごとの比較</strong>: 異なるカテゴリに属するデータの分布を比較するのに適しています。カテゴリごとにデータポイントの密度や分布を比較することができます。</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1-e1709253991344.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">あまりに多いデータセットには向いていないようです。公式がアナウンスしています。</p>
</div></div>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", hue="sex", <strong><em>kind="swarm"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="582" height="486" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-151310.png" alt="" class="wp-image-2393" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-151310.png 582w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-151310-300x251.png 300w" sizes="(max-width: 582px) 100vw, 582px" /></figure>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので割愛します。</p>



<h2 class="wp-block-heading">Categorical distribution plots：<span class="marker-under">分布図</span></h2>



<h3 class="wp-block-heading">boxplot()の実装</h3>



<p class="wp-block-paragraph">データセットの中央値、四分位数、外れ値などの統計的特性を可視化するのに役立ちます。以下に、Box Plotの主な特徴と使用方法を説明します。</p>



<ol class="wp-block-list">
<li><strong>中央値と四分位範囲の表示</strong>: 箱の中央にはデータの中央値が表示され、箱の上下の端には第1四分位数（25パーセンタイル）と第3四分位数（75パーセンタイル）が表示されます。</li>



<li><strong>箱の高さ</strong>: 箱の高さは、データの第1四分位数から第3四分位数までの範囲であり、データの中央50%を表します。箱の高さが短いほどデータのばらつきが小さいことを意味します。</li>



<li><strong>ひげの表示</strong>: 箱の上下に延びる線（ひげ）は、データの範囲を表します。通常、ひげの長さは第1四分位数から1.5倍の四分位範囲と第3四分位数から1.5倍の四分位範囲の外にあるデータポイントまで伸びます。外れ値はひげの外側に単独で表示されます。</li>



<li><strong>外れ値の表示</strong>: 箱ひげ図は、データの中にある外れ値を視覚的に特定するのに役立ちます。外れ値は通常、ひげの外側に単独でプロットされます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(x="day", y="total_bill",<strong><em> kind="box"</em></strong>, data=tips)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="506" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160147.png" alt="" class="wp-image-2395" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160147.png 506w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160147-300x289.png 300w" sizes="(max-width: 506px) 100vw, 506px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">hue</h5>



<p class="wp-block-paragraph">ここに設定した列名のカテゴリに応じてそれぞれを箱ひげ図にして色分け描画できる。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>hue="smoker"</em></strong>, kind="box")</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="555" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160200.png" alt="" class="wp-image-2394" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160200.png 555w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-160200-300x262.png 300w" sizes="(max-width: 555px) 100vw, 555px" /></figure>



<h5 class="wp-block-heading">fill</h5>



<p class="wp-block-paragraph">塗りつぶしを行うかどうかを設定できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", hue="smoker", kind="box", <strong><em>fill=False</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="557" height="487" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-163315.png" alt="" class="wp-image-2397" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-163315.png 557w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-163315-300x262.png 300w" sizes="(max-width: 557px) 100vw, 557px" /></figure>



<h3 class="wp-block-heading">boxenplot()の実装</h3>



<p class="wp-block-paragraph">Boxen Plotは、データの分布や中央値、四分位数などの統計的特性を視覚的に表現するのに役立ちます。以下のような特徴があります。</p>



<ol class="wp-block-list">
<li><strong>拡張された箱ひげ図</strong>: 通常の箱ひげ図よりも多くの情報を提供します。特に、中央値や四分位数だけでなく、さらに深い統計情報を表示します。</li>



<li><strong>サブグループの可視化</strong>: データをサブグループに分割して比較する場合に便利です。これにより、異なるカテゴリや条件におけるデータの分布を比較することができます。</li>



<li><strong>データの密度の表示</strong>: データの分布に関する情報をより詳細に知ることができます。特に、データの密度が高い領域や外れ値が存在する領域を明確に表示します。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(x="day", y="total_bill",<strong><em> kind="boxen"</em></strong>, data=tips)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="507" height="488" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-164337.png" alt="" class="wp-image-2398" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-164337.png 507w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-164337-300x289.png 300w" sizes="(max-width: 507px) 100vw, 507px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">saturation</h5>



<p class="wp-block-paragraph">グラフを描画する際に彩度を下げた方が見栄えがよくなることがよくあります、そういったとき、塗りつぶしの色を描画する元の彩度の比率で指定することができます。</p>



<pre class="wp-block-code python"><code>sns.catplot(x="day", y="total_bill", kind="boxen", data=tips, <strong><em>saturation=.2</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="503" height="490" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-171731.png" alt="" class="wp-image-2399" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-171731.png 503w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-171731-300x292.png 300w" sizes="(max-width: 503px) 100vw, 503px" /></figure>



<h3 class="wp-block-heading">violinplot() の実装</h3>



<p class="wp-block-paragraph">バイオリンプロットは、データの分布形状や中央値、四分位範囲などの統計的特性を視覚的に表現するのに役立ちます。以下に、Violin Plotの主な特徴と使用方法を説明します。</p>



<ol class="wp-block-list">
<li><strong>カーネル密度推定</strong>: バイオリンプロットは、各データセットのカーネル密度推定を行い、データの分布をなめらかな曲線で表現します。これにより、データの分布形状が視覚的に把握できます。</li>



<li><strong>中央値と四分位範囲の表示</strong>: バイオリンプロットには、中央値や四分位範囲などの要約統計量が含まれており、各データセットの中央値と四分位範囲を示します。</li>



<li><strong>データの密度</strong>: バイオリンプロットの幅は、各データセットの密度を表します。幅が広いほどデータが集中していることを示し、幅が狭いほどデータが分散していることを示します。</li>



<li><strong>分布の比較</strong>: 複数のデータセットを同時にプロットすることで、異なるグループ間のデータ分布を比較することができます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code"><code>sns.catplot(data=tips, x="total_bill", y="day", hue="sex", <em><strong>kind="violin"</strong></em>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="575" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-182341.png" alt="" class="wp-image-2403" style="width:570px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-182341.png 575w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-182341-300x252.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<h4 class="wp-block-heading">様々なオプション</h4>



<p class="wp-block-paragraph">様々なオプションについては、stripplotと同じのものが非常に多いので特に挙動が変わるもの独自のものにのみフォーカスすることにします。</p>



<h5 class="wp-block-heading">split</h5>



<p class="wp-block-paragraph">バイオリンを上下に「分割」することも可能で、先ほどの二つのバイオリンプロットの上側を男性、下側を女性にすることでスペースをより効率的に使用できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="total_bill", y="day", hue="sex", kind="violin", split=True)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="579" height="485" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-221843-e1709818254956.png" alt="" class="wp-image-2404" style="width:570px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-221843-e1709818254956.png 579w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-221843-e1709818254956-300x251.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<h5 class="wp-block-heading">inner</h5>



<p class="wp-block-paragraph">ヴァイオリン内部のデータ表現を変更できます。デフォルトは「box」で箱ひげ図が描画される、「point」「stick」で各測定値にポイントやラインを描画が可能であり、「quart」で四分位数を表示できます。</p>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="total_bill", y="day", hue="sex", kind="violin", split=True, <strong><em>inner='stick'</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="582" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-223035.png" alt="" class="wp-image-2405" style="width:570px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-223035.png 582w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-223035-300x249.png 300w" sizes="(max-width: 582px) 100vw, 582px" /></figure>



<h2 class="wp-block-heading">Categorical estimate plots：<span class="marker-under">推定プロット</span></h2>



<h3 class="wp-block-heading">barplot() の実装</h3>



<p class="wp-block-paragraph">Bar Plot（棒グラフ）は、カテゴリ別のデータを比較するために使用されるグラフィカルな手法です。カテゴリ別の数値データを棒状の縦棒で表現し、それらの高さを用いて相対的な値を比較します。以下に、Bar Plotの主な特徴と使用方法を説明します。</p>



<ol class="wp-block-list">
<li><strong>カテゴリ別の比較</strong>: Bar Plotは、異なるカテゴリのデータを簡単に比較できるようにします。例えば、商品カテゴリごとの売上や各月の売上など、カテゴリごとのデータを比較するのに適しています。</li>



<li><strong>相対的な大きさの視覚化</strong>: 棒の高さは、対応するカテゴリのデータの値を表します。高さが高いほど、そのカテゴリの値が大きいことを示します。</li>



<li><strong>複数の変数の比較</strong>: 複数のカテゴリや条件を含むデータセットの場合、複数の棒グラフを並べて表示することで、異なる条件やカテゴリ間の比較が容易になります。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill",<strong><em> kind="bar"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="498" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-225359.png" alt="" class="wp-image-2406" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-225359.png 498w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-225359-300x292.png 300w" sizes="(max-width: 498px) 100vw, 498px" /></figure>



<h3 class="wp-block-heading">countplot() の実装</h3>



<p class="wp-block-paragraph">Count Plotは、カテゴリごとのデータの出現回数を可視化するためのグラフです。各カテゴリに属するデータ点の数を棒グラフやヒストグラムの形式で表示し、カテゴリごとの頻度を比較します。主にカテゴリ型の変数の分布を理解するために使用されます。</p>



<ol class="wp-block-list">
<li><strong>カテゴリの頻度の比較</strong>: Count Plotは、異なるカテゴリのデータの出現回数を直感的に比較できるようにします。カテゴリごとの頻度の違いを視覚的に把握できます。</li>



<li><strong>データの集計と可視化</strong>: データセット内のカテゴリデータの出現回数を集計し、それを棒グラフやヒストグラムの形式で視覚化します。</li>



<li><strong>カテゴリ型変数の分析</strong>: 主にカテゴリ型の変数（例：性別、地域、カテゴリなど）の分布を分析するのに適しています。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", <strong><em>kind="count"</em></strong>)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="501" height="484" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231023.png" alt="" class="wp-image-2407" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231023.png 501w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231023-300x290.png 300w" sizes="(max-width: 501px) 100vw, 501px" /></figure>



<h3 class="wp-block-heading">pointplot() の実装</h3>



<p class="wp-block-paragraph">Point Plotは、カテゴリ変数と数値変数の関係を可視化するためのグラフです。各カテゴリの平均値や中央値などの集計値をポイントとしてプロットし、その間の信頼区間を線で表現します。Point Plotは、異なるカテゴリ間の数値の比較や傾向の把握に役立ちます。</p>



<ol class="wp-block-list">
<li><strong>カテゴリ間の数値比較</strong>: Point Plotは、カテゴリごとの数値の平均や中央値をポイントで示すことで、異なるカテゴリ間の数値の比較を容易にします。</li>



<li><strong>信頼区間の表示</strong>: ポイントの周りに表示される線は、信頼区間を表します。これにより、集計値のばらつきや統計的な信頼性を視覚的に評価できます。</li>



<li><strong>傾向の把握</strong>: カテゴリごとのポイントと信頼区間を比較することで、異なるカテゴリ間の傾向やパターンを把握するのに役立ちます。</li>
</ol>



<h4 class="wp-block-heading">最小コード</h4>



<pre class="wp-block-code python"><code>sns.catplot(data=tips, x="day", y="total_bill", <strong><em>kind="point"</em></strong>, hue="sex")</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="583" height="483" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231939.png" alt="" class="wp-image-2408" style="width:500px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231939.png 583w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-231939-300x249.png 300w" sizes="(max-width: 583px) 100vw, 583px" /></figure>



<h5 class="wp-block-heading">それぞれのスタイルを個別に変更する</h5>



<ol class="wp-block-list">
<li><strong>カラーマップの指定</strong>: paletteパラメータを使用して、辞書型で異なるカテゴリに対応する色を指定することができます。これにより、デフォルトの色以外の色を使用してプロットを作成できます。</li>



<li><strong>ラインスタイルの指定</strong>: linestylesパラメータを使用して、リスト型で異なるカテゴリに対応するラインのスタイルを指定することができます。</li>



<li><strong>マーカーの指定</strong>: markersパラメータを使用して、リスト型で異なるカテゴリに対応するマーカーを指定することができます。</li>
</ol>



<pre class="wp-block-code"><code>sns.catplot(
    data=tips, x="day", y="total_bill", kind="point", hue="sex",
<strong><em>    palette={"Male": "g", "Female": "m"},
    markers=&#91;"^", "o"], linestyles=&#91;"-", "--"]</em></strong>
)</code></pre>



<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" width="581" height="480" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-232341.png" alt="" class="wp-image-2409" style="width:580px" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-232341.png 581w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/03/スクリーンショット-2024-03-07-232341-300x248.png 300w" sizes="(max-width: 581px) 100vw, 581px" /></figure>



<h2 class="wp-block-heading">まとめ</h2>



<p class="wp-block-paragraph">Seabornのcatplotを使用することで、様々な種類のカテゴリデータを効果的に可視化することができます。散布図、分布図、推定プロットなど、さまざまな視覚化手法を使いこなし、データの特徴やパターンを理解しましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/programming/python/2387/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Seabornの基礎：データの可視化をより美しく、効果的に</title>
		<link>https://www.ct-innovation.blog/dl-freetime/kaggle/2209/</link>
					<comments>https://www.ct-innovation.blog/dl-freetime/kaggle/2209/#respond</comments>
		
		<dc:creator><![CDATA[Yuki]]></dc:creator>
		<pubDate>Fri, 16 Feb 2024 16:57:04 +0000</pubDate>
				<category><![CDATA[Kaggle]]></category>
		<category><![CDATA[matplotlib]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[seaborn]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[BI]]></category>
		<category><![CDATA[pairplot]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[データ解析]]></category>
		<category><![CDATA[可視化]]></category>
		<guid isPermaLink="false">https://www.ct-innovation.blog/dl-freetime/?p=2209</guid>

					<description><![CDATA[データの可視化は、データ解析の重要なステップです。PythonのSeabornライブラリは、Matplotlibに基づいており、美しいデフォルトスタイルや統計データの視覚化に特化した機能を提供しています。この記事では、S [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">データの可視化は、データ解析の重要なステップです。PythonのSeabornライブラリは、Matplotlibに基づいており、美しいデフォルトスタイルや統計データの視覚化に特化した機能を提供しています。この記事では、Seabornの基本的な使い方を解説し、KaggleのTitanicデータセットを使用して実例を示します。</p>



<h2 class="wp-block-heading">Seabornとは</h2>



<p class="wp-block-paragraph">Seabornは、Pythonのデータ可視化ライブラリであり、Matplotlibのラッパーライブラリとして機能します。デフォルトで美しいグラフを生成し、統計的なデータを視覚化するための機能を豊富に提供しています。データセットの関係性を調査したり、異なる変数間のパターンを発見したりするのに役立ちます。</p>



<h2 class="wp-block-heading">インストール</h2>



<p class="wp-block-paragraph">Seabornは、通常、pipコマンドを使用してインストールされます。</p>



<pre class="wp-block-code bash"><code>pip install seaborn</code></pre>



<h2 class="wp-block-heading">データの概要を確認する</h2>



<p class="wp-block-paragraph">題材はKaggleのTitanicを使うことにします。Titanicってなに？データを読み込むまでの方法は？という方は以前の記事を見てみてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/kaggle/1497/" title="Titanicをニューラルネットワークで予測する" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Titanicをニューラルネットワークで予測する</div><div class="blogcard-snippet internal-blogcard-snippet">この記事は、KaggleのことはじめであるTitanicの生存者予測というコンペティションに焦点を当てています。Kaggleは機械学習コミュニティの中心的存在であり、データ分析のコンペティションを通じて参加者がスキルを磨く場として知られています。Kaggleでの機械学習コンペティションに参加する際の手法やプロセスを理解し、自身のスキル向上に役立てることができます。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.03.23</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/kaggle/1405/" title="【Kaggle】データの読み込み方" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2019/03/kaggle-logo-transparent-300-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Kaggle】データの読み込み方</div><div class="blogcard-snippet internal-blogcard-snippet">KaggleにおけるCompetition（コンペ）への参加方法を詳細に解説した記事です。タイタニックを題材にして、Competitionへの参加登録方法からKernelの作成、Datasetの準備までを丁寧に説明しています。Kaggle初心者にとって役立つ手順をわかりやすく示しています。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.02.23</div></div></div></div></a>
</div>



<p class="wp-block-paragraph">まずはじめに、KaggleのTitanicデータセットを使用して、Seabornの機能を実際のデータに適用してみましょう。以下のコードを使用して、データセットを読み込みます。</p>



<pre class="wp-block-code python"><code>import seaborn as sns
import pandas as pd

# Reading file
titanic = pd.read_csv("../input/train.csv")</code></pre>



<h3 class="wp-block-heading">データ確認</h3>



<p class="wp-block-paragraph">まずは、どんなデータが入っているのかを確認します。</p>



<pre class="wp-block-code"><code>titanic.head()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="536" height="491" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/tit_data-1.jpg" alt="" class="wp-image-2238" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/tit_data-1.jpg 536w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/tit_data-1-300x275.jpg 300w" sizes="(max-width: 536px) 100vw, 536px" /></figure>



<h2 class="wp-block-heading">データの可視化</h2>



<h3 class="wp-block-heading">【pairplot】全組み合わせの相関グラフ</h3>



<p class="wp-block-paragraph">データセットの各変数同士の相関分析を簡単に実施できる関数として<code>pairplot</code>があります。</p>



<pre class="wp-block-code python"><code>sns.<strong><em>pairplot</em></strong>(titanic&#91;&#91;"Survived", "Pclass", "SibSp", "Parch", "Age", "Fare"]])
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="780" height="774" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8.jpg" alt="" class="wp-image-2236" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8.jpg 780w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8-300x298.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8-150x150.jpg 150w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-8-768x762.jpg 768w" sizes="(max-width: 780px) 100vw, 780px" /></figure>



<p class="wp-block-paragraph">このままだと、分析は不可能なのである項目で色分けします。hue=**というキーワード引数に色分けしたいフィールドを書くとグループごとに色分けされます。</p>



<p class="wp-block-paragraph">Survivedで色分けしましょう。0が死亡で1が生存なので青が死亡、オレンジが生存となります。</p>



<pre class="wp-block-code python"><code>sns.pairplot(titanic&#91;&#91;"Survived", "Pclass", "SibSp", "Parch", "Age", "Fare"]], 
             <strong><em>hue="Survived"</em></strong>)
plt.show()</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://ct-innovation01.xyz/DL-Freetime/wp/wp-content/uploads/2019/03/4b65ba2c995eff70d242ad16f5177683.jpg" alt="" class="wp-image-1660"/></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">私は統計学のエキスパートではないのでこれを見てもParchのグラフを見るとParchが0の人は生存率が高そう&#8230;かな？ぐらいであとはさっぱりです。</p>
</div></div>



<p class="wp-block-paragraph">この画像を作成するために以前紹介しているmatplotlibを使おうと思うとかなり大変です。subplotでこの数のグラフを準備してそれぞれのデータを入れてフォーマットを整える必要があります。</p>



<p class="wp-block-paragraph">どうしてもやってみたい方は、こちらの記事を参考にやってみてください。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">
</div>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-reference">

<a target="_blank" href="https://www.ct-innovation.blog/dl-freetime/programming/python/315/" title="matplotlibの基本: 散布図の描画方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-320x180.png 320w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-240x135.png 240w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2018/12/Figure_1-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">matplotlibの基本: 散布図の描画方法</div><div class="blogcard-snippet internal-blogcard-snippet">本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、散布図の描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.ct-innovation.blog/dl-freetime" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">www.ct-innovation.blog</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2018.07.09</div></div></div></div></a>
</div>



<h3 class="wp-block-heading">【catplot】カテゴリーごとの棒グラフ</h3>



<p class="wp-block-paragraph">カテゴリー間の比較や分布を可視化するための有用な手法です。このグラフは、異なるカテゴリーに属するデータポイントの数値的な比較や分布を理解するのに役立ちます。こちらはcatplot関数で対応できます。</p>



<h4 class="wp-block-heading">1．同乗した兄弟や配偶者の数と生存率</h4>



<p class="wp-block-paragraph">同乗した兄弟や配偶者の数のカテゴリに対して生存したかどうかの推定値（指定しなければ平均値）をプロットするようなコードとその結果です。推定値の周りの信頼区間も計算され、誤差範囲も黒いラインでプロットされます。</p>



<pre class="wp-block-code python"><code>sib_s = sns.<em><strong>catplot</strong></em>(x="SibSp",y="Survived", data=titanic, kind="bar", size = 6 )
sib_s = sib_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="427" height="420" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-1.jpg" alt="" class="wp-image-2243" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-1.jpg 427w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-1-300x295.jpg 300w" sizes="(max-width: 427px) 100vw, 427px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">あまり大家族だと生存率は高くないようです。救命ボートに全員で乗りたいが空きがなかったとかが原因なのでしょうか？ただ、<span class="marker-under">そこまで重要なファクターではなさそうです</span>。</p>
</div></div>



<h4 class="wp-block-heading">2．性別と生存率</h4>



<p class="wp-block-paragraph">では、性別というカテゴリに対して生存したかどうかの推定値をプロットさせます。</p>



<pre class="wp-block-code python"><code>s_s = sns.catplot(<strong><em>x="Sex"</em></strong>, y="Survived", data=titanic, kind="bar", size=6)
s_s = s_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="420" height="416" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1.jpg" alt="" class="wp-image-2235" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1.jpg 420w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1-300x297.jpg 300w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-1-150x150.jpg 150w" sizes="(max-width: 420px) 100vw, 420px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">性別で見ると男性の生存率は結構低いことがわかります。</p>



<p class="wp-block-paragraph">そういえば、ある映画でも描かれてましたが女性と子供を先にボートに乗せてましたね。</p>



<p class="wp-block-paragraph">とにかく<span class="marker-under-blue">性別はそれなりに重要な特徴変数</span>になりそうです。</p>
</div></div>



<h4 class="wp-block-heading">3．チケットクラスと生存率</h4>



<p class="wp-block-paragraph">次に、チケットクラス（新幹線でいうと1がグリーン、2が指定席、3が自由席というイメージ）と生存に相関があるかどうかも同様に見ることができます。</p>



<pre class="wp-block-code python"><code>c_s = sns.catplot(<strong><em>x="Pclass",y="Survived"</em></strong>, data=titanic, kind="bar", size=6)
c_s = c_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="433" height="420" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-10.jpg" alt="" class="wp-image-2244" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-10.jpg 433w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-10-300x291.jpg 300w" sizes="(max-width: 433px) 100vw, 433px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">チケットクラスは1等から順に生存率は下がっています。</p>



<p class="wp-block-paragraph">やはり<span class="marker-under-blue">高いチケットを買った層は優先</span>されているみたいです。</p>
</div></div>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-memo block-box">
<p class="wp-block-paragraph">ちなみに、タイタニック号の乗船料金はいくらだったのか？<br>（※ドル円換算レートは記事作成時のレート［USD/JPY 150.64］を参考にしています。）</p>



<ul class="wp-block-list">
<li>1等スイート：￡870 / $4,350（現在の価値に換算して約750万円）</li>



<li>1等：￡30 / $150（現在の価値に換算して約26万円）</li>



<li>2等：￡12 / $60（現在の価値に換算して約10万円）</li>



<li>3等：￡3 ~ ￡8 / $15 ~ $40（現在の価値に換算して約3万円～約7万円）</li>
</ul>



<p class="wp-block-paragraph">スイートとんでもない値段ですね。</p>
</div>



<h4 class="wp-block-heading">4．性別＋チケットクラスと生存率</h4>



<p class="wp-block-paragraph">さらに性別とチケットクラスの組み合わせが生存に相関があるかどうかも同様に見てみましょう。</p>



<pre class="wp-block-code python"><code>c_s = sns.catplot(x="Pclass", y="Survived",<strong><em> hue="Sex",</em></strong>
                  data=titanic, kind="bar", size = 6 )
c_s = c_s.set_ylabels("survival prob")
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="500" height="425" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e.jpg" alt="" class="wp-image-2234" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e.jpg 500w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4cb3c1f00a1f7efdcfd64fb3c9ad450e-300x255.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">ここで注目するところは、1等チケットを持っている男性よりも3等チケットを持った女性のほうが生存率が高いことです。</p>



<p class="wp-block-paragraph">このことから<span class="marker-under-blue">チケットの格よりも性別のほうが重要</span>なファクターであることが汲み取れますね。</p>
</div></div>



<h3 class="wp-block-heading">【countplot】カテゴリごとのカウントグラフ</h3>



<p class="wp-block-paragraph">今度は性別と生死で場合分けを行ってカウントしてくれるcountplotを利用してみます。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-check block-box">
<p class="wp-block-paragraph">前項で男性の生存率は低いことはわかりましたが、男性客が圧倒的に多かったから生存率が低いだけである可能性は捨てきれません。カウントをとってみることで生存数の絶対値が性別による差はなくただ単に男女同じ人数をボートに乗せた結果ではないのか。その場合性別は重要なファクターであるかどうかを再考する必要が出てくるかもしれません。</p>
</div>



<pre class="wp-block-code python"><code>count_s = sns.<strong><em>countplot</em></strong>(x="Sex", hue="Survived", data=titanic)
plt.show()</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="401" height="276" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-2.jpg" alt="" class="wp-image-2242" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-2.jpg 401w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/4b65ba2c995eff70d242ad16f5177683-2-300x206.jpg 300w" sizes="(max-width: 401px) 100vw, 401px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">男性が100名程度に対して、女性は200名超の倍以上が助かっています。</p>



<p class="wp-block-paragraph">この結果からやはり<span class="marker-under-blue">性別は重要なファクターである</span>といえそうです。</p>
</div></div>



<h3 class="wp-block-heading">【FacetGrid】属性ごとのグラフ</h3>



<p class="wp-block-paragraph">最後に年齢のように連続値となっているデータにおいて生存率を調べたい場合catplotではうまく可視化できません。そこでFacetGrid関数を用いることで、0-10歳までのグループ、11-20歳までのグループといった属性に分けて、その属性ごとにグラフを描画させます。</p>



<div class="wp-block-cocoon-blocks-tab-box-1 blank-box bb-tab bb-tips block-box">
<p class="wp-block-paragraph">無理やりcatplotした結果</p>



<figure class="wp-block-image size-full"><img decoding="async" width="500" height="416" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-9.jpg" alt="" class="wp-image-2241" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-9.jpg 500w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-9-300x250.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></figure>
</div>



<pre class="wp-block-code python"><code>Fg = sns.<strong><em>FacetGrid</em></strong>(titanic, col='Survived')
Fg = Fg.map(sns.distplot, "Age")</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="438" height="221" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-11.jpg" alt="" class="wp-image-2240" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-11.jpg 438w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-11-300x151.jpg 300w" sizes="(max-width: 438px) 100vw, 438px" /></figure>



<p class="wp-block-paragraph">さらに性別で分けて生死で色分けした形で再度描画します。</p>



<pre class="wp-block-code python"><code>Fg = sns.FacetGrid(titanic, <strong><em>col='Sex', hue="Survived"</em></strong>)
Fg = Fg.map(sns.distplot, "Age").add_legend()</code></pre>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="490" height="222" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-12.jpg" alt="" class="wp-image-2239" style="width:490px;height:auto" srcset="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-12.jpg 490w, https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/66c19942ab4ba346fdb64ccc04cde373-12-300x136.jpg 300w" sizes="(max-width: 490px) 100vw, 490px" /></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-3 sbs-line sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://www.ct-innovation.blog/dl-freetime/wp-content/uploads/2024/02/cropped-図1.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">女性だけでなく子供も生存率が高いです。</p>



<p class="wp-block-paragraph"><span class="marker-under-blue">年齢を10歳刻みで分けてファクターにするのは有効</span>と考えられそうです。</p>
</div></div>



<h2 class="wp-block-heading">結果</h2>



<p class="wp-block-paragraph">Seabornは、データの可視化を美しくグラフを非常にスマートなコードで実現できることがわかりました。この記事では、Seabornの基本的な使い方として、pairplot、catplot、countplot、FacetGridの4つの例を紹介しました。これらの機能を活用することで、データの傾向や関係性を視覚的に把握できることを実演しました。</p>



<p class="wp-block-paragraph">Seabornを使ってデータを探索し、パターンを発見し、洞察を得るための幅広い機能が提供されています。データサイエンスや機械学習の分野で作業する際に、Seabornは強力な味方となることでしょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ct-innovation.blog/dl-freetime/kaggle/2209/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
