「PandasAIの包括的ガイド」

PandasAI Comprehensive Guide

イントロダクション

生成AIと大規模言語モデル(LLM)は、人工知能(AI)と機械学習(ML)に新たな時代をもたらしました。これらの大規模言語モデルは、さまざまなドメインでさまざまなアプリケーションで使用され、AIに対する新たな視点を開いています。これらのモデルは、インターネット上の膨大なテキストデータでトレーニングされ、人間のような方法でテキストを生成することができます。最もよく知られているLLMの例は、OpenAIによって開発されたChatGPTです。それはオリジナルのコンテンツの作成からコードの書き込みまでさまざまなタスクを実行することができます。この記事では、LLMの1つであるPandasAIの一つの応用について説明します。PandasAIガイドは、Pythonの人気のあるPandasライブラリとOpenAIのGPTの融合と考えることができます。それはコードをあまり書かずにデータから素早く洞察を得るために非常に強力です。

学習目標

  • PandasとPandasAIの違いを理解する
  • PandasAIとデータ分析と可視化の役割
  • PandasAIを使用して完全な探索的データ分析ワークフローを構築する
  • 明確で簡潔で具体的なプロンプトの書き方の重要性を理解する
  • PandasAIの制限を理解する

この記事は、Data Science Blogathonの一部として公開されました。

PandasAI

PandasAIは、データ分析と可視化のタスクをより簡単にするための新しいツールです。PandasAIはPythonのPandasライブラリで構築され、その作業には生成AIとLLMが使用されています。Pandasとは異なり、データを手動で分析および操作する必要がなく、PandasAIはテキストプロンプトを提供するだけでデータから洞察を生成することができます。それはあなたの助手に指示を与えるようなものであり、熟練して堪能な人間ではなく、人間のように情報を理解し処理する機械です。

この記事では、コードの例と説明を交えながら、PandasAIを使用した完全なデータ分析および可視化プロセスをレビューします。それでは、始めましょう。

OpenAIアカウントの設定とAPIキーの抽出

PandasAIライブラリを使用するには、OpenAIアカウント(既に持っていない場合)を作成し、APIキーを使用する必要があります。以下の手順で行うことができます。

  1. https://platform.openai.comにアクセスし、個人アカウントを作成します。
  2. アカウントにサインインします。
  3. 右上の個人をクリックします。
  4. ドロップダウンメニューからAPIキーの表示を選択します。
  5. 新しいシークレットキーを作成します。
  6. シークレットキーをコピーし、コンピュータ上の安全な場所に保存します。

上記の手順に従っていれば、プロジェクトで生成AIの力を活用する準備が整っています。

PandasAIのインストール

以下のコマンドをJupyter Notebook/Google colabまたはターミナルに入力して、Pandasaiパッケージをコンピュータにインストールします。

pip install pandasai

インストールには時間がかかりますが、インストールが完了したら、Python環境に直接インポートすることができます。

from pandasai import PandasAI 

これにより、PandasAIがコーディング環境にインポートされます。準備ができましたが、まずデータを取得しましょう。

データの取得とLLMのインスタンス化

お好みのタブularデータを使用することができます。このチュートリアルでは、医療費データを使用します。(注意:PandasAIは、通常のパンダと同様に、画像などの非構造化データではなく、表形式の構造化データのみを分析できます)。

データは以下のようになります。

チャージカラムの中央値はおおよそ9382です。プロットでは、これは箱の中央にあるオレンジ色の線で表されます。チャージカラムには多くの外れ値が含まれていることが明らかになります。これらの外れ値は、上記のプロットで円で表示されています。

では、複数のカラムの関係を示すプロットを作成しましょう。

地域 vs. 喫煙者

prompt = "地域と喫煙者の水平棒グラフを作成し、凡例を小さくしてください。"
pandas_ai(data, prompt=prompt)

グラフからは、東南部地域が他の地域と比べて最も多くの喫煙者を持っていることがわかります。

年齢によるチャージの変動

prompt = '''年齢とチャージの散布図を作成し、喫煙者の値を色分けしてください。
            また、凡例も表示してください。'''
pandas_ai(data, prompt=prompt)

非喫煙者の場合、年齢とチャージは直線的な関係を持っているようですが、喫煙者の場合は特定のパターンは存在しません。

BMIによるチャージの変動

少し複雑なデータの一部を使用して、本物のデータではなく、LLMのパフォーマンスを見てみましょう。

prompt = "BMIとチャージの散布図を作成し、喫煙者の値を色分けしてください。2人未満の子供を持つ人々のデータのみを使用してください。"
pandas_ai(data, prompt=prompt)

複雑な質問でも、素晴らしいプロットを作成することができました。PandasAIは今やその真の可能性を明らかにしました。大規模言語モデルの真のパワーを目撃しました。

制約事項

  • PandasAIが生成する応答は、インターネットからトレーニングされた大量のデータによる固有のバイアスを示す場合があり、分析を妨げることがあります。公正かつ偏りのない結果を確保するためには、そのようなバイアスを理解し軽減することが重要です。
  • LLMは、曖昧さや文脈的に複雑なクエリを誤解し、正確で予期しない結果をもたらす場合があります。重要なデータに基づく意思決定を行う前に、回答を注意深く確認する必要があります。
  • 回答に時間がかかることがあり、完全な回答が得られないこともあります。サーバーはLLMをホストしており、時折、技術的な問題によりリクエストがサーバーに届かないか処理されない場合があります。
  • 大量のデータを扱う場合には、計算効率が低く、高性能なGPUや計算リソースが必要なため、ビッグデータ分析タスクには使用できません。

結論

PandasAIライブラリの素晴らしいパワーを使った実世界のデータ分析タスクの完全な解説を見ました。GPTや他のLLMを扱う際には、良いプロンプトを書く力を過小評価することはできません。

この記事の主なポイントは次のとおりです:

  • PandasAIは、Pandasに大規模言語モデルを組み合わせることで、ジェネレーティブAIの機能を追加するPythonライブラリです。
  • PandasAIは、テキストプロンプトを使用して自然言語で質問をすることで、Pandasを対話的に使用できるようにします。
  • 素晴らしい機能を持っているにもかかわらず、PandasAIには制約事項があります。ビッグデータ分析などの高度なユースケースには盲目的に信頼せず使用してください。

最後までお付き合いいただきありがとうございました。この記事が役に立ち、プロジェクトでPandasAIを使用し始めることを願っています。

よくある質問(FAQ)

Q1. PandasAIはpandasの代替ですか?

A. いいえ、PandasAIはpandasの代替ではありません。PandasAIは、Generative AIの機能を使用してpandasを強化し、pandasを補完するために作られています。

Q2. PandasAIはどのような目的で使用できますか?

A. PandasAIはデータの探索や分析、そして許可されたMITライセンスの下でのプロジェクトに使用できます。本番目的には使用しないでください。

Q3. PandasAIはどのLLMをサポートしていますか?

A. PandasAIはOpenAI、HuggingFace、Google PaLMなど、いくつかのLarge Language Models (LLMs)をサポートしています。フルリストはこちらで確認できます。

Q4. pandasとの違いは何ですか?

A. pandasでは、データ分析を行うために完全なコードを手動で書く必要がありますが、PandasAIはテキストプロンプトと自然言語を使用してコードを書かずにデータ分析を行います。

Q5. PandasAIは常に正しい答えを出力しますか?

A. いいえ、ユーザーが提供した曖昧なプロンプトやデータのバイアスのために、PandasAIは時々間違ったまたは不完全な回答を出力することがあります。

この記事に表示されているメディアはAnalytics Vidhyaの所有ではなく、著者の裁量によって使用されています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more