高二信息技术选择性必修3《数据计算与处理》教学设计:基于Python的数据清洗与特征工程实战_第1页
高二信息技术选择性必修3《数据计算与处理》教学设计:基于Python的数据清洗与特征工程实战_第2页
高二信息技术选择性必修3《数据计算与处理》教学设计:基于Python的数据清洗与特征工程实战_第3页
高二信息技术选择性必修3《数据计算与处理》教学设计:基于Python的数据清洗与特征工程实战_第4页
高二信息技术选择性必修3《数据计算与处理》教学设计:基于Python的数据清洗与特征工程实战_第5页
已阅读5页,还剩14页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高二信息技术选择性必修3《数据计算与处理》教学设计:基于Python的数据清洗与特征工程实战一、素养导向与单元定位《普通高中信息技术课程标准(2017年版2020年修订)》将“信息意识、计算思维、数字化学习与创新、信息社会责任”确立为核心素养。选择性必修3《数据计算与处理》模块,旨在引导学生理解数据的计算本质,掌握从原始数据到可用数据集的转化过程,是连接“数据与编程”“数据与算法”两大基础模块的关键枢纽。本课时对应模块中“3.3数据的计算与处理”下的“3.3.1计算生成新的数据”知识点,核心任务是让学生在真实情境中,经历数据获取、清洗、转换、特征构建的完整链条,体会“数据不等于信息,计算是生成信息的桥梁”这一核心观念。过往教学中,该知识点常沦为Pandas库API的堆砌:`dropna`、`fillna`、`apply`、`map`、`get_dummies`逐个讲解,学生虽能跟敲代码,却不知为何而清洗、为何而转换、新生成的列究竟承载何种业务含义。这种“技术还原论”切断了计算与问题解决的内在联系。本设计以“某电商平台用户画像构建”为单元大任务背景,本课时聚焦“从脏乱原始日志到建模就绪特征矩阵”的关键跨越,将计算生成新数据的过程重构为“诊断数据质量、定义计算逻辑、验证生成结果”三个认知阶段,落脚于核心素养的显性化培养。二、学情分析与教学对策学生已完成必修1《数据与编程》,掌握Python基础语法、列表字典等数据结构、函数封装;已学习选择性必修1《数据与数据结构》,理解表格数据的行列语义、CSV读写、DataFrame基本索引切片。但学生普遍存在三个认知盲区:一是缺乏“数据质量维度”的系统认知,面对缺失值、异常值、类别不一致等问题,往往凭直觉而非量化指标决策;二是不理解“特征工程为何是数据科学的核心”,不知原始字段(如“注册时间”)为何需计算生成“账户存活天数”、“是否节假日注册”等新特征;三是计算思维停留在“过程控制”层面,难以上升到“数据流转换、向量化操作、管道化构建”的抽象层级。针对上述学情,本设计采取三大对策:引入“数据质量报告单”量化诊断工具,将模糊直觉显性化;设计“特征价值假设验证”闭环,让学生在对比模型效能中体会新数据的生成意义;强制要求使用`Pipeline`与`ColumnTransformer`重构代码,倒逼学生从“写脚本”向“造工具”思维跨越。三、教学目标1.信息意识:能从业务视角识别原始数据的六大质量缺陷(完整性、一致性、准确性、时效性、唯一性、有效性),建立“数据治理先于模型构建”的职业认知。2.计算思维:能将业务规则形式化为数据转换逻辑(如分箱、编码、聚合、时序窗口),设计可复用的特征生成管道,理解向量化计算对循环迭代的效能替代。3.数字化学习与创新:能综合运用Pandas、Scikitlearn完成从原始日志到建模数据集的端到端构建,利用可视化手段验证新特征分布合理性,迭代优化计算策略。4.信息社会责任:在处理用户行为日志时,严格遵循最小化原则、脱敏规范,识别隐私风险字段(如精确GPS、身份证号),落实数据安全红线。四、重难点解析重点:缺失值处理策略的业务决策依据、类别型变量的高基数编码方案、时间序列特征的窗口聚合计算、特征生成管道的标准化封装。难点:在无标签场景下判断异常值处理的边界(删除vs修正vs保留)、构建防数据泄露的交叉验证特征生成流程、理解“计算生成新数据”本质上是“人类先验知识注入数据空间”的数学映射过程。五、教学环节设计(共3课时,本设计呈现核心第2课时)【环节一:情境复盘与质量诊断(15分钟)】教师投屏展示“电商用户画像”项目第1课时产出物:原始日志表`raw_log.csv`(12万行,45列),包含用户基础属性、浏览行为序列、交易记录、客服工单文本。要求各小组(4人/组)在5分钟内完成“数据体检”,填写《数据质量诊断卡》。诊断卡包含四个维度量化指标:1.完整性:各列缺失率、缺失模式(MCAR/MAR/MNAR)初步判断。2.一致性:枚举型字段取值规范性(如“性别”列出现Male/Female/男/女/未知五种取值)、跨表关键字一致性(用户ID在基础表与行为表中是否同构)。3.有效性:数值型字段业务边界校验(如“年龄”出现1、200;“下单金额”出现负值;“访问时长”为0但“页面深度”>5)。4.唯一性:主键重复率、完全重复行比例。教师巡视重点关注:学生是否直接用`df.isnull().sum()`甩手不管,还是结合业务语义分析缺失机制(如“客服工单文本”缺失大概率因用户未联系客服,属MNAR,不可简单填补);是否发现“注册渠道”字段存在300+个长尾取值,直接OneHot会导致维度灾难。全班汇总诊断结果,教师引导建立共识:原始数据不可直接建模,必须通过计算生成“干净、稠密、表达力强”的新数据集。写核心问题:本节课我们要解决——如何设计一套可复现、防泄露、业务可解释的计算流程,将这份“脏数据”转化为建模就绪的特征矩阵?【环节二:计算逻辑建模与分层拆解(25分钟)】教师引导学生将“计算生成新数据”拆解为三层计算图,对应三类核心操作原语。第一层:原子修复算子——针对单元格级别的纠偏。聚焦“年龄”字段。展示箱线图与直方图,可见1、0、200等异常值。提问:直接删除行还是填补?引导学生建立决策树:若异常比例<1%且非系统性偏差→删除;若>5%或呈现规律(如1均为某渠道导入)→视为缺失处理,采用分群体中位数填补(按“注册渠道”分组取中位数)。代码演示:```pythondeffix_age(series,group_by_col):将明显错误值标记为NaNseries=series.mask((series<10)|(series>90))分群体中位数填补,避免全局中位数掩盖群体差异returnseries.groupby(group_by_col).transform(lambdax:x.fillna(x.median()))```强调:此处计算生成的“修正后年龄”是新数据,其生成逻辑包含业务先验(人类寿命边界、群体差异),而非单纯数学插值。第二层:语义转换算子——针对列级别的表达重构。案例1:“注册时间”→“账户存活天数”、“注册月份正弦/余弦编码”、“是否大促前注册”。教师演示时间特征爆炸:```pythondf['reg_dt']=pd.to_datetime(df['reg_time'])ref_date=pd.Timestamp('20240101')业务快照基准日df['account_age']=(ref_datedf['reg_dt']).dt.days周期性编码,保留月份循环拓扑df['reg_month_sin']=np.sin(2np.pidf['reg_dt'].dt.month/12)df['reg_month_cos']=np.cos(2np.pidf['reg_dt'].dt.month/12)业务标签注入big_promo_eve=[pd.Timestamp(f'2023{m}01')formin[5,10,11]]df['is_promo_reg']=df['reg_dt'].apply(lambdax:any((xd).daysinrange(0,8)fordinbig_promo_eve)).astype(int)```追问:为何不用LabelEncoder直接编码月份112?引导学生理解线性模型对序数关系的误读,体会三角函数编码保留拓扑结构的数学本质。案例2:“浏览商品分类序列”(字符串列表)→“用户兴趣向量”(TFIDF加权Embedding均值)。展示从序列到向量的计算图:分词→建立词表→IDF计算→序列加权平均→固定维度向量。指出此处计算生成的新数据是稠密向量,压缩了稀疏行为的语义信息,是“数据压缩与语义提炼”的典型范式。第三层:聚合构造算子——针对实体级别的画像升维。以用户ID为粒度,将行为日志聚合为用户画像宽表。核心计算模式:`groupby('user_id').agg(...)`。设计聚合字典:```pythonagg_spec={'item_id':['nunique','count'],商品丰富度、总交互数'category_id':lambdax:x.mode().iloc[0]ifnotx.mode().emptyelse1,偏好品类'action_type':['sum','mean'],假设action_type已数值化编码'stay_time':['sum','mean','std','skew'],停留时长分布统计量'timestamp':lambdax:(x.max()x.min()).total_seconds()/3600活跃跨度(小时)}```教师强调:聚合函数的选择即业务假设的注入。`nunique`假设“广度”重要,`skew`假设“时长分布偏态”区分深度用户与刷单号。计算生成的每一列新特征,都是一个被显性化的业务假设。【环节三:工程化落地与防泄露管道构建(40分钟)】教师抛出痛点:上述代码若在Jupyter中逐cell运行,上线时如何保证训练集、验证集、测试集、线上实时流数据走完全一致的转换逻辑?如何防止“用测试集均值填补训练集缺失值”此类数据泄露?引入Scikitlearn`TransformerMixin`规范与`Pipeline`机制。现场重构“年龄修复”为符合`fit/transform`范式的自定义转换器:```pythonfromsklearn.baseimportBaseEstimator,TransformerMixinclassGroupMedianImputer(BaseEstimator,TransformerMixin):def__init__(self,group_col,target_col,clip_range=(10,90)):self.group_col=group_colself.target_col=target_colself.clip_range=clip_rangeself.median_map_=Nonedeffit(self,X,y=None):仅在训练集学习中位数映射表X_clean=X.copy()X_clean[self.target_col]=X_clean[self.target_col].mask((X_clean[self.target_col]<self.clip_range[0])|(X_clean[self.target_col]>self.clip_range[1]))self.median_map_=X_clean.groupby(self.group_col)[self.target_col].median()全局兜底中位数self.global_median_=X_clean[self.target_col].median()returnselfdeftransform(self,X):X_new=X.copy()应用相同裁剪逻辑X_new[self.target_col]=X_new[self.target_col].mask((X_new[self.target_col]<self.clip_range[0])|(X_new[self.target_col]>self.clip_range[1]))映射填补,未见分群用全局中位数X_new[self.target_col]=X_new.apply(lambdarow:self.median_map_.get(row[self.group_col],self.global_median_)ifpd.isna(row[self.target_col])elserow[self.target_col],axis=1)returnX_new```学生分组任务:仿照上述模板,完成`CategoryTargetEncoder`(目标编码,需平滑处理防过拟合)、`TimeSeriesAggregator`(滚动窗口聚合,需按时间排序防未来信息泄露)两个转换器的`fit/transform`编写。教师巡场重点排查:1.`fit`中是否误用了`y`(标签)计算统计量?目标编码必须用`y`,但均值填补绝不能用`y`。2.`transform`中是否原地修改输入DataFrame?(必须`copy`)。3.是否处理了`fit`未见过的新分类值?(映射默认值机制)。4.时间序列聚合中,`fit`是否仅学习窗口参数,`transform`时严格按时间窗口截取历史数据?整合管道演示:```pythonfromsklearn.pipelineimportPipelinefromsklearnposeimportColumnTransformerfromsklearn.preprocessingimportStandardScaler,OneHotEncoder列类型定义num_cols=['age','account_age','total_stay_time','action_count']cat_low_card=['gender','top_category','is_promo_reg']低基数类别cat_high_card=['reg_channel','city_id']高基数类别preprocess_pipe=ColumnTransformer([('num',Pipeline([('impute',GroupMedianImputer(group_col='reg_channel',target_col='age')),('scale',StandardScaler())]),num_cols),('cat_low',Pipeline([('impute',SimpleImputer(strategy='constant',fill_value='missing')),('ohe',OneHotEncoder(handle_unknown='ignore',sparse_output=False))]),cat_low_card),('cat_high',Pipeline([('impute',SimpleImputer(strategy='constant',fill_value='unknown')),('target_enc',CategoryTargetEncoder(smoothing=10.0))需在fit时传入y]),cat_high_card),],remainder='drop',verbose_feature_names_out=False)完建模管道fromlightgbmimportLGBMClassifierfull_pipe=Pipeline([('preprocess',preprocess_pipe),('model',LGBMClassifier(n_estimators=200,random_state=42))])```关键点讲解:`ColumnTransformer`实现列级差异化处理;`verbose_feature_names_out=False`保证输出特征名纯净;`handle_unknown='ignore'`应对线上新分类;目标编码放入管道时,需使用`FeatureUnion`或自定义`FitTransformWrapper`在交叉验证内部完成`fit(y)`,严防泄露。教师现场演示`cross_val_score(full_pipe,X,y,cv=StratifiedKFold(5),scoring='auc')`,展示管道如何在每折内自动完成`fit>transform>fit(model)`的闭环。【环节四:特征效能验证与迭代优化(20分钟)】计算生成新数据的最终标尺是“下游任务效能提升”。教师分发已跑通的基线模型结果(仅用原始数值字段,未做特征工程,AUC=0.682),要求各组接入自己编写的管道,在验证集上对比以下三版特征集效果:版本A:仅原子修复(清洗后原始字段)。版本B:A+语义转换(时间编码、序列向量化)。版本C:B+聚合构造(用户画像宽表特征)。学生运行脚本,记录AUC、KS、F1指标,绘制特征重要度Top20条形图。教师组织复盘:1.版本B较A提升0.035AUC,主要贡献来自“账户存活天数”与“注册月份正弦编码”,说明显性化时间语义有效。2.版本C较B提升0.012AUC,但训练耗时增加3倍,Top特征中“总交互数”、“偏好品类目标编码”排名靠前,而“时长标准差”、“活跃跨度”重要度极低。3.发现“注册渠道目标编码”在某折交叉验证中方差极大,提示高基数类别编码不稳定。引导学生提出优化动作:剔除低重要度聚合特征精简模型;对高基数类别改用TargetEncoding+LeaveOneOut或CatBoost原生处理;新增“最近7天活跃度/历史活跃度”比率特征捕捉衰退趋势。体会“计算生成新数据”是假设验证迭代的螺旋上升过程,而非一次性加工。【环节五:合规红线与伦理审查(10分钟)】教师展示真实合规审计案例:某团队因在特征中直接使用“用户精确定位经纬度计算得出的家庭住址聚类标签”,被判定违反《个人信息保护法》最小化原则,面临整改。全班讨论:在本项目特征生成管道中,哪些计算动作存在合规风险?学生识别出:•“设备ID”未脱敏直接Hash编码,仍可反查。•“浏览轨迹序列”聚合生成的“常去地点”属于敏感位置轨迹。•“客服工单文本”向量化可能隐含健康、金融等敏感话题。教师总结合规计算原则:4.字段准入清单制:建模前由法务/隐私官签署《特征准入清单》,未在清单字段严禁计算生成衍生特征。5.就地计算不落地:敏感原始字段(如GPS)仅在安全沙箱内计算聚合统计量(如“常驻城市级别”),原始值与中间过程不持久化、不出沙箱。6.差分隐私注噪:发布给下游建模的聚合特征(如“某商品人均浏览时长”),需注入拉普拉斯噪声满足ε差分隐私。7.审计日志留痕:管道每一步`transform`需自动记录输入行数、输出行数、新增特征名、参数版本号,保证可追溯。要求学生在管道代码中增加`plianceChecker`步骤,自动扫描特征名黑名单(含'id'、'gps'、'address'、'phone'等关键词),触发报警拦截。【环节六:导学案落地与分层作业(5分钟)】发放《特征工程管道构建导学案》(纸质+电子双版),包含四层级任务:【基础必做·工程规范】:补全`GroupMedianImputer`中`transform`的向量化写法(禁用`apply(axis=1)`),利用`map`+`fillna`替代,对比10万行数据运行耗时,体会向量化计算的工程价值。【进阶提高·防泄露实战】:给定含时间戳的交易流数据,编写`RollingWindowAggregator`,要求`fit`仅记录窗口大小,`transform`对每行仅聚合`timestamp<当前行时间`的历史窗口数据。编写单测验证:随机打乱数据顺序后跑管道,结果是否与按时间序跑一致。【拓展探究·自动化特征工程】:调研`Featuretools`库,尝试用DFS(深度特征合成)自动生成聚合特征,对比人工构造特征集与自动生成特征集在LightGBM上的效能差异,撰写《自动化特征工程可行性分析备忘录》重点分析语义可解释性缺失问题。【合规挑战·隐私计算】:模拟联邦学习场景:数据方A持有用户基础属性,数据方B持有行为日志,双方均不愿共享原始数据。设计基于安全多方计算(MPC)或联邦学习框架(如FATE)的特征生成方案,完成“联邦特征对齐与聚合”的伪代码设计。六、教学反思与迭代闭环本课时设计尝试打破“API教学”与“业务教学”割裂,将“计算生成新数据”重构为“数据质量诊断→计算逻辑建模→工程化管道封装→效能验证迭代→合规红线守护”完整工程闭环。实施中发现三个需迭代优化点:1.学生对`fi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论