いまさらChatGPT GPTs 【Data Analyst】
はじめに
OpenAIのChatGPTで使えるようになった話題のGPTsですが、使ってみたいと思いながらそのまま放置していました。
自分でもノーコードでオリジナルのGPTsが作れます。
自作のAIエージェントがノーコード(ノンプログラミング)で作れるようなイメージですね。
気づけばいろんなGPTsが登場して、世の中を賑わせているようです。
いまさらですが1つ使ってみました。
Data Analyst
ChatGPTの画面で左側メニューから「Explore GPTs」をクリックします。
そうするとGPTsのリストが表示され、途中でChatGPTチームが作成したGPTsがいます。
その中に「Data Analyst」がいますので使ってみましょう。
名前のとおりデータ分析してくれそうです。
使い方は簡単です。
分析したいファイルをアップロードして質問してみましょう。
プロンプト
このCSVファイルから何がわかりますか?
実行結果
GPT
ファイルの内容を確認した後、どのようなデータが含まれているかを分析し、見つけた情報を共有します。まずはファイルを開いて内容を確認しましょう。
Error analyzing
ファイルを読み込もうとしたところ、エンコーディングの問題でエラーが発生しました。日本語のCSVファイルの場合、しばしばエンコーディングとしてshift_jisやcp932が使用されます。このエンコーディングを指定して再度ファイルを読み込んでみます。
ファイルから読み取れる情報は以下の通りです:
このCSVファイルには、事故に関するデータが含まれているようです。
ファイルの構造についての説明が冒頭にあり、その後にデータが続いています。
「種類」「区切り文字」「タイトル行」などのメタデータが含まれており、実際のデータ構造についての情報も提供されています。
データはカンマ区切りであり、タイトル行が存在します。
具体的なデータ項目には「No」「項目名」などがあり、それぞれのデータ型や桁数、備考についての情報も含まれています。
ただし、実際のデータ項目やその内容についての詳細は、表示された部分からは読み取ることができません。データの具体的な内容や構造をより詳しく理解するためには、ファイルのさらなる部分を確認する必要があります。データの詳細な分析を行うためには、実際のデータ項目の部分を表示してみると良いでしょう。それを行ってみましょうか?
アップロードしたデータ
交通事故のオープンデータが手元にありましたのでアップしてみました。
回答(ここから)
ファイルを読み込もうとしたところ、エンコーディングの問題でエラーが発生しました。日本語のCSVファイルの場合、しばしばエンコーディングとしてshift_jisやcp932が使用されます。このエンコーディングを指定して再度ファイルを読み込んでみます。
ファイルから読み取れる情報は以下の通りです:
このCSVファイルには、事故に関するデータが含まれているようです。
ファイルの構造についての説明が冒頭にあり、その後にデータが続いています。
「種類」「区切り文字」「タイトル行」などのメタデータが含まれており、実際のデータ構造についての情報も提供されています。
データはカンマ区切りであり、タイトル行が存在します。
具体的なデータ項目には「No」「項目名」などがあり、それぞれのデータ型や桁数、備考についての情報も含まれています。
ただし、実際のデータ項目やその内容についての詳細は、表示された部分からは読み取ることができません。データの具体的な内容や構造をより詳しく理解するためには、ファイルのさらなる部分を確認する必要があります。データの詳細な分析を行うためには、実際のデータ項目の部分を表示してみると良いでしょう。それを行ってみましょうか?
回答ここまで
コメント
項目についてはちゃんと読み取ってくれているようです。
このCSVは項目だけなので、実際のデータのCSVを分析してもらいましょう。
アップするファイル
プロンプト
このCSVから何がわかりますか?
回答結果
この新しくアップロードされたCSVファイルの内容を確認し、どのようなデータが含まれているかを分析し、見つけた情報を共有します。まずはファイルを開いて内容を確認しましょう。
アップロードされたhojuhyo_2021.csvファイルから読み取れる情報は以下の通りです:
このデータは交通事故に関連する補充票の情報を含んでいます。資料区分、都道府県コード、警察署等コード、本票番号、補充票番号などの識別情報が記載されています。
当事者種別、乗車別、乗車等の区分、エアバッグやサイドエアバッグの装備状況、人身損傷程度に関する情報が含まれています。
用途別、車両形状、車両の衝突部位、車両の損壊程度など、事故に関連する車両の詳細な情報も記録されています。
このデータは、特定の年(2021年)における交通事故の詳細を収集し、分析するために使用される可能性があります。各列の詳細を見ると、交通事故における様々な側面(事故の種類、関係者の状態、車両の情報など)が記録されており、交通安全対策や事故予防のための分析に役立つ重要なデータソースとなるでしょう。
データをさらに深く探究するには、特定の分析目的や関心のある項目についての具体的な質問が必要です。何か特定の分析や情報を知りたい場合は、ご指示ください
追加プロンプト
事故のケースとして多いのはどんなケースですか?
回答結果
事故のケースとして最も多いものを特定するためには、データの特定の列(例えば、「人身損傷程度」、「車両の衝突部位」、「用途別」や「車両形状」など)を分析して、頻度が高い値を調べることが有効です。この分析により、事故の特徴や一般的な事故タイプを理解することができます。
まずは、「人身損傷程度」、「車両の衝突部位」、「用途別」、「車両形状」の各列について、どのカテゴリが最も頻繁に発生しているかを確認してみましょう。これにより、最も一般的な事故のケースを特定できます。
分析の結果、事故のケースとして最も多いものについて以下の情報が得られました:
人身損傷程度
最も多いのは「2」のカテゴリで、61,747件となっています。この値が何を意味するかはデータの定義に依存しますが、一般的には特定の種類の損傷程度を指している可能性があります。
車両の衝突部位
大多数の事故で「車両の衝突部位」が特定されていない(空白または特定のコード)ようです。次に多いのは「30」のカテゴリで、5,828件です。このコードも具体的な部位を示していると思われますが、正確な意味合いについてはデータの説明書や辞書が必要です。
用途別
「用途別」のカテゴリでも、多くの事故で具体的な用途が記録されていないようです。最も頻繁に記録されている用途は「31」で、9,909件あります。
車両形状
「車両形状」においても、多数の事故で形状が指定されていません。指定されている中で最も多いのは「01」で、8,426件です。
これらの結果から、事故に関するデータは特定のカテゴリで集中していることがわかりますが、多くの場合、事故の特定の属性(衝突部位、用途、車両形状)が記録されていないか、または特定のデフォルト値(例えば空白や「0」など)が使用されています。最も一般的な事故のケースを正確に理解するためには、これらのカテゴリの意味を知る必要があります。また、空白や特定のコードが多いことから、データの完全性や記録の詳細度にも注意が必要です。
さらに詳しい分析や特定の情報が必要であれば、追加の質問をしてください。
回答(ここから)
事故のケースとして最も多いものを特定するためには、データの特定の列(例えば、「人身損傷程度」、「車両の衝突部位」、「用途別」や「車両形状」など)を分析して、頻度が高い値を調べることが有効です。この分析により、事故の特徴や一般的な事故タイプを理解することができます。
まずは、「人身損傷程度」、「車両の衝突部位」、「用途別」、「車両形状」の各列について、どのカテゴリが最も頻繁に発生しているかを確認してみましょう。これにより、最も一般的な事故のケースを特定できます。
分析の結果、事故のケースとして最も多いものについて以下の情報が得られました:
人身損傷程度
最も多いのは「2」のカテゴリで、61,747件となっています。この値が何を意味するかはデータの定義に依存しますが、一般的には特定の種類の損傷程度を指している可能性があります。
車両の衝突部位
大多数の事故で「車両の衝突部位」が特定されていない(空白または特定のコード)ようです。次に多いのは「30」のカテゴリで、5,828件です。このコードも具体的な部位を示していると思われますが、正確な意味合いについてはデータの説明書や辞書が必要です。
用途別
「用途別」のカテゴリでも、多くの事故で具体的な用途が記録されていないようです。最も頻繁に記録されている用途は「31」で、9,909件あります。
車両形状
「車両形状」においても、多数の事故で形状が指定されていません。指定されている中で最も多いのは「01」で、8,426件です。
これらの結果から、事故に関するデータは特定のカテゴリで集中していることがわかりますが、多くの場合、事故の特定の属性(衝突部位、用途、車両形状)が記録されていないか、または特定のデフォルト値(例えば空白や「0」など)が使用されています。最も一般的な事故のケースを正確に理解するためには、これらのカテゴリの意味を知る必要があります。また、空白や特定のコードが多いことから、データの完全性や記録の詳細度にも注意が必要です。
さらに詳しい分析や特定の情報が必要であれば、追加の質問をしてください。
回答ここまで
コメント
ちゃんとデータを読み取ってくれました。
大量のデータを読み取るのが面倒なときにこの「Data Analyst」があれば一瞬でいろいろ教えてくれそうです。
追加プロンプト
このCSVファイルを統計的に分析してください。
回答結果
CSVファイルの統計的分析を行うには、データの概要、分布、中心傾向(平均値、中央値)、散布度(標準偏差、四分位数)などの基本的な統計量を確認し、データセット内の変数間の関係を理解するために相関分析なども行うことができます。
まずは、データセットの基本的な統計量を確認し、データの概要を把握しましょう。
Error analyzing
データセットhojuhyo_2021.csvの基本的な統計量から以下の情報を読み取ることができます:
資料区分は全て同じ値(2)であることが確認できます。これは恐らく、このデータセットが特定の種類の事故に関する記録であることを示しています。
都道府県コードは10から97までの値を取り、平均値が約56です。これは、データが複数の都道府県にまたがることを示しています。
警察署等コードは50から899までの範囲の値を持ち、データが多くの警察署にまたがっていることを示しています。
本票番号は1から9,197までの値を持ち、これは事故記録の識別番号である可能性が高いです。
補充票番号は1から15までの値を取り、ほとんどの事故で1つの補充票が存在しますが、複数の補充票があるケースもあります。
当事者種別、乗車別、乗車等の区分、エアバッグの装備、サイドエアバッグの装備、人身損傷程度など、事故の具体的な状況や当事者の状態に関するデータが含まれています。これらの値の分布は、事故の性質や結果に関する重要な洞察を提供します。
特に、人身損傷程度の平均値は約1.98で、ほとんどのケースで値が「2」であることが中央値と第3四分位数からも確認できます。これは、特定の種類の人身損傷がこのデータセット内で最も一般的であることを示しています。
この統計的分析は、データセットの全体的な構造と特徴を理解するのに役立ちますが、さらに詳細な分析や特定の変数間の関係を調べるためには、追加の分析が必要です。特定の分析やさらに知りたい情報があれば、お知らせください。
グラフ表示
文章ではよくわからないのでData Analystにグラフ化してもらいましょう。
グラフ表示はしてくれるのでしょうか? なんとなく名前から考えるとグラフ表示もきっとしてくれると思ったので試してみました。
プロンプト
グラフ表示してくれますか?
回答結果
データセットからいくつかの重要な変数を選択し、これらの変数の分布や関係性を視覚化するグラフを表示します。たとえば、「人身損傷程度」と「車両の衝突部位」、「用途別」の分布をヒストグラムで、そして「人身損傷程度」と「エアバッグの装備」の関係を散布図で示すことができます。
まずは、「人身損傷程度」の分布をヒストグラムで表示しましょう。次に、「車両の衝突部位」の分布、そして「用途別」の分布をヒストグラムで表示します。最後に、「人身損傷程度」と「エアバッグの装備」の関係を散布図で見てみましょう。
しっかりグラフ表示してくれました!
文字がちゃんと出力されていないのはおそらく日本語対応してないからでしょうか。
日本語対応のmatplotlib使ってないせいかもしれません。
このあたりもプロンプトで指示を与えると、言うことをきいてくれるでしょうか?
プロンプト
グラフ表示は日本語対応しているmatplotlibを使ってください。
残念ながらそこまではできないのかもしれません。
まとめ
たぶん、もっと専門的なデータ分析もできそうですがデータ分析初心者としてはこれくらいできれば十分です。
LangChainなどでも似たようなシステムは作れるとは思いますが、既にここまでできているなら、もうこのGPTsで十分かもしれません。
次は自分オリジナルのGPTs作ってみたいと思います。
この記事が気に入ったらサポートをしてみませんか?