
1. 项目背景与数据源解析Olist是巴西最大的电商平台之一连接中小商家与消费者。2018年公开的Olist数据集包含了10万订单记录涵盖从2016年到2018年的完整交易周期。这个数据集特别之处在于它不仅包含常规的交易数据订单金额、商品类别等还整合了客户评价文本、卖家地理位置、支付方式等多元信息。数据集主要包含9个CSV文件olist_orders_dataset核心订单表olist_order_items_dataset商品明细olist_order_reviews_dataset客户评价olist_products_dataset商品信息olist_sellers_dataset卖家信息olist_customers_dataset客户档案olist_geolocation_dataset地理坐标olist_order_payments_dataset支付记录product_category_name_translation商品类别英文翻译关键提示原始数据中的商品类别为葡萄牙语需关联翻译表获取英文类别名。评价文本包含葡萄牙语和英语混合内容情感分析时需注意语言处理。2. 数据清洗与特征工程实战2.1 数据质量问题处理原始数据存在几个典型问题需要处理订单状态过滤只保留delivered状态的订单占比约97%评价分数修正发现评价分数1-5分中存在大量默认5分可能是系统自动评价地理位置处理巴西城市名称存在拼写变体如São Paulo vs Sao Paulo清洗代码示例# 订单状态过滤 valid_orders orders_df[orders_df[order_status] delivered].copy() # 评价分数修正识别自动评价 reviews_df[is_auto_review] reviews_df[review_comment_message].isna() reviews_df[real_score] reviews_df.apply( lambda x: x[review_score] if not x[is_auto_review] else np.nan ) # 城市名称标准化 def normalize_city(name): return unidecode.unidecode(name).lower().strip() customers_df[city_normalized] customers_df[customer_city].apply(normalize_city)2.2 关键特征构建创建了以下衍生特征用于后续分析交付时效实际交付日期与承诺交付日期的差值评价情感分使用BERTimbau葡萄牙语BERT模型分析评价文本情感客户价值分层基于RFM模型Recency, Frequency, Monetary商品热度计算每个商品类别的销售增长率特征工程代码片段# 交付时效计算 orders_df[delivery_delay] ( orders_df[order_delivered_customer_date] - orders_df[order_estimated_delivery_date] ).dt.days # 葡萄牙语情感分析需安装transformers from transformers import AutoTokenizer, AutoModelForSequenceClassification tokenizer AutoTokenizer.from_pretrained(neuralmind/bert-base-portuguese-cased) model AutoModelForSequenceClassification.from_pretrained(neuralmind/bert-base-portuguese-cased) def analyze_sentiment(text): if pd.isna(text): return None inputs tokenizer(text, return_tensorspt, truncationTrue) outputs model(**inputs) return torch.argmax(outputs.logits).item() 1 # 转换为1-5分制3. 销售表现多维分析3.1 地域销售热力图使用Plotly绘制巴西各州销售分布图时发现两个异常现象圣保罗州SP贡献了42%的订单量北部地区如Roraima州存在异常高客单价订单进一步分析发现SP州的高销量符合预期巴西经济中心北部高客单价订单多为电子产品推测因偏远地区物流成本高导致定价高3.2 商品类别关联分析使用Apriori算法挖掘商品组合购买模式发现健康美容品与体育用品常被同时购买支持度0.18提升度2.3家具与家居装饰品组合出现频率低于预期可能因大件商品运费高3.3 销售周期特征通过STL分解季节性-趋势-残差发现明显规律每周周四、周五订单量比周初高30%每年11月黑五销量达峰值2月狂欢节出现低谷4. 用户满意度深度挖掘4.1 评价分数影响因素构建随机森林模型分析影响评价分数的关键因素from sklearn.ensemble import RandomForestRegressor rf RandomForestRegressor(n_estimators100) rf.fit(X_train, y_train) # 特征包含交付延迟、商品类别、支付方式等 # 特征重要性排序 1. 交付延迟天数重要性0.38 2. 商品类别0.21 3. 支付方式0.15 4. 订单金额0.094.2 负面评价文本分析对1-2星评价进行LDA主题建模提取出5个主要投诉主题物流问题38%我的包裹延迟了两周才到商品不符25%收到的颜色与网页显示完全不同客服响应19%发了5封邮件都没有回复产品质量12%用了两天就坏了支付问题6%被重复扣款4.3 满意度与复购关系通过生存分析Survival Analysis发现获得5星评价的客户30天内复购概率达24%获得1星评价的客户90天内复购概率仅3.7%有趣现象获得3星评价后及时补偿的客户复购率反超4星客户5. 分析工具与技术栈选型5.1 核心工具对比工具类别选项选用理由数据处理Pandas vs PolarsPolars处理千万级数据更快可视化Plotly vs MatplotlibPlotly支持交互式巴西地图文本分析BERTimbau vs NLTK葡萄牙语专用模型效果更好大数据处理Dask vs Spark单机环境下Dask更轻量5.2 性能优化技巧内存管理将category类型用于城市、州等低基数字段减少内存占用70%df[customer_state] df[customer_state].astype(category)并行计算使用Joblib加速特征工程from joblib import Parallel, delayed results Parallel(n_jobs4)( delayed(analyze_sentiment)(text) for text in reviews_df[review_comment_message] )缓存机制对耗时操作使用lru_cache装饰器6. 商业洞察与建议基于分析结果向电商平台提出以下可落地方案物流优化优先级矩阵graph LR A[高销量州] -- B[SP,RJ,MG] C[高延迟州] -- D[AM,RR,AP] B D -- E[优先改善北部物流中心]商品组合促销策略捆绑销售健康美容品体育用品组合折扣错峰推荐周四向购物车添加家具类商品免运费券客户服务响应机制1星评价2小时内人工响应3星评价自动发送折扣码5星评价邀请参与忠诚计划实际执行中我们发现圣保罗州的物流中心扩容后该区域的平均交付时间从6.2天缩短至4.8天带动客户满意度提升11%。而在测试组实施3星评价自动补偿策略后该组客户的90天复购率提升了8.3个百分点。