zoukankan      html  css  js  c++  java
  • 机器学习 | 5种基于机器学习的客户价值预测分析方法

    项目目的:预测客户的交易价值

    数据来源:https://www.kaggle.com/c/santander-value-prediction-challenge

    数据内容:4459条已知客户的交易价值和客户的属性(具体内容不知道,有可能是性别、年龄、收入、交税等等,每一个用户有4993条属性)

    步骤:

    • 数据分析
    • 特征值选取
    • 模型建立
    • 调试

    首先进行数据分析

    有4459行,4993列,其实中1845列为float类型,3147列为int类型,有1列为object(应该为用户id)

    观察发现特征值数量较大

    初步处理:去掉常数列,去掉重复列

    数据由4993变为4732

    由于特征值太多,难以作图分析

    直接使用所有特征值

    对需要预测值分析,观察数据分布(下图左),大部分数据集中在左侧,做log处理使数据更符合高斯分布(下图右)。通常高斯分布的数据预测更准确(原因不是很清楚,个人理解是如果有较大值出现,预测偏差一点,loss改变很大,对拟合不利)。

    方法1

    可能存在问题,样本太少,有可能过拟合。先看下效果在说吧。

    首先建立了一个4层的dnn网络(详见test_dnn.py)

    预测结果分析

    对测试集进行测试

    衡量标准为为均方根

    计算方法:sqrt((预测值-原始值)**2/样本数)

    Rms=1.84

    下图为预测误差分布图

    结果分析:效果不理想,预测值与真实值差距较大,有一个值偏离非常大

    原因分析:

    1. 模型结构不够理想
    2. 超参数的设置
    3. 样本太少,有200w的参数但是样本只有4000+,过拟合问题严重(在20次迭代后,就发生过拟合了)

    方法2

    使用lightgbm

    直接使用lightgbm库(能用,但是对调参还需要学习)

    详见test_lightgbm.py

    预测结果分析

    对测试集进行测试

    衡量标准为均方根

    Rms=1.35

    结果分析:效果依旧不理想,但是比dnn较好,而且没有偏移非常大的值

    原因分析:

    1. 依旧存在过拟合
    2. 模型参数设置

    方法3

    使用xgboost

    方法同上

    预测结果

    Rms=1.38

    结果分析:效果依旧不理想

    原因分析:

    1. 2000次迭代次数不够,模型还未收敛
    2. 模型参数设置

    方法4

    使用catboost

    方法同上

    预测结果

    Rms=1.47

    结果分析:效果依旧不理想

    方法5

    使用集成学习的思想,将上面的方法混合使用

    将3个学习器的结果根据权重求和,得到最后结果

    Rms=1.36

    结果分析:

    使用4种方法对预测目标进行建模,其中dnn由于数据太少,很早就发生了过拟合

    Xgboost,lightgbm,catboost效果比dnn要好很多,但是对价值预测依然存在偏差。但是结合kaggle的论坛帖子,由于数据特点在不使用leak的情况下 这已经是不错的预测。由于调参修改的时间需求较大就不进行了,这里只是一个验证,验证结果为Xgboost,lightgbm,catboost在数据量较少的场景,效果是非常好的。

  • 相关阅读:
    error: <item> inner element must either be a resource reference or empty.
    PEM routines:PEM_read_bio:no start line
    Android Https双向认证 + GRPC
    git tag用法
    Linux文件查找
    Detected problems with API compatibility(visit g.co/dev/appcompat for more info)
    Android NDK开发调试
    Beyond-Compare 4 -linux 破解
    Ubuntu下Gradle环境配置
    多线程系列一
  • 原文地址:https://www.cnblogs.com/dhorde/p/14084569.html
Copyright © 2011-2022 走看看