新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python 数据预处理 5 步法:基于 2023 电工杯 B 题数据的实战清洗与可视化

发布时间:2026/11/4 12:16:56来源:尧图网络
Python 数据预处理 5 步法:基于 2023 电工杯 B 题数据的实战清洗与可视化
Python 数据预处理 5 步法基于 2023 电工杯 B 题数据的实战清洗与可视化数学建模竞赛中数据预处理环节往往决定了后续分析的成败。2023 年电工杯 B 题人工智能对大学生学习影响的评价提供了一个典型的教育类数据集其中包含问卷收集的混合型数据数值、文本、分类变量。本文将演示如何用 Python 构建端到端的数据预处理流水线涵盖从原始数据到建模就绪格式的全过程。1. 数据质量诊断与缺失值处理加载数据后的第一步是系统性检查数据质量。使用 Pandas 的profile_report可以快速生成诊断报告import pandas as pd from pandas_profiling import ProfileReport df pd.read_excel(电工杯B题数据.xlsx) profile ProfileReport(df, title数据质量报告) profile.to_file(data_quality.html)常见的数据质量问题包括缺失值分布问卷数据常出现部分问题未作答异常取值范围5 级量表出现 0 或 6 等非法值文本型数值数字被存储为字符串格式分类变量基数爆炸开放填空题包含过多唯一值针对缺失值我们采用分层处理策略缺失比例处理方式代码实现5%直接删除df.dropna(subset[列名])5-20%同类均值/众数填充df.fillna(df.groupby(分组列)[目标列].transform(mean))20%新增是否缺失标志列df[缺失标志] df[列名].isnull().astype(int)对于电工杯这类问卷数据特别要注意反向计分题的转换。例如# 假设Q1_3是反向计分题原量表1-5 df[Q1_3] 6 - df[Q1_3] # 转换为正向分数2. 异常值检测与处理问卷数据中的异常值通常表现为一致性检验失败相同构面的题目得分差异过大答题时间异常完成问卷时间过短随机作答模式化应答连续多个相同选项如全部选3使用统计学方法结合业务规则进行检测# 基于IQR的数值型异常值检测 Q1 df[学习时间].quantile(0.25) Q3 df[学习时间].quantile(0.75) IQR Q3 - Q1 df df[~((df[学习时间] (Q1 - 1.5*IQR)) | (df[学习时间] (Q3 1.5*IQR)))] # 文本型异常值检测如开放题中的无效回答 invalid_responses [不知道, 无, ...] df df[~df[开放题列].isin(invalid_responses)]对于时间序列数据如学习行为日志还可以使用滑动窗口检测# 滑动窗口Z-score检测 def zscore_outliers(series, window30, threshold3): rolling_mean series.rolling(windowwindow).mean() rolling_std series.rolling(windowwindow).std() z_scores (series - rolling_mean) / rolling_std return np.abs(z_scores) threshold3. 数据标准化与归一化建模前需要统一量纲常用方法对比方法公式适用场景Python实现Z-score标准化(x - μ)/σ数据近似正态分布sklearn.preprocessing.StandardScalerMin-Max缩放(x - min)/(max - min)有明确边界的数据sklearn.preprocessing.MinMaxScalerRobust缩放(x - median)/(IQR)存在显著异常值sklearn.preprocessing.RobustScaler小数定标法x/10^j (jlog10(max|x|))保持数值解释性自定义实现对于分类变量推荐使用靶向编码Target Encoding替代传统的one-hotfrom category_encoders import TargetEncoder encoder TargetEncoder(cols[专业类别]) df[专业类别_encoded] encoder.fit_transform(df[专业类别], df[GPA])4. 特征工程实战技巧基于问卷数据的特点我们可以构造以下特征类型统计特征df[学习效率] df[成绩提升] / df[学习时间] df[AI使用多样性] df[[AI工具1,AI工具2,AI工具3]].nunique(axis1)交互特征df[理论实践平衡度] df[理论学习时间] * df[实践时间] / (df[理论学习时间] df[实践时间])**2时间序列特征如有学习行为日志def extract_ts_features(series): return { entropy: entropy(series.value_counts(normalizeTrue)), autocorr: series.autocorr(), weekday_ratio: series.dt.weekday.value_counts(normalizeTrue)[5] }文本特征针对开放题from sklearn.feature_extraction.text import TfidfVectorizer tfidf TfidfVectorizer(max_features50, stop_words[的,是,在]) text_features tfidf.fit_transform(df[开放题回答])5. 探索性分析与可视化使用 Plotly Express 创建交互式可视化import plotly.express as px # 平行坐标图展示多维度关系 fig px.parallel_coordinates(df, dimensions[AI使用频率,学习时间,成绩提升], colorGPA, color_continuous_scalepx.colors.diverging.Tealrose) fig.show() # 雷达图展示能力维度 fig px.line_polar(df, r[df[记忆能力],df[理解能力],df[应用能力]], theta[记忆,理解,应用], line_closeTrue) fig.update_traces(filltoself)针对建模竞赛特别推荐使用sweetviz库快速生成对比分析报告import sweetviz as sv report sv.compare([df[df[AI使用组]1], 使用组], [df[df[AI使用组]0], 对照组]) report.show_html()完整代码框架以下是可复用的预处理流水线模板from sklearn.pipeline import Pipeline from sklearn.compose import ColumnTransformer # 定义不同列的处理方式 numeric_features [年龄, 学习时间] categorical_features [专业, AI使用频率] text_features [开放题回答] preprocessor ColumnTransformer( transformers[ (num, StandardScaler(), numeric_features), (cat, TargetEncoder(), categorical_features), (txt, TfidfVectorizer(), text_features) ]) pipeline Pipeline(steps[ (preprocessor, preprocessor), (imputer, IterativeImputer()), (feature_selector, SelectKBest(score_funcf_classif, k20)) ]) # 保存预处理模型 import joblib joblib.dump(pipeline, preprocessor.pkl)在实际竞赛中建议将每个处理步骤封装为函数并保存中间结果def process_data(raw_df): # 步骤1数据清洗 df clean_data(raw_df) # 步骤2特征工程 df feature_engineering(df) # 步骤3数据分割 X_train, X_test train_test_split(df) return X_train, X_test
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/3 7:07:39

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/3 12:09:35

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/3 12:09:38

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/3 12:09:41

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/4 1:25:31

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/4 3:51:11

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉