← 返回首页
🧠

数据分析LLM:AI数据分析助手

📂 llm ⏱ 3 min 474 words

--- 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])

最佳实践

  1. 提供完整信息:提供完整的数据结构和上下文
  2. 明确目标:明确分析目标和业务问题
  3. 验证结果:验证分析结果的准确性
  4. 迭代改进:根据反馈迭代改进分析

总结

LLM数据分析助手可以帮助快速理解和分析数据,生成有价值的商业洞察。通过合理使用,可以显著提高数据分析效率。