回归分析
• 研究因变量(目标)与自变量(特征)之间的关系
• 帮助数据科学家,更好的选择最佳的变量集,用于建立预测模型
• 使用场景:价格预测,数量预测
例:1889年道尔顿和他的朋友K.Pearson收集了上千个家庭的身高、臂长和腿长的记录 企图寻找出儿子们身高与父亲们身高之间的关系
• 线性回归 / 逻辑回归
• 多项式回归 Polynomial Regression多项式是一种常用的特征构造方法
• 岭回归 Ridge Regression
• 套索回归 Lasso Regression
• 弹性回归 ElasticNet Regression岭回归和套索回归的混合技术,同时使用L2和L1正则
• 最小二乘估计是最小化残差平方和(RSS)
•
• lasso是最小化RSS中,加入了L1惩罚项(作为约束)
•
• 岭回归在最小化RSS中,加入了L2惩罚项
•
模型融合
1. 回归任务中的加权融合
根据各个模型的最终预测表现分配不同的权重,比如准确率高的模型给予更高的权重,准确率低的模型给予较小的权重
2分类任务中的Voting
Voting策略,即选择所有模型输出结果中,最多的那个类(少数服从多数)
Thinking:假设我们有三个相互独立的模型,每个模型的准确率均为70%,采用少数服从多数的方式进行Voting,那么最终的正确率=?
0.7*0.7*0.7+0.7*0.7*0.3*3=0.343+0.441=0.784
sklearn 中的VotingClassifier
实现了投票法,分为hard和soft
hard, 硬投票, 少数服从多数(分类器)
soft, 软投票,有权值的投票(加权)
二手车价格预测
To Do:采用nerual network进行价格预测
• 设计NN
3个FC层,每层神经元个数为250,激活函数 用ReLU
最后一个FC层,输出预测结果
• 针对发动机功率power>600的进行异常值处理
Model的特征可解释性测
• 使用XGBoost/LightGBM进行预测,并对重要特征进行排序
• XGBoost中的feature importance计算,一共有三种类型:
weight,特征在提升树里出现的次数,即在所有树中,某个特征作为分裂节点的次数
gain,在所有树中,某个特征在分裂后带来的平均信息增益。
cover,与特征相关的记录(observation)的相对数量
比如有100条记录(observation),4个特征(feature) 和3棵树(tree),假设特征1用来确定Tree1,Tree2和Tree3中10,5和2个记录的叶节点
coverage = (10 + 5 + 2) / 100 = 17%
数据来自某交易平台的二手车交易记录
Field
Description
SaleID
交易ID,唯一编码
name
汽车交易名称,已脱敏
regDate
汽车注册日期,例如20160101,2016年01月01日
model
车型编码,已脱敏
brand
汽车品牌,已脱敏
bodyType
车身类型:豪华轿车:0,微型车:1,厢型车:2,大巴车:3,敞篷车:4,双门汽车:5,商务车:6,搅拌车:7
fuelType
燃油类型:汽油:0,柴油:1,液化石油气:2,天然气:3,混合动力:4,其他:5,电动:6
gearbox
变速箱:手动:0,自动:1
power
发动机功率:范围 [ 0, 600 ]
kilometer
汽车已行驶公里,单位万km
notRepairedDamage
汽车有尚未修复的损坏:是:0,否:1
regionCode
地区编码,已脱敏
seller
销售方:个体:0,非个体:1
offerType
报价类型:提供:0,请求:1
creatDate
汽车上线时间,即开始售卖时间
price
二手车交易价格(预测目标)
v系列特征
匿名特征,包含v0-14在内15个匿名特征
ToDo:给你一辆车的各个属性(除了price字段),预测它的价格
使用神经网络来完成预测
评价标准MAE(Mean Absolute Error):
MAE是L1 loss,MAE越小模型越准确
提交结果,与sample_submit.csv中的格式一致
•Step1,数据加载
原始数据是用空格分隔
•Step2,数据探索
数据整体情况
查看缺失值,缺失值可视化
查看label的分布(该项目中price为label)
Step3,特征选择
Step4,模型训练
使用XGBoost,超参数设置
Step5,模型预测