AI Agent掌握時間序列與大數據框

人工智慧正迅速改變數據分析的格局,而 AI Agent 正是這場革命的最前沿。 這些由大型語言模型 (LLM) 驅動的複雜系統,具有卓越的推理目標和執行動作以實現特定目標的能力。 與僅響應查詢的傳統 AI 系統不同,AI Agent 旨在協調複雜的操作序列,包括數據的複雜處理,例如數據框和時間序列。 這種能力正在解鎖大量的現實世界應用,普及數據分析的存取,並使使用者能夠自動化報告、執行無程式碼查詢,並獲得在數據清理和操作方面無與倫比的支援。

使用 AI Agent 導航 Dataframe:兩種不同的方法

AI Agent 可以使用兩種截然不同的方法與 dataframe 互動,每種方法都有其自身的優勢和劣勢:

  • 自然語言互動: 在這種方法中,LLM 會仔細分析表格作為字串,利用其廣泛的知識庫來理解數據並提取有意義的見解。 這種方法擅長理解數據中的上下文和關係,但它可能會受到 LLM 對數字數據的固有理解以及執行複雜計算的能力的限制。

  • 程式碼生成和執行: 這種方法涉及 AI Agent 啟動專用工具以將數據集處理為結構化物件。 Agent 生成並執行程式碼片段以對 dataframe 執行特定操作,從而實現精確且高效的數據操作。 這種方法在處理數字數據和複雜計算時表現出色,但需要更高層次的技術專業知識才能實施和維護。

透過將自然語言處理 (NLP) 的強大功能與程式碼執行的精確性無縫整合,AI Agent 使廣泛的使用者能夠與複雜的數據集互動並獲得有價值的見解,而不管其技術能力如何。

實作教學:使用 AI Agent 處理 Dataframe 和時間序列

在本綜合教學中,我們將踏上探索 AI Agent 在處理 dataframe 和時間序列方面的實際應用的旅程。 我們將深入研究一系列有用的 Python 程式碼片段,這些程式碼片段可以輕鬆應用於各種相似的場景。 每行程式碼都將透過詳細的註釋進行仔細解釋,確保您可以毫不費力地複製範例並將它們調整為您的特定需求。

準備階段:介紹 Ollama

我們的探索從 Ollama 的設置開始,這是一個強大的庫,它使使用者能夠在本地運行開源 LLM,而無需基於雲端的服務。 Ollama 提供對數據隱私和性能的無與倫比的控制,確保您的敏感數據安全地保留在您的機器上。

要開始使用,請使用以下命令安裝 Ollama:

1
curl -fsSL https://ollama.com/install.sh | sh

成功安裝 Ollama 後,您可以繼續下載和運行您選擇的 LLM。 在本教學中,我們將使用 Mistral 7B 模型,該模型以其效率和準確性而聞名。 使用以下命令下載 Mistral 7B:

1
ollama run mistral

下載 Mistral 7B 模型後,您就可以開始使用 AI Agent 處理 dataframe 和時間序列了。

使用 pandas 探索 Dataframe

pandas 是一個功能強大的 Python 庫,提供靈活且富有表現力的數據結構,旨在使「關係」或「標記」數據的工作變得容易且直觀。 它是數據分析、資料處理和清洗的首選工具。

首先,我們需要安裝 pandas 庫。 使用以下命令執行此操作:

1
pip install pandas

安裝 pandas 後,我們可以匯入庫並建立一個簡單的 dataframe 作為範例:

1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd

# 建立一個字典,其中包含將用作 dataframe 數據的數據
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 27, 22],
'city': ['New York', 'London', 'Paris', 'Tokyo']}

# 從字典建立 dataframe
df = pd.DataFrame(data)

# 顯示 dataframe
print(df)

此程式碼將建立一個包含姓名、年齡和城市等欄位的 dataframe。 pandas 提供了多種方法來與 dataframe 互動,例如選擇欄位、過濾行和執行計算。

使用 AI Agent 查詢 Dataframe

現在我們已經建立了一個 dataframe,我們可以利用 AI Agent 使用自然語言查詢來與其互動。 為此,我們將使用 pandas AI 庫,該庫將 LLM 的強大功能與 pandas dataframe 的功能結合在一起。

首先,我們需要安裝 pandas AI 庫。 使用以下命令執行此操作:

1
pip install pandasai

安裝 pandas AI 後,我們可以匯入庫並初始化 SmartDataframe 物件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pandasai import SmartDataframe
from pandasai.llm.ollama import Ollama

# 初始化 Ollama LLM
llm = Ollama(model_name="mistral")

# 從 pandas dataframe 建立 SmartDataframe
df = SmartDataframe(data, config={"llm": llm})

# 使用自然語言查詢詢問 dataframe
response = df.chat("What is the average age of the people in the dataframe?")

# 顯示回應
print(response)

在此程式碼中,我們初始化了 Ollama LLM,建立了一個 SmartDataframe 物件,並使用自然語言查詢向 dataframe 詢問了一個問題。 pandas AI 將使用 LLM 來理解查詢並執行必要的程式碼來計算平均年齡。

使用 AI Agent 執行進階數據操作

除了基本查詢之外,AI Agent 還可用於執行進階數據操作,例如數據清理、轉換和視覺化。 例如,假設我們想新增一個新欄位到 dataframe,其中包含每個人年齡的平方。 我們可以使用以下程式碼使用 AI Agent 執行此操作:

1
2
3
4
5
# 使用自然語言查詢新增一個新欄位到 dataframe
df.chat("Add a new column to the dataframe called 'age_squared' that is the square of the age")

# 顯示更新後的 dataframe
print(df)

在此程式碼中,我們使用自然語言查詢來指示 AI Agent 新增一個名為 age_squared 的新欄位到 dataframe。 AI Agent 將自動產生並執行必要的程式碼來計算每個人年齡的平方並將其儲存在新欄位中。

使用 AI Agent 處理時間序列數據

時間序列數據是按時間順序索引的一系列數據點。 它廣泛用於各個領域,例如金融、經濟和工程。 AI Agent 可用於分析時間序列數據並提取有價值的見解。

首先,我們需要建立一個時間序列數據集。 我們可以使用以下程式碼使用 pandas 建立一個簡單的時間序列:

1
2
3
4
5
6
7
8
9
10
11
12
13
import pandas as pd

# 建立一個日期範圍
dates = pd.date_range('20230101', periods=100, freq='D')

# 產生一些隨機數據
data = np.random.randn(100)

# 從數據和日期建立時間序列
time_series = pd.Series(data, index=dates)

# 顯示時間序列
print(time_series)

此程式碼將建立一個包含 100 個數據點的時間序列,這些數據點按天索引。 產生隨機數據以表示時間序列中的值。

使用 AI Agent 分析時間序列數據

建立時間序列數據後,我們可以利用 AI Agent 來分析數據並提取有價值的見解。 例如,我們可以要求 AI Agent 計算時間序列的滾動平均值。 我們可以使用以下程式碼使用 AI Agent 執行此操作:

1
2
3
4
5
# 使用自然語言查詢計算時間序列的滾動平均值
time_series.chat("Calculate the rolling average of the time series with a window of 7 days")

# 顯示滾動平均值
print(time_series)

在此程式碼中,我們使用自然語言查詢來指示 AI Agent 計算時間序列的滾動平均值,視窗期為 7 天。 AI Agent 將自動產生並執行必要的程式碼來計算滾動平均值並將其顯示給我們。

AI Agent 在時間序列預測中的角色

除了分析時間序列數據之外,AI Agent 還可用於預測未來的數據點。 時間序列預測是一種使用歷史數據預測未來值的技術。 它廣泛用於各個領域,例如金融、經濟和供應鏈管理。

AI Agent 可以使用各種時間序列預測模型,例如 ARIMA、Exponential Smoothing 和 Recurrent Neural Network (RNN)。 這些模型可以使用歷史數據進行訓練,並用於預測未來的數據點。

例如,假設我們想使用 AI Agent 預測下一個月的時間序列值。 我們可以使用以下程式碼使用 AI Agent 執行此操作:

1
2
3
4
5
# 使用自然語言查詢預測下個月的時間序列值
time_series.chat("Predict the time series values for the next month using ARIMA")

# 顯示預測值
print(time_series)

在此程式碼中,我們使用自然語言查詢來指示 AI Agent 使用 ARIMA 模型預測下個月的時間序列值。 AI Agent 將自動訓練 ARIMA 模型並使用它來預測未來的數據點。

結論:AI Agent 在數據分析中的變革力量

AI Agent 正在徹底改變我們分析和處理數據的方式。 他們提供了一種以自然和直觀的方式與複雜數據集互動的強大方法,使各種技能水平的使用者都可以存取數據分析。 無論您是資料科學家、業務分析師,還是只是對探索數據感興趣,AI Agent 都可以幫助您解鎖有價值的見解並做出明智的決策。

透過將自然語言處理 (NLP) 的強大功能與程式碼執行的精確性無縫整合,AI Agent 使您能夠自動化報告、執行無程式碼查詢,並獲得在數據清理和操作方面無與倫比的支援。 無論您是處理 dataframe 還是時間序列數據,AI Agent 都可以幫助您從數據中提取最大價值。

隨著 AI Agent 的持續發展和變得越來越強大,我們可以預期它們將在未來幾年內在數據分析中發揮越來越重要的作用。 擁抱 AI Agent 的力量並開始探索它們在您的數據分析工作流程中可以提供的無限可能性。