总体完成
0%
阶段一 · S+A级 (Day 1-12)
0%
阶段二 · B+C+理论 (Day 13-20)
0%
阶段三 · 模拟训练 (Day 21-27)
0%
阶段四 · 考前冲刺 (Day 28-30)
0%
📅 30天每日打卡
| ✔ | 天数 | 学习内容 | 得分/备注 |
|---|
🎯 考试全景与得分策略
操作技能考试 120分钟 / 100分 · 理论知识考试另计
| 优先级 | 题目 | 名称 | 时间 | 分值 | 题型 |
|---|---|---|---|---|---|
| S | 1.1.1 | 智能医疗数据处理 | 30min | 25分 | 纯代码 |
| A | 2.2.1 | Logistic回归信用评分 | 20min | 20分 | 代码+文档 |
| A | 3.2.1 | 图像识别ONNX推理 | 20min | 20分 | 代码+文档 |
| B | 2.1.1 | 燃油效率数据清洗 | 20min | 15分 | 代码+文档 |
| B | 3.1.1 | 智能音箱分析优化 | 20min | 15分 | 纯文档 |
| C | 4.2.1 | 零售数据采集指导 | 10min | 5分 | 纯文档 |
💡 得分策略:S+A级 = 65分,拿满即稳过。B级锦上添花,C级背模板即可。
S 1.1.1 智能医疗数据处理 25分
Day 1 — 跑通代码
- 安装环境:
pip install -r requirements.txt - 运行
practices/1.1.1_.../example.ipynb,逐Cell理解输出 - 掌握
np.where条件判断、pd.cut区间划分(right=False)、groupby+apply
Day 2 — 背诵得分点
- 读CSV(1分) → np.where创建RiskLevel(3分) → value_counts(2分) → 占比(2分)
- BMI区间 bins=[0,18.5,24,28,inf] labels=['偏瘦','正常','超重','肥胖'](4分) → 比例(2分) → 计数(1分)
- 年龄区间 bins=[0,26,36,46,56,66,inf](4分) → 比例(2分) → 计数(1分)
- 关闭所有参考,独立默写完整代码
Day 3 — 变体强化
- 用 上网素材/1.1.1/1.1.1.ipynb 独立练习
- 打开 考试平台模拟界面/1.1.1.html 熟悉考试UI
- 做 上网素材/1.1.2/(sensor_data) 和 1.1.3/(credit_data) 变体
A 2.2.1 Logistic回归信用评分 20分
Day 4 — 跑通完整流程
- 运行
practices/2.2.1_.../example.ipynb - 理解完整链条:加载→drop→split→LogisticRegression(max_iter=1000)→fit→predict→pickle.dump→classification_report→SMOTE→重训练
Day 5 — 评估指标与错误分析模板
- 背诵 precision / recall / f1-score 含义
- 掌握错误分析模板:类别0(准确率0.95+召回率0.99) / 类别1(准确率0.57+召回率0.14)
- 改进建议:① SMOTE ② 特征选择优化 ③ 特征构造(交互项)
Day 6 — 文件输出练习
- 独立完成输出:2.2.1_model.pkl / results.txt / report.txt / results_xg.txt
- 编写测试报告 2.2.1.docx:模型性能 → 错误分析 → 改进建议
Day 7 — 变体强化
- 做 上网素材/2.2.1/(含docx模板) + 上网素材/2.2.2/ 变体
- 打开 考试平台模拟界面/2.2.1.html 熟悉UI
A 3.2.1 图像识别ONNX推理 20分
⚠️ practices/3.2.1 中代码全部被注释,需从第6部分参考答案学习
Day 8 — 理解代码框架
- 阅读第6部分3.2.1参考代码(完整版)
- 理解 preprocess_image: resize(256)→center_crop(224)→/255→normalize→HWC→CHW→reshape
- 理解推理链: InferenceSession→session.run→softmax→argsort Top5
Day 9 — 默写代码
- 记忆并默写 preprocess_image 函数(6参数5步处理)
- 默写推理链
session.run([output_name], {input_name: processed_image})[0]
Day 10 — 文档写作
- 编写人机交互最优方式 3.2.1.docx(11要点:界面→预加载→上传→识别→展示→反馈→帮助→优化→安全→多语言→可访问)
Day 11 — 变体强化
- 做 上网素材/3.2.1/ ~ 3.2.3/ 变体
- 打开 考试平台模拟界面/3.2.1.html 熟悉UI
⏱ Day 12:S+A级综合限时模拟
限时70分钟模拟
- 1.1.1 (30min) 独立完成
- 2.2.1 (20min) 独立完成
- 3.2.1 (20min) 独立完成
- 对照第6部分评分标准自评打分
- 记录失分点和超时环节
✅ 阶段一检查点
- 1.1.1 能独立默写全部代码(目标25分满分)
- 2.2.1 能独立完成代码+文档(目标20分满分)
- 3.2.1 能默写推理代码+预处理函数+交互文档
B 2.1.1 数据清洗与标注 15分
Day 13 — 代码部分
- 运行
practices/2.1.1_.../example.ipynb - 掌握流程:read_csv→head→dtypes→isnull→dropna→to_numeric(errors='coerce')→dropna(subset)→StandardScaler→train_test_split→to_csv
- 注意标准化只对 ['displacement','horsepower','weight','acceleration']
Day 14 — 文档+变体
- 背诵清洗规范(答对2点):①数据加载 ②检查缺失值 ③转换异常值 ④标准化 ⑤保存
- 背诵标注规范(答对3点):①数据来源 ②数据描述 ③特征选择 ④目标变量 ⑤数据划分 ⑥保存记录
- 做 上网素材/2.1.1/(含docx) + 上网素材/2.1.2/(大学生低碳生活)
B 3.1.1 智能音箱分析与优化 15分
⚠️ 数据文件实际为 smart_speaker_data.csv(非xlsx)
Day 15 — 数据分析
- 运行
practices/3.1.1_.../example.ipynb - 分析三要素:使用习惯(最常用) → 使用频率(最多/最少) → 响应时间(长/中/短)
Day 16 — 文档写作+变体
- 编写分析报告 3.1.1-1.docx + 优化方案 3.1.1-2.docx
- 背诵5个优化方向(选3):①网络优化 ②检索效率 ③本地处理 ④闹钟提醒 ⑤语音识别
- 做 上网素材/3.1.2/ ~ 3.1.3/ 变体
C 4.2.1 智能零售数据采集 5分
Day 17 — 背模板(5分钟搞定)
- 阅读 practices/4.2.1_.../example.ipynb
- 背诵6段方案:①数据源(POS/会员/库存/反馈/外部) ②采集方法(API/传感器/问卷) ③预处理(清洗/标准化/整合) ④安全合规(加密/访问控制/匿名化) ⑤存储(云/备份) ⑥分析(建模/可视化/报告)
- 限时5分钟默写完整方案
📖 理论知识第一轮
Day 18-20
- Day 18:系统学习 第3部分_理论知识复习题.docx(上半部分),标记错题
- Day 19:完成理论复习题(下半部分),标记错题
- Day 20:限时做 第5部分_理论知识模拟试卷.docx
- 统计正确率,重点:职业定义、监督/非监督学习、数据预处理、评估指标
✅ 阶段二检查点
- 2.1.1 代码+清洗标注规范能独立完成
- 3.1.1 分析报告+优化方案模板熟练
- 4.2.1 方案模板能5分钟默写
- 理论第一轮完成,正确率已统计
🔥 阶段三:全真模拟与交叉训练 (Day 21-27)
Day 21 — 全真模拟1
- 严格120分钟,6题连做,不参考资料
- 做题顺序:4.2.1→1.1.1→2.1.1→2.2.1→3.1.1→3.2.1
- 对照第6部分答案逐条评分,记录每题得分、用时、失分原因
Day 22-23 — 薄弱环节+变体训练
- 针对模拟1失分情况专项练习
- 变体训练:上网素材/1.1.4/ 1.1.5/
- 变体训练:上网素材/2.1.3/ 2.1.4/
- 变体训练:上网素材/2.2.3/ 2.2.4/ 3.1.4/ 3.1.5/ 3.2.4/ 3.2.5/
Day 24 — 全真模拟2
- 严格120分钟,争取100分钟完成
- 重点检查:文件命名正确?输出文件齐全?截图保存?
- 与模拟1对比进步
Day 25-26 — 理论知识强化
- Day 25:重做第一轮错题 + 弱项知识点扩展
- Day 26:限时做第5部分_模拟试卷第二遍,目标 >85%
Day 27 — 全真模拟3
- 目标:100分钟内完成,总分 >85
- 配合考试平台模拟界面HTML还原真实考试体验
✅ 阶段三检查点
- 操作技能模拟得分 >85分
- 操作技能能在100分钟内完成
- 理论模拟题正确率 >85%
- 每种题型至少做过3个变体
🏁 阶段四:考前冲刺 (Day 28-30)
Day 28 — 代码模板快速默写
- 1.1.1 模板(8min):read_csv→np.where→value_counts→pd.cut(BMI)→groupby→pd.cut(年龄)→groupby
- 2.1.1 模板(6min):read_csv→isnull→dropna→to_numeric→StandardScaler→train_test_split→to_csv
- 2.2.1 模板(8min):read_csv→drop→split→LogisticRegression→fit→pickle.dump→predict→report→SMOTE→refit
- 3.2.1 模板(6min):preprocess_image→InferenceSession→Image.open→preprocess→session.run→softmax→argsort
Day 29 — 文档模板默写+理论收尾
- 2.1.1 清洗标注规范(5min):清洗5点 + 标注7点
- 2.2.1 测试报告(5min):性能表 + 错误分析 + 改进建议
- 3.1.1 分析+优化(8min):三维分析 + 3个优化方向
- 3.2.1 人机交互(3min):11个要点
- 4.2.1 采集方案(3min):6段模板
- 理论错题最后一轮回顾
Day 30 — 考前最终准备
- 考生文件夹命名确认:
准考证号+身份证号后六位 - 1.1.1 → 1.1.1-1.jpg / 1.1.1-2.jpg / 1.1.1-3.jpg
- 2.1.1 → 2.1.1_cleaned_data.csv / 2.1.1.docx / 2.1.1.html
- 2.2.1 → model.pkl / results.txt / report.txt / results_xg.txt / .docx / .html
- 3.1.1 → 3.1.1-1.docx(分析) / 3.1.1-2.docx(优化)
- 3.2.1 → 3.2.1-1.jpg(截图) / 3.2.1.docx(交互)
- 4.2.1 → 4.2.1.docx
- Python + 所有依赖包已安装 + Jupyter正常运行
- 准考证、身份证准备好
- 再看一遍HTML模拟页面熟悉考试界面
💻 考试代码速查
1.1.1 完整代码(25分)
import pandas as pd
import numpy as np
data = pd.read_csv('patient_data.csv') # 1分
data['RiskLevel'] = np.where(data['DaysInHospital'] > 7, '高风险患者', '低风险患者') # 3分
risk_counts = data['RiskLevel'].value_counts() # 2分
high_risk_ratio = risk_counts['高风险患者'] / len(data) # 1分
low_risk_ratio = risk_counts['低风险患者'] / len(data) # 1分
bmi_bins = [0, 18.5, 24, 28, np.inf]
bmi_labels = ['偏瘦', '正常', '超重', '肥胖']
data['BMIRange'] = pd.cut(data['BMI'], bins=bmi_bins, labels=bmi_labels, right=False) # 4分
bmi_risk_rate = data.groupby('BMIRange')['RiskLevel'].apply(
lambda x: (x == '高风险患者').mean()) # 2分
bmi_patient_count = data['BMIRange'].value_counts() # 1分
age_bins = [0, 26, 36, 46, 56, 66, np.inf]
age_labels = ['≤25岁', '26-35岁', '36-45岁', '46-55岁', '56-65岁', '>65岁']
data['AgeRange'] = pd.cut(data['Age'], bins=age_bins, labels=age_labels, right=False) # 4分
age_risk_rate = data.groupby('AgeRange')['RiskLevel'].apply(
lambda x: (x == '高风险患者').mean()) # 2分
age_patient_count = data['AgeRange'].value_counts() # 1分
2.2.1 完整代码(20分)
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import pickle
from sklearn.metrics import classification_report
from imblearn.over_sampling import SMOTE
data = pd.read_csv('finance数据集.csv')
X = data.drop(['SeriousDlqin2yrs', 'Unnamed: 0'], axis=1)
y = data['SeriousDlqin2yrs']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
with open('2.2.1_model.pkl', 'wb') as file:
pickle.dump(model, file)
y_pred = model.predict(X_test)
pd.DataFrame(y_pred, columns=['预测结果']).to_csv('2.2.1_results.txt', index=False)
report = classification_report(y_test, y_pred, zero_division=1)
with open('2.2.1_report.txt', 'w') as file:
file.write(report)
# SMOTE 过采样纠正
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train, y_train)
model.fit(X_resampled, y_resampled)
y_pred_resampled = model.predict(X_test)
pd.DataFrame(y_pred_resampled, columns=['预测结果']).to_csv('2.2.1_results_xg.txt', index=False)
3.2.1 完整代码(20分)
import onnxruntime as ort
import numpy as np
import scipy.special
from PIL import Image
def preprocess_image(image, resize_size=256, crop_size=224,
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]):
image = image.resize((resize_size, resize_size), Image.BILINEAR)
w, h = image.size
left = (w - crop_size) / 2
top = (h - crop_size) / 2
image = image.crop((left, top, left + crop_size, top + crop_size))
image = np.array(image).astype(np.float32)
image = image / 255.0
image = (image - mean) / std
image = np.transpose(image, (2, 0, 1))
image = image.reshape((1,) + image.shape)
return image
session = ort.InferenceSession('resnet.onnx') # 2分
with open('labels.txt') as f:
labels = [line.strip() for line in f.readlines()]
input_name = session.get_inputs()[0].name
output_name = session.get_outputs()[0].name
image = Image.open('img_test.jpg').convert('RGB') # 2分
processed_image = preprocess_image(image).astype(np.float32) # 2分
output = session.run([output_name], {input_name: processed_image})[0] # 2分
probabilities = scipy.special.softmax(output, axis=-1) # 2分
top5_idx = np.argsort(probabilities[0])[-5:][::-1] # 2分
top5_prob = probabilities[0][top5_idx]
for i in range(5):
print(f"{i+1}: {labels[top5_idx[i]]} - Probability: {top5_prob[i]}")
📋 考试注意事项
建议做题顺序
| 顺序 | 题目 | 时间/分值 | 说明 |
|---|---|---|---|
| 1 | 4.2.1 | 10min/5分 | 纯文档,快速热手 |
| 2 | 1.1.1 | 30min/25分 | 分最高优先保 |
| 3 | 2.1.1 | 20min/15分 | 流程固定 |
| 4 | 2.2.1 | 20min/20分 | 步骤最多 |
| 5 | 3.1.1 | 20min/15分 | 背模板 |
| 6 | 3.2.1 | 20min/20分 | 需默写代码 |
文件输出清单
| 题目 | 必须提交的文件 |
|---|---|
| 1.1.1 | 1.1.1-1.jpg 1.1.1-2.jpg 1.1.1-3.jpg |
| 2.1.1 | 2.1.1_cleaned_data.csv 2.1.1.docx 2.1.1.html |
| 2.2.1 | 2.2.1_model.pkl results.txt report.txt results_xg.txt .docx .html |
| 3.1.1 | 3.1.1-1.docx(分析) 3.1.1-2.docx(优化) |
| 3.2.1 | 3.2.1-1.jpg(截图) 3.2.1.docx(交互) |
| 4.2.1 | 4.2.1.docx |
代码易错点
pd.cut必须加right=False(左闭右开)LogisticRegression必须加max_iter=1000classification_report必须加zero_division=1preprocess_image中 mean/std 是固定值,不要改- 保存结果用
pd.DataFrame(y_pred, columns=['预测结果']).to_csv()
⭐ 技能掌握自评
| 技能点 | 题目 | 分值 | 掌握程度 |
|---|---|---|---|
| np.where + pd.cut + groupby | 1.1.1 | 25分 | |
| LogisticRegression + pickle + SMOTE | 2.2.1 | 20分 | |
| ONNX推理 + 图像预处理 | 3.2.1 | 20分 | |
| 数据清洗 + StandardScaler | 2.1.1 | 15分 | |
| 数据分析报告 + 优化方案 | 3.1.1 | 15分 | |
| 数据采集方案文档 | 4.2.1 | 5分 | |
| classification_report解读 | 2.2.1 | — | |
| 清洗/标注规范文档 | 2.1.1 | — | |
| 理论知识(职业定义/ML/评估) | 理论卷 | — |