ChatGPT4：ノーコードでPythonデータ可視化

## Code interpreter って？

ChatGPT4のプラグインにCode interpreterがあります。

Code interpreter は、ChatGPT上でPythonコードを実行するための機能を提供するプラグインです。

このプラグインはChatGPT4のデフォルトに組み込まれていますので、特別な設定もいりませんし、Pythonが使えなくても、データを与えて「分析して」等と指示するだけでChatGPT上でデータ可視化ができたりします‼️

非Pythonユーザーでも大丈夫🙆。Pythonは可視化のバラエティが豊富なのでいいですよぉ。

まずCode Interpreterって何？をChatGPTに聞いてみました。

>Code Interpreterを使用すると、Pythonコードを実行し、さまざまな種類の分析やデータ処理を行うことができます。具体的には以下のような機能が利用できます：1. データ分析と可視化 :- データセットの読み込み、分析、処理（Pandasライブラリを使用）- データの可視化（MatplotlibやSeabornライブラリを使用してグラフやチャートを作成）- 統計的分析やデータの探索2. 数学計算 :- 基本的な算術計算から複雑な数学的演算- NumPyやSciPyなどのライブラリを利用した数学的処理3. 機械学習モデルの作成と評価 :- 機械学習アルゴリズム（Scikit-learnなど）を用いたモデルの訓練と評価- 回帰、分類、クラスタリングなどのタスク4. テキスト処理 :- 文字列操作、テキストデータの解析5. その他の一般的なプログラミングタスク :- ファイル操作、データの入出力- 標準的なPythonライブラリを用いた一般的なプログラミングこれらの機能を利用して、データを分析したり、固有の問題を解決するためのスクリプトを書いたりすることができます。ただし、インターネットに接続して外部APIにアクセスしたり、非常に計算コストの高い処理を行うことはできません。また、ユーザーからアップロードされたファイルに対して操作を行うことも可能です。

ちょっとマニアックだったり、計算コストがかかる処理は。。。って感じですが、

- まずどんなデータか見なきゃ

- データ傾向把握するぞ

って時は、ノーコードでできるChatGPTの方が圧倒的にいい🎯。

ということで、データ可視化をやってみました。

## ボストン住宅価格データセットを可視化

「ボストン住宅価格データセット」は、機械学習で有名なデータセットです。

以下は、ChatGPTによるこのデータセットの解説。

>Boston Housingデータセットは、ボストン市の住宅価格に関するデータセットです。このデータセットでは、`medv`（住宅価格の中央値、単位は1000ドル）が目的変数として使用されることが一般的です。目的変数`medv`は、他の特徴量（犯罪率、部屋の数、アクセスの良さなど）に基づいて住宅価格を予測するために用いられます。データセットの種類について、Boston Housingデータセットは主に**回帰**の問題に使用されます。各特徴量に基づいて連続値の目的変数（住宅価格）を予測するためです。


### ボストン住宅価格データセットのダウンロード

データセットは、以下のサイトからダウンロードしました。

https://www.kaggle.com/datasets/arunjangir245/boston-housing-dataset

![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/ea91e84b-4cbf-5980-0cff-7fdd1a2d2510.png)


***
### データ概要確認

まず、ChatGPTにデータセットをインプットして、データ概要を確認しました。指示は以下、生成結果は動画をみてください。

指示：このデータセットのデータ概要（先頭5行を表形式で示す）、全てのデータの型、全てのデータの基本統計量の値、欠損値の有無を示してください。

https://www.youtube.com/shorts/PD9dWGZ3w-4?si=1H1bPIf5ggQ1E74y

***
基本統計量は、全データの値を示してくれなかったので、以下の指示を追加しました。
　　　
　　
指示：全てのデータの基本統計量を表形式で示してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/2c4348a4-40ca-7b47-008c-a4167351852f.png)


うん。いい感じです。次は、可視化です。
***
### データ可視化

指示：ペアプロットを描いてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/ee4b1605-a13f-70d4-a7eb-ae428928146e.png)

>ペアプロットが描かれています。このプロットは、選択された各特徴量間の関係を視覚化し、各特徴量の分布も示しています。これにより、特徴量間の相関や分布の特性を理解するのに役立ちます。特に、medv（住宅価格の中央値）と他の特徴量との関係を分析することで、価格に最も影響を与える要因を見つける手がかりが得られるでしょう。

  　
指示：相関行列を描いて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/447f1915-497b-0d15-1ddc-f3f1e057873e.png)

>相関行列を描画しました。このヒートマップは、Boston Housingデータセット内の各特徴量間の相関係数を示しています。相関係数は-1から+1の範囲で、+1は完全な正の相関を、-1は完全な負の相関を、0は相関がないことを意味します。色が暖かい（赤に近い）ほど正の相関が強く、色が冷たい（青に近い）ほど負の相関が強いことを示します。例えば、`rm`（部屋数）と`medv`（住宅価格の中央値）は正の相関が強いことがわかります。これは部屋数が多いほど住宅価格が高くなる傾向があることを示唆しています。逆に、`lstat`（低所得者の割合）と`medv`の間には強い負の相関が見られます。

  
　　
指示：目的変数との相関が高い5つの特徴量のヒストグラムを描いて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/d30478ee-163b-fce9-31c8-91509145027e.png)

>目的変数`medv`（住宅価格の中央値）との相関が高い上位5つの特徴量のヒストグラムを描画しました。これらの特徴量は、住宅価格に最も大きな影響を与える要因として考えられます。ヒストグラムは各特徴量の分布を示しており、データの形状やばらつきを把握するのに役立ちます。例えば、一部の特徴量では、特定の値に集中していることや、長い尾を持つ分布などが観察できます。

　　
指示：目的変数との相関が高い5つの特徴量の散布図を描いて

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/450ac3ab-693a-3031-3706-98d7c2807076.png)

>目的変数`medv`（住宅価格の中央値）と相関が高い上位5つの特徴量について、それぞれの散布図を描画しました。これらの散布図は、各特徴量と住宅価格との関係を視覚的に示しています。散布図を通じて、特徴量と住宅価格の中央値との間にどのような傾向があるか、また、データがどのように分布しているかを理解することができます。例えば、特定の特徴量が住宅価格にどのように影響を与えるか、または特異なデータポイント（外れ値）が存在するかどうかを観察することができます。


  　　
指示：上記の散布図に目的変数のヒートマップを追加してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/70b97656-e3bc-0d25-4d83-d4f7eeeaf6d0.png)

>相関が高い特徴量ペアの散布図に、目的変数`medv`（住宅価格の中央値）のヒートマップを追加しました。ヒートマップは、色の強度によって`medv`の値を示しています。これにより、特徴量ペア間の関係と住宅価格の中央値との関連性がより詳細に理解できます。特徴量間の関係と住宅価格の中央値との関係がどのように相互作用しているかを視覚的に確認することが可能です。

　
  
指示：LSTAT が 高くなる とRMは下がる傾向をCHAS(川に隣接しているか、隣接は1、そうでない場 合は0」で区分した散布図を描いてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/2213402f-6b2f-8114-4961-664b91874ac8.png)

>`LSTAT`（低所得者の割合）と`RM`（部屋数）の間の関係を、`CHAS`（川に隣接しているかどうか）で区分した散布図を描画しました。このプロットでは、`LSTAT`の値が高くなるにつれて`RM`がどのように変化するかを視覚化しています。また、`CHAS`による色分けにより、川に隣接する（CHAS=1）と隣接しない（CHAS=0）住宅のデータポイントを区別することができます。これにより、`LSTAT`と`RM`の関係が川に隣接しているかどうかによってどのように異なるかを観察することが可能です。


 　　
指示：CHASはfacetに、目的変数をヒートマップ表示してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/6217f323-bf85-d6f7-34b7-2727f4509c54.png)

>`LSTAT`（低所得者の割合）と`RM`（部屋数）の関係を、`CHAS`（川に隣接しているかどうか）ごとに別々に示す散布図を作成しました。加えて、目的変数`medv`（住宅価格の中央値）の値に基づいて、各データポイントをヒートマップで色分けしています。このグラフにより、川に隣接しているかどうか（`CHAS`=0 または 1）によって、`LSTAT`と`RM`の関係がどのように異なるか、また、これらの特徴量が住宅価格にどのように影響しているかを視覚的に理解することができます。

追記：当初、Jointplotは何度指示してもうまく実行できませんでしたが、再度データを読み込んでから指示するといけました。このように、ダメな時はデータを再度読み込むといける時もあるかも⁉️

　　
　　
指示：このデータを読み込んで、LSTAT（低所得者の割合）とRM（部屋数）の関係をjointplotで描いてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/813ef272-5dc9-3ea2-c988-92bfbd692608.png)

>`LSTAT`（低所得者の割合）と`RM`（部屋数）の関係を示すJointplotを作成しました。このプロットから、`LSTAT`と`RM`の間の関係を視覚的に理解することができます。散布図は、これら二つの変数間の相関関係を示しており、周辺のヒストグラムは各変数の分布を示しています。

　
これも「目的変数でヒートマップ表示して」と指示すると以下になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1275001/53871dbb-5d4a-a292-4543-c99fcd557c55.png)

***
### データ考察

指示：上記までのデータセット分析傾向から、目的変数である住宅価格はどのような特徴量が影響しているかについて、わかりやすく、詳しく解説してください。

>Boston Housingデータセットの分析から、住宅価格（目的変数`medv`）に影響を与える主要な特徴量は以下の通りです。
>1. RM（部屋数） :- `RM`は住宅価格と強い正の相関を持ちます。これは、部屋数が多い住宅の方が価格が高くなる傾向にあることを意味します。部屋数が多いと、住宅の広さや利便性が高まるため、一般的に価格が上がると考えられます。
>2. LSTAT（低所得者の割合） :- `LSTAT`は住宅価格と強い負の相関を持ちます。低所得者の割合が高い地域の住宅価格は低くなる傾向にあります。これは、低所得者の割合が高い地域が経済的に不利な地域である可能性が高く、その結果として住宅価格が下がることを示唆しています。
>3. PTRATIO（生徒と教師の比率） :- `PTRATIO`も住宅価格に影響を与える要因として現れます。生徒と教師の比率が高い（つまり、一人の教師が多くの生徒を担当する）地域では、教育資源が限られている可能性があり、これが住宅価格に負の影響を与えることがあります。
>4. TAX（固定資産税率） :- 固定資産税率が高い地域では、住宅価格が低い傾向にあります。これは、高い税率が住宅の維持コストを上げ、それが住宅価格に反映されるためです。
>5. NOX（窒素酸化物濃度） :- 環境汚染の指標である窒素酸化物の濃度が高い地域では、住宅価格が低い傾向があります。これは、汚染が進んだ地域が住居として魅力的でないと見なされるためです。
>これらの特徴量は、住宅価格に影響を与えるさまざまな側面を表しています。経済的な指標（LSTAT、TAX）、教育（PTRATIO）、環境（NOX）、そして住宅自体の特性（RM）が組み合わさって、総合的な住宅価格に影響を及ぼしています。これらの分析結果は、住宅市場における価格形成の複雑な性質を示しており、特定の地域における住宅投資や市場戦略を考える際の重要な洞察を提供します。

　
指示：ボストンの社会的な面が目的変数に影響していると思いますか？

>はい、ボストンの社会的な側面は、Boston Housingデータセットにおける目的変数である住宅価格に影響を与えていると考えられます。データセットの分析から、以下の社会的な要因が住宅価格に影響を与えていることが明らかになっています：
>1. 所得水準（LSTAT） :- 低所得者の割合が高い地域では、住宅価格が低くなる傾向があります。これは、所得水準が地域の経済力や魅力に影響を及ぼし、それが住宅価格に反映されることを示しています。
>2. 教育資源（PTRATIO） :- 生徒と教師の比率が住宅価格に影響を与えています。教育資源が豊富な地域は、家族が住むには魅力的な地域と見なされるため、住宅価格が高くなる傾向があります。
>3. 環境品質（NOX） :- 窒素酸化物の濃度は、地域の環境品質を反映しており、住宅価格に負の影響を与えます。環境汚染が進んだ地域は住宅価格が低い傾向にあります。
>4. 税制（TAX） :- 固定資産税率が住宅価格に影響を与えることは、地域の税制が住宅市場に与える影響を示しています。これらの要因は、ボストン市の社会経済的な側面が住宅市場にどのように影響を与えるかを示しています。住宅価格は単に物理的な特性だけでなく、地域の経済的、社会的、環境的条件によっても大きく形成されるため、これらの側面は重要な意味を持ちます。

## 最後に

おぉ〜、探索的データ分析（EDA）は、十分こなせそう‼️

Pythonには、AutoEDAツールと呼ばれるライブラリがいくつかありますが、これらでできるのは可視化だけ。ChatGPTはデータ傾向の考察もしてくれるので、これはヤバい💦。

しかもノーコード。。。慣れないコードを駆使してPythonと格闘していたのはなんだったのか。

これからはコード学習ではなく、Pythonのライブラリでどのような可視化ができるのかを知ることのほうが大事かも（←知ってると指示できるから）

以下はPythonライブラリ、seabornのギャラリーです。（これ以外にもある）

https://stats.biopapyrus.jp/python/python-graph-gallery.html


この記事であつかったデータは欠損値がない完全データ。案外 手間がかかるのは前処理なので、次は前処理が必要なデータでやってみようかな。

最後まで見ていただきありがとうございました😊。