企业级Python数据分析方案,支持机器学习建模、时间序列预测、大数据处理与自动化报表。
Python数据分析(专业版)是一项面向实际任务的技能,主要用于能力一:机器学习建模;提供从特征工程到模型训练、评估、部署的完整流程;
销售预测、价格预测;逻辑回归、随机森林、XGBoost;Accuracy、F1、AUC;流失预测、风控识别。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
提供从特征工程到模型训练、评估、部署的完整流程。覆盖回归、分类、聚类三大任务类型,支持交叉验证、超参数调优、模型解释。
| 任务类型 | 典型算法 | 评估指标 | 适用场景 |
|---|---|---|---|
| 回归 | 线性回归、XGBoost、LightGBM | RMSE、MAE、R² | 销售预测、价格预测 |
| 分类 | 逻辑回归、随机森林、XGBoost | Accuracy、F1、AUC | 流失预测、风控识别 |
| 聚类 | K-Means、DBSCAN、层次聚类 | 轮廓系数、CH 指数 | 用户分群、异常检测 |
处理: 按照skill规范执行能力一:机器学习建模操作,遵循单一意图原则。 输出: 返回能力一:机器学习建模的执行结果,包含操作状态和输出数据。### 能力二:时间序列预测 提供 ARIMA、Prophet、LSTM 三种主流时间序列预测方案,支持季节性分解、趋势预测、置信区间计算。
处理: 按照skill规范执行能力二:时间序列预测操作,遵循单一意图原则。 输出: 返回能力二:时间序列预测的执行结果,包含操作状态和输出数据。### 能力三:多维数据透视与交互式可视化 基于 Plotly 与 Dash 构建交互式仪表盘,支持下钻、筛选、联动等交互操作,适合业务自助分析。
输入: 用户提供能力三:多维数据透视与交互式可视化所需的指令和必要参数。 输出: 返回能力三:多维数据透视与交互式可视化的执行结果,包含操作状态和输出数据。### 能力四:大数据处理集成
当 pandas 无法承载数据量时,提供 Dask(单机扩展)、PySpark(集群分布式)、DuckDB(SQL 分析)三种方案的选型建议与代码模板。
将分析流程封装为定时任务,自动从数据源拉取数据、执行分析、生成报表、分发邮件或企业微信。
输入: 用户提供能力五:自动化报表生成与调度所需的指令和必要参数。### 能力六:特征工程流水线 提供特征提取、特征选择、特征变换的标准化流水线,支持缺失值处理、编码、缩放、特征交叉等操作。
输出: 返回能力六:特征工程流水线的执行结果,包含操作状态和输出数据。
能力五:自动化报表生成与调度操作,处理输入数据并返回结果能力五:自动化报表生成与调度相关配置参数进行设置执行任务类型操作,处理用户输入并返回结果。
输入: 用户提供任务类型所需的参数和指令。
输出: 返回任务类型的处理结果。
任务类型操作,处理输入数据并返回结果任务类型相关配置参数进行设置本skill还覆盖以下能力场景: 企业级、Python、数据分析方案、支持机器学习建模、大数据处理与自动、数据分析专业版是、一套面向数据科学、家与企业级团队的、高级数据分析解决、在免费版基础上扩、展出机器学习建模、多维透视与交互式、自动化报表与调度、等能力、核心能力、提供特征工程与模、型训练流程、OLAP、定时报表自动生成、与邮件分发。这些能力在上述核心功能中均有对应处理逻辑。
基于历史销售数据训练预测模型,预测未来 30 天各品类销量,结合库存水平给出补货建议,降低库存成本。
基于用户行为数据(浏览、购买、互动)进行聚类分析,识别高价值用户群体,制定差异化营销策略。
基于用户信用数据训练分类模型,预测违约概率,结合业务规则设定审批阈值,平衡风险与通过率。
每日 TB 级的访问日志,使用 PySpark 分布式处理,提取异常模式、性能瓶颈、用户路径等关键信息。
每周一自动生成本周业务报表,包含核心 KPI、趋势分析、异常告警,自动分发到管理层邮箱与企业微信群。
本助手为知识库型 Skill,需要 Python 环境与相关库支持。直接在 Agent 对话中描述你的分析需求即可获取方案。
典型提问模板:
我有 3 年的销售数据,想预测未来 3 个月的销量,用什么模型?
我的用户行为日志每天 50GB,pandas 扛不住,有什么方案?
需要每周自动生成业务报表并分发到企业微信,如何实现?
Agent 会根据需求匹配对应的能力模块,输出"业务理解 → 方案设计 → 代码实现 → 评估方法 → 部署建议"五段式方案。
使用步骤:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 是 | 相关说明 |
| content | string | 否 | 相关说明, 默认: 默认值 |
| content | string | 否 | 相关说明, 可选值: json/text/markdown |
| style | string | 否 | 输出风格, 参考 references/style.md |
{
"success": true,
"data": {
result: "相关说明",
result: "相关说明",
result: "相关说明",
"metadata": {
"template_used": "reviewer",
"word_count": 0,
"style": "专业"
}
},
"error": null
}
输出模板参考: assets/output.json
| 症状 | 可能原因 | 排查方法 | 对策 |
|---|---|---|---|
| 模型过拟合 | 特征过多或树太深 | 对比训练集与测试集指标 | 减少特征、限制深度、正则化 |
| 模型欠拟合 | 特征不足或模型太简单 | 查看学习曲线 | 增加特征、换更强模型 |
| 时间序列预测偏差大 | 季节性未捕捉 | 查看残差图 | 调整季节性参数 |
| Dask 内存不足 | 分块过大 | 查看 blocksize | 减小 blocksize |
| 报表任务失败 | 数据源异常或代码报错 | 查看任务日志 | 加告警与执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令机制 |
| 特征重要性异常 | 数据泄漏 | 检查特征来源 | 移除未来信息特征 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| pandas / numpy | 库 | 必需 | pip install pandas numpy |
| scikit-learn | 库 | 必需 | pip install scikit-learn |
| matplotlib / seaborn | 库 | 推荐 | pip install matplotlib seaborn |
| plotly / dash | 库 | 推荐 | pip install plotly dash |
| prophet | 库 | 可选 | pip install prophet |
| xgboost / lightgbm | 库 | 可选 | pip install xgboost lightgbm |
| dask | 库 | 可选 | pip install dask |
| pyspark | 库 | 可选 | pip install pyspark |
| duckdb | 库 | 可选 | pip install duckdb |
| apscheduler | 库 | 可选 | pip install apscheduler |
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, roc_auc_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
def build_classification_model(df, features, target):
"""分类模型构建流水线"""
X = df[features]
y = df[target]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
pipeline = Pipeline([
('scaler', StandardScaler()),
('model', RandomForestClassifier(n_estimators=100, random_state=42))
])
# 交叉验证
cv_scores = cross_val_score(pipeline, X_train, y_train, cv=5, scoring='f1')
print(f"交叉验证 F1: {cv_scores.mean():.4f} ± {cv_scores.std():.4f}")
# 训练与评估
pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)
y_proba = pipeline.predict_proba(X_test)[:, 1]
print(classification_report(y_test, y_pred))
print(f"AUC: {roc_auc_score(y_test, y_proba):.4f}")
return pipeline
from prophet import Prophet
import pandas as pd
def forecast_sales(df, periods=90):
"""使用 Prophet 预测销售趋势"""
# Prophet 要求列名为 ds 和 y
data = df.rename(columns={'date': 'ds', 'amount': 'y'})
model = Prophet(
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=False,
changepoint_prior_scale=0.05
)
model.fit(data)
future = model.make_future_dataframe(periods=periods)
forecast = model.predict(future)
# 可视化
fig = model.plot(forecast)
fig2 = model.plot_components(forecast)
return forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']]
import dask.dataframe as dd
def process_large_csv(filepath):
"""使用 Dask 处理超大 CSV"""
ddf = dd.read_csv(filepath, blocksize='64MB')
# 惰性计算,调用 compute 才真正执行
result = (
ddf[ddf['amount'] > 0]
.groupby('category')
.agg({
'amount': ['mean', 'sum', 'count'],
'user_id': 'nunique'
})
.compute()
)
return result
from apscheduler.schedulers.blocking import BlockingScheduler
import smtplib
from email.mime.text import MIMEText
import pandas as pd
def generate_weekly_report():
"""生成周报表并发送邮件"""
# 1. 拉取数据
df = pd.read_sql("SELECT * FROM sales WHERE date >= CURRENT_DATE - 7", con)
# 2. 计算指标
summary = df.groupby('category').agg(
revenue=('amount', 'sum'),
orders=('order_id', 'count')
)
# 3. 生成 HTML 报表
html = summary.to_html()
# 4. 发送邮件
msg = MIMEText(html, 'html')
msg['Subject'] = '周业务报表'
msg['From'] = 'analytics@company.com'
msg['To'] = 'management@company.com'
with smtplib.SMTP('smtp.company.com') as server:
server.send_message(msg)
# 每周一早上 8 点执行
scheduler = BlockingScheduler()
scheduler.add_job(generate_weekly_report, 'cron', day_of_week='mon', hour=8)
scheduler.start()
优先从简单模型开始:线性回归/逻辑回归 → 随机森林 → XGBoost/LightGBM。简单模型可解释性好,效果不够再换复杂模型。避免一上来就用深度学习。
数值特征:对数变换、分箱、标准化;分类特征:One-Hot 编码、目标编码;时间特征:提取年月日、是否节假日;交叉特征:组合两个特征生成新特征。
回归看 RMSE(关注大误差)或 MAE(关注平均误差);分类看业务目标,关注准确率选 Accuracy,关注少数类选 F1 或 AUC;聚类看轮廓系数或业务可解释性。
Prophet 适合有强季节性、节假日效应、缺失值多的数据,配置简单;ARIMA 适合平稳序列,需要调参但理论严谨。不确定时两个都试,对比效果。
单机扩展选 Dask,API 与 pandas 几乎一致,迁移成本低;集群分布式选 PySpark,适合 TB 级以上数据与多节点并行。数据量在 10-100GB 优先考虑 DuckDB。
在报表生成流程中加入数据质量检查:行数是否在合理范围、关键指标是否为空、同比环比是否异常。检查不通过则告警并暂停报表发送。
可能是数据漂移(data drift)导致。定期监控特征分布与预测分布的变化,超过阈值时触发模型重训练。建议每月 review 一次模型效果。
常用方法:过采样少数类(SMOTE)、欠采样多数类、调整类别权重、使用 F1/AUC 等不平衡友好指标。避免只看 Accuracy。
经验法则:样本数应为特征数的 10 倍以上。特征过多时使用特征选择(基于重要性、相关性、方差)或降维(PCA)减少维度。
使用 SHAP 或 LIME 等模型解释工具,展示特征对预测结果的贡献度。避免用业务方听不懂的术语,用具体案例说明模型如何决策。
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接,执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令请求;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
-
-
-
相关专题
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习
共0课时 | 0人学习