用机器学习来预测一个活动的总交易额值

本文探讨了有监督学习与无监督学习的区别,并详细介绍了有监督学习的应用流程,包括离线和在线阶段的任务分配。同时,文章还讨论了如何选择合适的模型及特征处理方法,并提供了模型优化的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们常把机器学习问题划分为有监督学习和无监督学习。对于我而言,这两种学习方式,我心里明白,但总是感觉难以将二者的区别表述清楚。干脆拿个比喻来举例: 有监督学习更像是有老师的督促下学习,从老师那里学到知识和经验用到自己身上。 无监督学习更像是群魔乱舞。于茫茫人海中寻找和自己相似的人物。只通过样本和样本的特诊来区分。没有标签。输入数据有标签,则为有监督学习,没标签则为无监督学习。

下面重点关注下有监督学习,因为在工业界,有监督学习更常见。在工业界,有监督学习又被细分为两个流程。离线和在线。工作量主要在离线方面。

离线里面有这些工作:

1. 数据筛选

2. 数据清洗

3. 特征抽取

4. 模型训练

5. 模型优化

线上工作有以下几个方面:

1. 对线上的数据进行特征提取

2. 利用提取的特诊进行结果预估

下面的图很清晰的展现整个离线工作的工作过程

model

解决交易额预估问题,可以用下面的方式

deal_problem

预测交易额,可以直接对交易额本身进行预估。也可以将交易额问题拆分为若干的小问题,分步解决。用子问题的结果来计算原问题。

 

  • 不同方式有不同优缺点,具体如下:
模式缺点优点
单模型1. 预估难度大
2. 风险比较高
1. 理论上可以获得最优预估(实际上很难)
2. 一次解决问题
多模型1. 可能产生积累误差
2. 训练和应用成本高
1. 单个子模型更容易实现比较准地预估
2. 可以调整子模型的融合方式,以达到最佳效果

选择哪种模式?
1)问题可预估的难度,难度大,则考虑用多模型;
2)问题本身的重要性,问题很重要,则考虑用多模型;
3)多个模型的关系是否明确,关系明确,则可以用多模型。

划分为多个子问题后。多个子问题的结果如何汇总成总结果?

model_merg

对于下面这种模型,我仍然有疑问。因为偏下的这张图并没有明确告诉我该如何去融合。

下面针对访购率模型进行估计。

主要考虑
1)选择与业务目标一致的模型;
2)选择与训练数据和特征相符的模型。

训练数据少,High Level特征多,则使用“复杂”的非线性模型(流行的GBDT、Random Forest等);
训练数据很大量,Low Level特征多,则使用“简单”的线性模型(流行的LR、Linear-SVM等)。
关键来了,什么是high level类型的特征,什么又是low level 类型的特征呢?
low level的特征一般指的是较为原始的特征。需要较少的人工干预与处理。能够一眼就能看出来的特征,如用户id,商品id,年龄等等,不需要人工计算,从原始数据就能得到的特征。这种特征维度一般比较高,维度高的意思是这种特征的可选的值很多,如年龄,年龄可选的范围很大。但是这也不是绝对的,如性别,只有两个选项。一般情况下,可选值是非常多的。
high level的特征往往是人工干预,人工计算得到的特征,如人给商品贴的标签,打的分数等等。
low level的特征覆盖面比较小。长尾样本的预测值受high level特征影响大。 热门样本的预测只受low level的影响比较大。
对于非线性模型
1. 使用high level的特征比较好。但是这种特征的维度不适合特别高,因为求得high level 的特征的复杂度比较大。
2. 对high level特征做非线性映射可以较好的拟合目标。
线性模型:
1. 特征体系尽可能全面。特征尽可能的多。high level和low level 尽可能都要有
2. 尽可能的将high level的特征转换为多个low level的特征。
1. 注意: 逻辑回归算是一种广义的线性回归分析模型。

特征处理方面:

1. 归一化:包括按照均匀分布归一化还是按照标准正太分布进行归一化

2.

Filter:
假设特征子集对模型预估的影响互相独立,选择一个特征子集,分析该子集和数据Label的关系,如果存在某种正相关,则认为该特征子集有效。衡量特征子集和数据Label关系的算法有很多,如Chi-square,Information Gain。

 

Wrapper:
选择一个特征子集加入原有特征集合,用模型进行训练,比较子集加入前后的效果,如果效果变好,则认为该特征子集有效,否则认为无效。

 

Embedded:
将特征选择和模型训练结合起来,如在损失函数中加入L1 Norm ,L2 Norm。

 

利用正则项可以起到特征选择的效果。

 

优化算法:

1.梯度下降 分为随机梯度下降和批量梯度下降

2.牛顿法 以及 拟牛顿法

3.Coordinate Descent 固定其他维度不变,只对一个维度进行搜搜,确定最佳下降方向。

 

 

模型的优化:

1. 反思目标是否可以进行评估。

2. 分析模型是否过拟合

训练集表现测试集表现问题
< 期望目标值< 期望目标值Underfitting
> 期望目标值接近或略逊于训练集合适
> 期望目标值远差于训练集Overfitting

问题数据特征模型
Underfitting清洗数据1. 增加特征
2. 删除噪音特征
1. 调低正则项的惩罚参数
2. 换更“复杂”的模型(如把线性模型换为非线性模型)
3. 多个模型级联或组合
Overfitting增加数据1. 进行特征选择
2. 降维(如对特征进行聚类、主题模型进行处理等)

1. 提高正则项的惩罚参数
2. 减少训练迭代次数
3. 换更“简单”的模型(如把非线性模型换为线性模型)

 

 

总结:

1. 要理解业务,分解业务目标

2. 数据要尽可能的可靠。训练集/测试集分布与线上的环境的数据尽可能的一致。

3. 合理的进行特征抽取和特征选择。

4. 模型: 针对不同的数据和特征,选择不同的模型。

转载于:https://www.cnblogs.com/chengxuyuanxiaowang/p/5440571.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值