一、人机协同的基本原则(合规前提)

依据 CSDN 规范第 2、9 条,科研中使用 AI 必须遵守:

  • ▶️ 责任主体不可转移:AI 生成内容须经人工审查、调试、注释,作者对最终代码与结论负责;
  • ▶️ 不替代科研本质工作:实验设计、假设提出、误差分析、论文撰写逻辑仍需研究者主导;
  • ▶️ 规避版权风险:不生成受版权保护教材的课后题答案;不复现未开源论文的核心算法细节;不爬取付费数据库内容;
  • ▶️ 数据安全第一:敏感实验数据仅在本地环境处理,避免上传至不可控第三方平台。

二、AI 擅长环节 × 人类主导环节:四类科研任务的高效组合

1. 编程环节:AI 补全模板,人类把控逻辑

需求理解

❌ 无法理解未明确表述的科研目标

✅ 明确输入/输出、约束条件、评价指标

伪代码/注释撰写

✅ 根据自然语言注释生成初稿

✅ 用精准技术语言描述任务(如:“用 IQR 剔除异常值”)

API 调用

✅ 补全 pandas/sklearn/matplotlib 常用函数调用

✅ 选择合适方法(如:t 检验 vs Mann-Whitney U)

边界测试

❌ 易忽略 corner case

✅ 设计测试用例(空输入、NaN、极端值)

注释与文档

✅ 生成基础 docstring

✅ 补充原理说明、引用文献、局限性分析

✅ 合规实践示例:数据标准化模块生成

人类撰写需求注释(关键输入):

python

# 需求:对 DataFrame 中数值列做标准化

# 要求:

# 1. 仅处理 float64/int64 类型列

# 2. 使用 sklearn StandardScaler(保留均值/标准差以便反变换)

# 3. 返回新 DataFrame + scaler 对象(供后续反变换用)

# 4. 不修改原始数据

AI 生成初稿 + 人类优化后

python

from sklearn.preprocessing import StandardScaler

import pandas as pd

import numpy as np

def standardize_numeric(df: pd.DataFrame):

"""标准化数值列(保留 scaler 用于反变换)

Args:

df: 输入 DataFrame

Returns:

standardized_df: 新 DataFrame(含标准化数值列 + 原始非数值列)

scaler: 拟合后的 StandardScaler,可调用 scaler.inverse_transform()

numeric_cols: 被标准化的列名列表

"""

# 识别数值列(避免 object/bool 类型误处理)

numeric_cols = df.select_dtypes(include=[np.number]).columns.tolist()

if not numeric_cols:

raise ValueError("未找到数值型列")

# 拟合 scaler 并转换

scaler = StandardScaler()

scaled_data = scaler.fit_transform(df[numeric_cols])

# 构建新 DataFrame(保留原索引与非数值列)

result_df = df.copy()

result_df[numeric_cols] = scaled_data

return result_df, scaler, numeric_cols

# 使用示例(人类补充)

# df_std, scaler, cols = standardize_numeric(raw_df)

# origin = pd.DataFrame(scaler.inverse_transform(df_std[cols]), columns=cols)

✅ 合规点:

  • 使用 sklearn(PyPI 开源库,BSD 许可);
  • 无硬编码路径/隐私数据;
  • 注释含参数/返回值说明,符合 PEP257。

2. 绘图环节:AI 生成模板,人类定制风格

科研图表核心需求:准确 > 美观 > 期刊适配

人机分工策略

图类型选择

❌(需基于统计特性判断)

✅ 散点图 vs 箱线图 vs 小提琴图

基础代码生成

✅ 根据描述生成 matplotlib/seaborn 模板

✅ 检查坐标轴标签、单位、尺度合理性

多子图布局

✅ 生成 subplot 代码框架

✅ 调整间距(plt.tight_layout())、对齐

期刊格式适配

⚠️ 仅提供基础设置

✅ 按 Nature/IEEE 要求调整字体、线宽、颜色

✅ 合规实践:生成符合出版要求的箱线图

人类 Prompt(精准描述):

“用 seaborn 画箱线图:x=‘group’(3 类),y=‘score’;添加散点(透明度 0.6);标题‘Performance Comparison’;y 轴标签‘Accuracy (%)’;使用 IEEE 推荐色系(蓝色系);保存为 600 dpi TIFF(无压缩)。”

AI 生成 + 人类校验代码

python

import seaborn as sns

import matplotlib.pyplot as plt

import pandas as pd

import numpy as np

# 模拟数据(实际替换为真实实验数据)

np.random.seed(42)

data = pd.DataFrame({

'group': ['A']*100 + ['B']*100 + ['C']*100,

'score': np.concatenate([

np.random.normal(0.85, 0.05, 100),

np.random.normal(0.78, 0.08, 100),

np.random.normal(0.82, 0.06, 100)

])

})

# IEEE 推荐蓝色系:#0072BD, #D95319, #EDB120(实际按需调整)

sns.set_theme(style="whitegrid")

plt.figure(figsize=(6, 4))

# 箱线图 + 散点

ax = sns.boxplot(data=data, x='group', y='score',

palette=['#0072BD', '#0072BD', '#0072BD'], # 单色系

width=0.5)

sns.stripplot(data=data, x='group', y='score',

color='black', alpha=0.6, size=3, jitter=0.2)

ax.set_title('Performance Comparison', fontsize=12)

ax.set_xlabel('Method', fontsize=10)

ax.set_ylabel('Accuracy (%)', fontsize=10)

ax.tick_params(labelsize=9)

# 按期刊要求设置字体(避免中文字体问题)

plt.rcParams['font.family'] = 'DejaVu Sans' # 通用无衬线字体

plt.tight_layout()

plt.savefig('boxplot.tiff', dpi=600,

pil_kwargs={"compression": "tiff_lzw"}) # 无损压缩

plt.show()

✅ 合规性:

  • 使用 seaborn/matplotlib(开源);
  • 输出为 TIFF(科研出版常用);
  • 无商业软件依赖;
  • 配色符合学术规范(非低俗/刺眼色系)。

3. 实验环节:AI 设计调度,人类定义指标

高效组合模式:参数扫描 + 自动记录

参数组合生成

✅ 用itertools.product生成全组合

✅ 确定参数范围与步长(基于先验知识)

实验脚本框架

✅ 生成主循环、异常捕获、结果记录结构

✅ 插入真实模型训练/评估逻辑

结果汇总

✅ 生成 DataFrame 汇总表

✅ 添加统计显著性标记(如 * p<0.05)

✅ 合规实践:超参实验自动化脚本

python

import itertools

import pandas as pd

import numpy as np

from scipy import stats

def mock_evaluate(model_name, param):

"""模拟评估函数(人类替换为真实训练)"""

# 示例:随机森林深度越大,方差越小但偏差可能上升

if model_name == "RF":

base = 0.75 + 0.1 * np.log(param['max_depth']) - 0.002 * param['max_depth']

else: # SVM

base = 0.70 + 0.05 * np.log(param['C'])

return np.random.normal(base, 0.03, 5) # 5 次重复

# 人类定义参数空间

params_grid = {

"RF": [{'max_depth': d} for d in [5, 10, 20]],

"SVM": [{'C': c} for c in [0.1, 1, 10]]

}

results = []

for model, param_list in params_grid.items():

for param in param_list:

scores = mock_evaluate(model, param)

results.append({

'model': model,

**param,

'mean_acc': np.mean(scores),

'std_acc': np.std(scores),

'n': len(scores)

})

df_results = pd.DataFrame(results)

# 人类主导:添加统计检验(如 RF_depth=20 vs SVM_C=10)

idx1 = (df_results['model'] == 'RF') & (df_results['max_depth'] == 20)

idx2 = (df_results['model'] == 'SVM') & (df_results['C'] == 10)

t_stat, p_val = stats.ttest_ind_from_stats(

mean1=df_results.loc[idx1, 'mean_acc'].iloc[0],

std1=df_results.loc[idx1, 'std_acc'].iloc[0],

nobs1=df_results.loc[idx1, 'n'].iloc[0],

mean2=df_results.loc[idx2, 'mean_acc'].iloc[0],

std2=df_results.loc[idx2, 'std_acc'].iloc[0],

nobs2=df_results.loc[idx2, 'n'].iloc[0],

equal_var=False

)

print(f"RF (depth=20) vs SVM (C=10): p = {p_val:.4f}")

df_results.round(4)

✅ 优势:

  • 避免手动记录错误;
  • 结果结构化,便于后续 LaTeX 表格生成;
  • 统计检验代码可复用。

4. 数据处理环节:AI 写清洗脚本,人类审逻辑

典型场景:多源异构数据融合

人类定义规则(关键!):

  • 缺失值:传感器数据用线性插值;问卷数据用众数填充
  • 异常值:物理量超出理论范围(如温度 > 1000°C)直接剔除
  • 单位统一:全部转为 SI 单位(m, kg, s)

AI 生成清洗函数(基于上述规则):

python

def clean_sensor_data(df):

"""清洗多传感器实验数据(人类定义规则 → AI 实现)"""

# 规则1:温度列('temp_K')异常值剔除(物理上限 1500K)

df = df[(df['temp_K'] > 0) & (df['temp_K'] < 1500)]

# 规则2:压力缺失用前后5点线性插值

df['pressure_Pa'] = df['pressure_Pa'].interpolate(limit=5, limit_direction='both')

# 规则3:问卷类列('q1', 'q2')缺失用众数填充

q_cols = ['q1', 'q2', 'q3']

for col in q_cols:

if col in df.columns:

mode_val = df[col].mode()

fill_val = mode_val.iloc[0] if not mode_val.empty else 0

df[col].fillna(fill_val, inplace=True)

return df.reset_index(drop=True)

✅ 合规性:

  • 无“一键清洗”黑箱;
  • 每步操作有明确依据;
  • 适合纳入 Methods 章节。

三、推荐工具组合(2025 年科研友好型)

代码生成

VS Code + 通义灵码(开源插件)

完全本地运行,无数据上传

文档辅助

Obsidian + Copilot 插件(用户自订订阅)

笔记本地存储,AI 仅辅助写作

实验管理

MLflow(开源) + GitHub Actions(CI/CD)

实验参数/指标自动记录,支持复现

公式处理

Mathpix Snip(OCR→LaTeX) + Overleaf

免费额度够用,输出标准 LaTeX

模型调试

Jupyter + Explainable AI (SHAP/LIME)

开源库解释模型,提升结果可信度

⚠️ 严格规避(依据规范第 4、9 条):
❌ 不使用“破解版 PyCharm 教学版”;
❌ 不嵌入“扫码加群领代码”;
❌ 不推广“代跑实验”服务。


四、总结:构建可持续的 AI 科研工作流

  1. 流程标准化
    明确需求 → 人工写注释 → AI 生成初稿 → 人工精修 → 单元测试 → 归档

  2. 工具轻量化
    优先选择可本地部署的开源工具(如 Ollama 运行 Qwen),避免数据外泄风险。

  3. 成果可追溯
    在代码中保留关键决策注释,例如:

    python

    # 选择 Mann-Whitney U 检验(依据:数据非正态,Shapiro-Wilk p=0.012)

  4. 持续迭代
    定期更新 Prompt 技巧(如加入“请使用 pandas 2.0 新 API”),提升生成质量。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐