はじめに
今回は、Ollama 経由で pandasai を活用したデータ分析してみる方法を紹介します。この記事では、タイタニックのデータセットを使って具体的な実装例を示します。
前回以下の記事を投稿したのですが、その時よりは良い結果を得られました。
pandasaiとは?
pandasaiは、Pandasデータフレームを操作するためのインテリジェントなライブラリです。自然言語でのデータ操作を可能にし、データの可視化、データクレンジング、特徴量生成など、幅広い機能を提供します。これにより、データサイエンティストやアナリストがデータ操作をより直感的に行えるようになります。
主な機能
- 自然言語でのクエリ: データに対して自然言語で質問を行い、その結果を得ることができます。
- データ可視化: グラフやチャートを生成してデータを視覚的に表示します。
- データクレンジング: 欠損値の処理やデータセットのクレンジングを行います。
- 特徴量生成: データの品質を向上させるための特徴量を生成します。
Ollamaとは?
Ollamaは、LLama3やLLava、vicunaやPhiなどのオープンに公開されているモデルを手元のPCやサーバーで動かすことの出来るツールです。Ollamaをインストールしていて、モデルはllama3をダウンロードしている、前提で、以下の説明を進めます。
必要なライブラリのインストール
まず、以下のコマンドを実行して必要なライブラリをインストールします。
!pip install pandas langchain_community pandasai ollama
pandasaiの基本的な使い方
APIキーを使用する場合
pandasaiは、クラウドベースのLLMを利用するためにAPIキーを使用します。以下は、その設定方法と使用例です。
import os
import pandas as pd
from pandasai import Agent
# サンプルデータフレーム
sales_by_country = pd.DataFrame({
"country": ["United States", "United Kingdom", "France", "Germany", "Italy", "Spain", "Canada", "Australia", "Japan", "China"],
"sales": [5000, 3200, 2900, 4100, 2300, 2100, 2500, 2600, 4500, 7000]
})
# APIキーを環境変数として設定
os.environ["PANDASAI_API_KEY"] = "YOUR_API_KEY"
# エージェントの初期化
agent = Agent(sales_by_country)
response = agent.chat('Which are the top 5 countries by sales?')
print(response)
Ollama経由での使用
Ollamaを使用する場合は、APIキーが不要です。以下は、その設定方法と使用例です。
import pandas as pd
from langchain_community.llms import Ollama
from pandasai import SmartDataframe
# Ollamaモデルの初期化
llm = Ollama(model="llama3")
# サンプルデータとしてタイタニックのデータセットを読み込む
data = pd.read_csv(
"https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv"
)
# SmartDataframeの作成
df = SmartDataframe(data, config={"llm": llm})
# プロンプトを入力
prompt = input("プロンプトを入力してください: ")
if prompt:
# 応答の生成
response = df.chat(prompt)
print("プロンプト:" + prompt)
print("生成された応答:")
print(response)
else:
print("プロンプトを入力してください!")
実行例と出力
上記のコードを実行すると、プロンプトとして任意の質問を入力することで、データに基づいた応答を生成することができます。例えば、「how many rows are there in PassengerId?」と入力すると、その結果が表示されます。
まとめと結論
pandasaiは、APIキーを使用してクラウドベースのLLMを利用する方法と、Ollama経由でローカルのLLMを利用する方法の両方に対応しています。用途や環境に応じて使い分けることで、柔軟にデータ分析を行うことができます。Ollama経由でも、このタイタニックデータセットの内容であれば、上記のように自然言語でデータ分析できました。
詳しい情報や使用例については、公式ドキュメントを参照してください。
参考情報
Tirendaz AIチャンネルさん
この動画では、Streamlit、Ollama、PandasAIを使用してローカル環境で無料でデータ分析アプリを構築する方法を紹介します。セットアップからアプリの初期化、Ollamaの起動、モデルの初期化、推論の実行までの手順を解説します。
環境情報
google colab proで確認した