当前位置: 首页 > news >正文

猎上网登陆官方网站创业 建网站

猎上网登陆官方网站,创业 建网站,网页设计实训报告结果,江苏水利建设网站数据清洗 数据清洗是数据预处理的核心步骤#xff0c;旨在修正或移除数据集中的错误、不完整、重复或不一致的部分#xff0c;为后续分析和建模提供可靠基础。以下是数据清洗的详细流程、方法和实战示例#xff1a; 一、数据清洗的核心任务 问题类型表现示例影响缺失值数值…数据清洗 数据清洗是数据预处理的核心步骤旨在修正或移除数据集中的错误、不完整、重复或不一致的部分为后续分析和建模提供可靠基础。以下是数据清洗的详细流程、方法和实战示例 一、数据清洗的核心任务 问题类型表现示例影响缺失值数值型字段为空NaN模型无法处理缺失值导致训练中断或偏差异常值年龄200岁房价-100万扭曲统计指标如均值降低模型泛化性重复数据两行记录完全相同导致模型过拟合降低数据代表性不一致数据日期格式混乱2023-09-01 vs 01/09/23解析错误特征提取失败 二、数据清洗流程与工具 1. 缺失值处理 检测缺失值 # 统计每列缺失比例 missing_ratio data.isnull().mean() * 100 print(missing_ratio.sort_values(ascendingFalse))处理方法 方法适用场景代码示例直接删除缺失比例高80%或无关字段data.dropna(axis1, threshlen(data)*0.2)均值/中位数填充数值型字段缺失随机分布data[age].fillna(data[age].median(), inplaceTrue)众数填充类别型字段data[gender].fillna(data[gender].mode()[0], inplaceTrue)插值法时间序列数据如温度记录data[temperature].interpolate(methodtime, inplaceTrue)模型预测填充复杂场景如多变量关联缺失使用KNN或随机森林预测缺失值见下方代码KNN填充示例 from sklearn.impute import KNNImputer imputer KNNImputer(n_neighbors5) data_filled pd.DataFrame(imputer.fit_transform(data), columnsdata.columns)2. 异常值处理 检测方法 描述性统计检查最小/最大值是否合理print(data.describe())箱线图Boxplotplt.figure(figsize(8,4)) sns.boxplot(xdata[income]) plt.title(Income Distribution) plt.show()Z-Score法正态分布数据z_scores (data[value] - data[value].mean()) / data[value].std() outliers data[abs(z_scores) 3] # Z3为异常IQR法非正态分布数据Q1 data[age].quantile(0.25) Q3 data[age].quantile(0.75) IQR Q3 - Q1 lower_bound Q1 - 1.5 * IQR upper_bound Q3 1.5 * IQR处理方法 方法代码示例删除异常值data data[(data[age] 0) (data[age] 100)]截断Winsorizefrom scipy.stats.mstats import winsorizebrdata[income] winsorize(data[income], limits[0.05, 0.05])分箱Binningdata[age_bin] pd.cut(data[age], bins[0,18,35,60,100]) 3. 重复数据处理 检测与删除 # 检测完全重复的行 duplicates data.duplicated() print(f重复行数量: {duplicates.sum()})# 删除重复行保留第一个出现值 data.drop_duplicates(keepfirst, inplaceTrue)部分重复处理如用户ID重复但信息不同 # 按关键字段去重如用户ID data.drop_duplicates(subset[user_id], keeplast, inplaceTrue)4. 不一致数据修正 格式统一 # 日期格式标准化 data[date] pd.to_datetime(data[date], formatmixed)# 文本大小写统一 data[category] data[category].str.lower()# 单位统一如货币转换 data[price] data[price].apply(lambda x: x * 6.5 if USD in x else x )逻辑校验 # 检查年龄与出生日期是否一致 current_year pd.Timestamp.now().year data[calculated_age] current_year - data[birth_year] invalid_age data[abs(data[age] - data[calculated_age]) 1]三、实战案例电商订单数据清洗 原始数据问题 import pandas as pd data pd.DataFrame({order_id: [101, 102, 103, 104, 105, 106],user_id: [1, 2, 2, 3, 4, None],price: [29.9, 199.0, 199.0, -50.0, 89.9, 120.0],order_date: [2023-09-01, 01/09/2023, 2023-09-01, 2023-10-32, None, 2023-09-05] })清洗步骤 处理缺失值 # 填充user_id缺失值假设新用户ID为999 data[user_id].fillna(999, inplaceTrue)# 删除order_date缺失的行 data.dropna(subset[order_date], inplaceTrue)修正异常价格 # 删除价格为负的订单 data data[data[price] 0]# 截断价格超过200的订单假设业务上限为200 data[price] data[price].clip(upper200)标准化日期格式 # 转换日期并过滤无效日期如2023-10-32 data[order_date] pd.to_datetime(data[order_date], errorscoerce) data.dropna(subset[order_date], inplaceTrue)去重 # 按user_id和order_date去重保留最后一条 data.drop_duplicates(subset[user_id, order_date], keeplast, inplaceTrue)清洗后数据 order_iduser_idpriceorder_date101129.92023-09-011022199.02023-09-01105489.9NaT已删除106999120.02023-09-05 四、注意事项 避免过度清洗保留合理的数据多样性如正常的价格波动。记录清洗日志跟踪每一步操作的影响如删除了多少行数据。业务规则优先与领域专家确认异常定义如“用户年龄100是否合理”。自动化流水线对持续更新的数据使用Pipeline封装清洗步骤from sklearn.pipeline import Pipelineclean_pipeline Pipeline([(fill_na, SimpleImputer(strategyconstant, fill_value999)),(remove_duplicates, DropDuplicates(subset[user_id])),(clip_outliers, ColumnTransformer([(clip, FunctionTransformer(lambda x: x.clip(0, 200)), [price])])), ])数据变换 以下是对数据变换的更紧凑、更细节化的总结突出核心要点与实用技巧 一、标准化/归一化核心差异 方法公式适用场景异常值敏感度Scikit-learn工具Z-score z x − μ σ z \frac{x - \mu}{\sigma} zσx−μ​数据近似正态分布线性模型SVM、回归高StandardScalerMin-Max x ′ x − x min ⁡ x max ⁡ − x min ⁡ x \frac{x - x_{\min}}{x_{\max} - x_{\min}} x′xmax​−xmin​x−xmin​​图像像素、神经网络输入层高MinMaxScalerRobust x ′ x − median I Q R x \frac{x - \text{median}}{IQR} x′IQRx−median​存在异常值非正态分布低RobustScaler 关键技巧 树模型如随机森林、XGBoost无需标准化但对特征组合敏感的模型FM、NN需要。归一化到[-1,1]可能对某些激活函数如tanh更友好。 二、非线性变换快速选择 对数变换右偏数据如收入用np.log1p避免零值。Box-Cox变换需数据严格为正自动优化λ值scipy.stats.boxcox。分位数变换强制数据服从均匀/正态分布QuantileTransformer。 示例代码 from sklearn.preprocessing import PowerTransformer pt PowerTransformer(methodyeo-johnson) # 兼容零/负值 X_transformed pt.fit_transform(X)三、分类变量编码场景化方案 方法优点缺点适用模型One-Hot无顺序假设兼容所有模型高维稀疏需处理共线性线性模型、神经网络Target编码保留类别与目标的关系需防过拟合如交叉验证树模型、高基数类别Embedding低维稠密捕捉语义相似性需预训练或端到端学习深度学习NLP/推荐系统 关键点 高基数类别优先用Target Encoding或CatBoost内置处理。树模型可尝试Label Encoding但需验证类别顺序是否合理。 四、特征工程高效操作 数值特征 交叉特征加减乘除如电商中“单价×购买量总金额”。分箱等频分箱pd.qcut或等宽分箱pd.cut捕捉非线性。 时间特征 提取周期性星期、月份滑动窗口统计均值、标准差。 文本特征 短文本用TF-IDF长文本用BERT嵌入高维稀疏时用TruncatedSVD降维。 代码示例 # 时间特征处理 df[hour] df[timestamp].dt.hour df[is_weekend] df[timestamp].dt.weekday 5五、降维选择策略 方法核心思想适用场景注意事项PCA线性投影最大化方差高维数据可视化/去噪需先标准化可能丢失非线性信息t-SNE非线性保留局部结构可视化高维聚类计算代价高不用于特征输入UMAP平衡速度与局部/全局结构大规模数据可视化/预处理参数敏感需调参 经验 输入特征50时优先用PCA保留95%方差n_components0.95。避免对树模型使用降维可能破坏特征重要性。 六、避坑指南 数据泄露 所有变换必须仅用训练集统计量用Pipeline确保流程from sklearn.pipeline import make_pipeline pipe make_pipeline(StandardScaler(), SVM()) pipe.fit(X_train, y_train)异常值处理 缩尾处理np.clip或中位数填充避免破坏分布。 评估验证 对KNN、SVM等敏感模型对比不同缩放方法的分类边界如决策边界图。 七、端到端流程 输入检查分布直方图/Q-Q图、缺失值、异常值。数值特征缩放→非线性变换→分箱。分类特征编码→嵌入可选。特征构造领域知识驱动交叉/聚合。输出验证模型在验证集的表现波动是否5%。 总结数据变换需与模型特性深度耦合通过实验迭代优化。记住“Garbage in, garbage out”——宁可花80%时间在数据准备而非调参 特征工程 特征工程从原始数据到模型燃料的核心技术 特征工程是机器学习的“炼金术”旨在将原始数据转化为模型可理解的强特征直接影响模型性能上限。以下是结构化拆解 一、核心目标与价值 目标构造高信息量、低冗余、适配模型的特征。价值 提升模型准确率如添加用户历史行为统计特征降低计算成本通过降维/特征选择增强可解释性如分箱后的年龄组代替原始值 二、特征构造从原始数据中“挖掘金子” 时间特征 基础字段年、月、日、小时、星期几、是否节假日衍生特征时间间隔如上次购买距今的天数、滑动窗口统计过去7天均值 df[purchase_hour] df[timestamp].dt.hour df[days_since_last_purchase] (current_date - df[last_purchase_date]).dt.days交互特征组合特征 数值交互加减乘除如“单价×数量总价”类别交叉笛卡尔积如“地区×产品类型”生成组合标签 df[price_per_sqmeter] df[total_price] / df[area]统计聚合特征 单维度统计用户历史购买金额的均值、最大值、方差跨表关联订单表按用户ID聚合的订单数、退货率 user_stats orders.groupby(user_id)[amount].agg([mean, max])文本/图像特征 文本TF-IDF关键词权重、BERT句向量、情感分析得分图像边缘特征、颜色直方图、预训练CNN提取的特征图 三、特征变换提升模型适配性 分箱Binning 等宽分箱固定区间宽度如年龄每10年一档等频分箱保证每箱样本量均衡模型分箱使用决策树寻找最优分割点 df[age_bin] pd.cut(df[age], bins[0,18,35,60,100], labels[child, young, adult, senior])非线性变换 对数变换处理右偏分布np.log1p避免零值Box-Cox变换自动优化正态性仅适用于正值分位数变换强制服从指定分布如正态、均匀 高基数类别处理 目标编码Target Encoding用目标变量的统计量如均值代替类别频率编码使用类别出现频率作为特征值嵌入编码Embedding通过神经网络学习低维表示如Word2Vec 四、特征选择剔除噪声与冗余 方法原理适用场景过滤法基于统计指标如方差、卡方检验快速初筛计算成本低包裹法通过模型性能迭代选择特征子集精确但计算代价高递归特征消除嵌入法模型训练中自动选择如L1正则化与模型耦合高效 实用技巧 对树模型直接使用feature_importances_筛选重要性阈值特征对线性模型结合Lasso回归的系数稀疏性做特征剔除 五、自动化特征工程工具 FeatureTools自动生成跨表聚合特征如“用户最近3次登录时间标准差”TSFresh针对时间序列自动提取数百种统计特征如自相关性、傅里叶变换系数AutoFeat自动构造多项式特征并进行显著性筛选 # FeatureTools示例 import featuretools as ft es ft.EntitySet() es es.entity_from_dataframe(entity_idusers, dataframeusers_df, indexuser_id) features, feature_defs ft.dfs(entitysetes, target_entityusers)六、避坑指南与最佳实践 避免数据泄露 所有统计量如Target Encoding的均值必须仅从训练集计算使用Pipeline封装预处理与模型训练from sklearn.pipeline import Pipeline pipe Pipeline([(encoder, TargetEncoder()), (model, RandomForest())])领域知识驱动 在电商场景中构造“商品价格与类目平均价格的比值”可能比单纯价格更有效在风控场景中组合“申请时间与工作时段的重叠度”作为特征 迭代验证 通过AB测试对比不同特征组合的模型性能监控特征稳定性如PSI指标防止线上数据分布偏移 七、终极心法 “Less is More”优先构造10个强特征而非100个弱特征。“Think Like a Model”理解模型如何利用特征如线性模型依赖线性可分性NN偏好稠密低维输入。“Data First, Algorithm Second”特征工程提升的上限远高于调参 总结特征工程是融合领域知识、数据直觉与工程技巧的艺术。掌握核心方法后需在业务场景中反复迭代才能炼出“模型友好”的金牌特征。
http://www.hkea.cn/news/14406593/

相关文章:

  • 做a图片视频在线观看网站更改wordpress登录图标
  • 京东网站建设费用鸿邑科技 网站建设
  • 二手书交易网站策划书攻击wordpress
  • 百度做网站优化多少钱一年企业 手机网站
  • 松江网站设计崇明建设机械网站
  • 建设一个网站需要什么软件wordpress 换主题
  • 廉江市住房和城乡建设局网站网络推广的工作内容是什么
  • wordpress 页面 背景图厦门网站搜索引擎优化
  • 教你做cpa单页网站哪个网站做摄影师好
  • 门户网站建设招标怎么区别做pc端和手机端网站
  • 怎么把网站放到空间吗网站建设图片设置
  • 建立网站三大基础深圳网站建站建设
  • 网站开发安全性分析深圳市门户网站建设多少钱
  • 青岛网站设计皆挺青岛博采网络外贸公司电话
  • 俄语淘宝网站建设界面设计的基本原则
  • h5响应式网站是什么意思南昌有什么网站
  • 网站制作可以卖多少钱一般通过什么渠道了解防灾减灾知识
  • 蔚县网站建设韩国优秀设计网站
  • 网站开发技术文档 范本架设网站的目的
  • 网站建设启动大会黄冈网站建设报价表
  • wap网站建设哪家好重庆简易注销在什么网站做
  • 免费com网站域名注册怎么直接做免费网站吗
  • 个体工商户能做网站吗正能量软件网站免费入口
  • 广西钦州住房与城乡建设局网站网络营销渠道可分为哪些
  • 可以做防盗水印的网站宁波网站推广优化公司电话
  • 织梦欧美网站模板电脑什么网站可以做长图攻略
  • 江都建设局网站李局阿里巴巴网站推广方法
  • 泰州网站制作推广道滘镇网站建设公司
  • 可以在自己的电脑上做网站吗死链对网站链轮的影响
  • 招标信息网哪个比较好seo营销型网站