数据分析LLM:AI数据分析助手
--- title: "数据分析LLM:AI数据分析助手" description: "使用LLM进行数据分析和洞察生成" tags: ["数据分析", "AI分析", "数据洞察", "LLM", "商业智能"] category: "llm" icon: "📈"
数据分析LLM:AI数据分析助手
概述
LLM数据分析助手可以帮助理解数据、生成洞察、创建可视化建议和自动化分析流程。
核心功能
1. 数据理解
from openai import OpenAI
import pandas as pd
from typing import Dict, List
class DataUnderstandingAssistant:
"""数据理解助手"""
def __init__(self, model: str = "gpt-4"):
self.client = OpenAI()
self.model = model
def understand_data(self, df: pd.DataFrame) -> str:
"""理解数据"""
data_info = {
"shape": df.shape,
"columns": list(df.columns),
"dtypes": df.dtypes.to_dict(),
"sample": df.head().to_dict(),
"statistics": df.describe().to_dict()
}
prompt = f"""请分析以下数据集并提供见解:
数据信息:
- 形状: {data_info['shape']}
- 列名: {data_info['columns']}
- 数据类型: {data_info['dtypes']}
样本数据:
{data_info['sample']}
统计信息:
{data_info['statistics']}
请提供:
1. 数据概览
2. 关键特征
3. 潜在问题
4. 分析建议"""
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一个数据分析专家。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return response.choices[0].message.content
def suggest_analysis(self, data_info: Dict, business_question: str) -> str:
"""建议分析方法"""
prompt = f"""基于以下数据和业务问题,建议分析方法:
数据信息:
{data_info}
业务问题:
{business_question}
请提供:
1. 推荐的分析方法
2. 所需数据
3. 预期输出
4. 实施步骤"""
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一个数据分析策略专家。"},
{"role": "user", "content": prompt}
],
temperature=0.4
)
return response.choices[0].message.content
2. 洞察生成
class InsightGenerator:
"""洞察生成器"""
def __init__(self, model: str = "gpt-4"):
self.client = OpenAI()
self.model = model
def generate_insights(self, analysis_results: Dict) -> str:
"""生成洞察"""
prompt = f"""基于以下分析结果生成商业洞察:
分析结果:
{analysis_results}
请提供:
1. 关键发现
2. 趋势分析
3. 异常点
4. 商业建议
5. 行动计划"""
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一个商业洞察专家。"},
{"role": "user", "content": prompt}
],
temperature=0.5
)
return response.choices[0].message.content
def generate_report(self, insights: str, audience: str = "管理层") -> str:
"""生成报告"""
prompt = f"""基于以下洞察,为{audience}生成分析报告:
洞察:
{insights}
请生成结构化的报告,包括:
1. 执行摘要
2. 关键发现
3. 详细分析
4. 建议和行动计划"""
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一个报告撰写专家。"},
{"role": "user", "content": prompt}
],
temperature=0.4
)
return response.choices[0].message.content
3. 可视化建议
class VisualizationAdvisor:
"""可视化顾问"""
def __init__(self, model: str = "gpt-4"):
self.client = OpenAI()
self.model = model
def suggest_visualizations(self, data_info: Dict, analysis_goal: str) -> str:
"""建议可视化"""
prompt = f"""基于以下数据和分析目标,建议可视化方式:
数据信息:
{data_info}
分析目标:
{analysis_goal}
请提供:
1. 推荐的图表类型
2. 每种图表的用途
3. 实现代码示例
4. 设计建议"""
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一个数据可视化专家。"},
{"role": "user", "content": prompt}
],
temperature=0.3
)
return response.choices[0].message.content
def generate_visualization_code(self, chart_type: str, data: Dict) -> str:
"""生成可视化代码"""
prompt = f"""请生成以下图表的Python代码:
图表类型:{chart_type}
数据:{data}
请使用matplotlib或seaborn生成完整的可视化代码。"""
response = self.client.chat.completions.create(
model=self.model,
messages=[
{"role": "system", "content": "你是一个Python可视化专家。"},
{"role": "user", "content": prompt}
],
temperature=0.2
)
return response.choices[0].message.content
完整工作流
class DataAnalysisWorkflow:
"""数据分析工作流"""
def __init__(self):
self.understanding = DataUnderstandingAssistant()
self.insight_generator = InsightGenerator()
self.visualization = VisualizationAdvisor()
def analyze(self, df: pd.DataFrame, business_question: str) -> Dict:
"""执行分析"""
# 1. 理解数据
data_understanding = self.understanding.understand_data(df)
# 2. 建议分析方法
data_info = {
"shape": df.shape,
"columns": list(df.columns),
"dtypes": str(df.dtypes)
}
analysis_suggestion = self.understanding.suggest_analysis(data_info, business_question)
# 3. 生成洞察
insights = self.insight_generator.generate_insights({
"data_understanding": data_understanding,
"analysis_suggestion": analysis_suggestion
})
# 4. 生成报告
report = self.insight_generator.generate_report(insights)
# 5. 建议可视化
visualizations = self.visualization.suggest_visualizations(data_info, business_question)
return {
"data_understanding": data_understanding,
"analysis_suggestion": analysis_suggestion,
"insights": insights,
"report": report,
"visualizations": visualizations
}
# 使用示例
import pandas as pd
# 创建示例数据
df = pd.DataFrame({
"date": pd.date_range("2024-01-01", periods=100),
"sales": [100 + i * 5 + (i % 7) * 10 for i in range(100)],
"category": ["A", "B", "C"] * 33 + ["A"]
})
# 执行分析
workflow = DataAnalysisWorkflow()
result = workflow.analyze(df, "分析销售趋势和季节性模式")
print("数据理解:")
print(result["data_understanding"][:500])
print("\n洞察:")
print(result["insights"][:500])
最佳实践
- 提供完整信息:提供完整的数据结构和上下文
- 明确目标:明确分析目标和业务问题
- 验证结果:验证分析结果的准确性
- 迭代改进:根据反馈迭代改进分析
总结
LLM数据分析助手可以帮助快速理解和分析数据,生成有价值的商业洞察。通过合理使用,可以显著提高数据分析效率。