【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例(上)

简介: 【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例

全文链接:http://tecdat.cn/?p=32604

分析师:Bailey Zheng和Lijie Zhang


即使是同一种植物,由于生长的地理环境的不同,它们的特征会有所差异。例如鸢尾花,可分为山鸢尾、杂色鸢尾、维吉尼亚鸢尾点击文末“阅读原文”获取完整代码数据


假设此时您得到了一朵鸢尾花,如何判断它属于哪一类呢?

image.png

支持向量机算法原理


·其主要思想是找到空间中的一个能够将所有数据样本划开的超平面,并且使得样本集中所有数据到这个超平面的距离最短。

·支持向量机可以分为线性和非线性两大类。

image.png

支持向量机的标准:


image.png

非线性支持向量机


·高斯核:尺度参数gamma

·多项式核:阶数degree

(线性支持向量机:正则化参数C) 调参

image.png

数据指标:


SL花尊长度(cm) ,SW花芎宽度(cm)PL花辨长度(cm),PW花瓣宽度(cm)鸢尾花种类: Iris Setosa;

Iris Versicolour;Iris Virginica

数据数量:共150个数据点


使用多项式核函数的非线性支持向量机训练分类模型

image.png

点击标题查阅往期内容


数据分享|WEKA信贷违约预测报告:用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归


01

02

03

04


Python用户流失数据挖掘:建立支持向量机、逻辑回归、XGboost、随机森林、决策树、朴素贝叶斯模型和Kmeans用户画像


在今天产品高度同质化的品牌营销阶段,企业与企业之间的竞争集中地体现在对客户的争夺上

“用户就是上帝”促使众多的企业不惜代价去争夺尽可能多的客户。但是企业在不惜代价发展新用户的过程中,往往会忽视或无暇顾及已有客户的流失情况,结果就导致出现这样一种窘况:一边是新客户在源源不断地增加,而另一方面是辛辛苦苦找来的客户却在悄然无声地流失。因此对老用户的流失进行数据分析从而挖掘出重要信息帮助企业决策者采取措施来减少用户流失的事情至关重要,迫在眉睫。

image.png

1.2 目的:

深入了解用户画像及行为偏好,挖掘出影响用户流失的关键因素,并通过算法预测客户访问的转化结果,从而更好地完善产品设计、提升用户体验。


1.3 数据说明:

此次数据是携程用户一周的访问数据,为保护客户隐私,已经将数据经过了脱敏,和实际商品的订单量、浏览量、转化率等有一些差距,不影响问题的可解性。


2 读取数据


# 显示全部特征
df.head()

image.png

3 切分数据


# 划分训练集,测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=666)

3.1 理解数据

可以看到变量比较的多,先进行分类,除去目标变量label,此数据集的字段可以分成三个类别:订单相关指标、客户行为相关指标、酒店相关指标。

image.png

image.png

4 特征工程


# 用训练集进行数据探索
train = pd.concat([X_train,y_train],axis=1)


4.1 数据预处理

image.png

image.png

4.1.1 删除不必要的列

X_train.pop("sampleid")
X_test.pop("sampleid")
train.pop("sampleid")

4.1.2 数据类型转换

字符串类型的特征需要处理成数值型才能建模,将arrival和d相减得到"提前预定的天数",作为新的特征

# 增加列
# 将两个日期变量由字符串转换为日期格式类型
train["arrial"] = pd.to_datimetain["arrval"])
X_tst["arival"] = d.to_daetime(X_est["arival"])
# 生成提前预定时间列(衍生变量)
X_trin["day_adanced"] = (X_rain["arival"]-Xtrain["d"]).dt.days
## 删除列
X_tran.dro(columns="d","arrivl"],inpace=True)

4.1.3 缺失值的变量生成一个指示哑变量

zsl = tain.isnll().sum()[tain.isnll(.sum()!=0].inex

4.1.4 根据业务经验填补空缺值

ordernum_oneyear 用户年订单数为0 ,lasthtlordergap 11%用600000填充 88%用600000填充 一年内距离上次下单时长,ordercanncelednum 用0填充 用户一年内取消订单数,ordercanceledprecent 用0t填充 用户一年内取消订

单率 242114 242114 -为空 有2种情况 1:新用户未下订单的空-88.42% 214097 2.老用户1年以上未消费的空 增加编码列未下订单新用户和 1年未下订单的老用户

price_sensitive -0 ,中位数填充 价格敏感指数,consuming_capacity -0 中位数填充 消费能力指数 226108 -为空情况 1.从未下过单的新用户214097 2.12011个人为空原因暂不明确

uv_pre -24小时历史浏览次数最多酒店历史uv. cr_pre -0,中位数填充 -24小时历史浏览次数最多酒店历史cr -0,中位数填充 29397 -为空 1.用户当天未登录APP 28633 2.刚上线的新酒店178 586 无uv,cr记录 编码添加 该APP刚上线的新酒店 764 29397

customereval_pre2 用0填充-24小时历史浏览酒店客户评分均值, landhalfhours -24小时内登陆时长 -用0填充28633 -为空:用户当天未登录APP 28633

hotelcr ,hoteluv -中位数填充 797


【视频】支持向量机算法原理和Python用户流失数据挖掘SVM实例(下):https://developer.aliyun.com/article/1496761

相关文章
|
13天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
159 55
|
1天前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
86 66
|
22天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
122 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
3天前
|
算法 Java 数据库
理解CAS算法原理
CAS(Compare and Swap,比较并交换)是一种无锁算法,用于实现多线程环境下的原子操作。它通过比较内存中的值与预期值是否相同来决定是否进行更新。JDK 5引入了基于CAS的乐观锁机制,替代了传统的synchronized独占锁,提升了并发性能。然而,CAS存在ABA问题、循环时间长开销大和只能保证单个共享变量原子性等缺点。为解决这些问题,可以使用版本号机制、合并多个变量或引入pause指令优化CPU执行效率。CAS广泛应用于JDK的原子类中,如AtomicInteger.incrementAndGet(),利用底层Unsafe库实现高效的无锁自增操作。
理解CAS算法原理
|
3天前
|
存储 算法 Python
文件管理系统中基于 Python 语言的二叉树查找算法探秘
在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
34 5
|
24天前
|
存储 人工智能 缓存
【AI系统】布局转换原理与算法
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
46 3
|
3天前
|
存储 缓存 算法
探索企业文件管理软件:Python中的哈希表算法应用
企业文件管理软件依赖哈希表实现高效的数据管理和安全保障。哈希表通过键值映射,提供平均O(1)时间复杂度的快速访问,适用于海量文件处理。在Python中,字典类型基于哈希表实现,可用于管理文件元数据、缓存机制、版本控制及快速搜索等功能,极大提升工作效率和数据安全性。
29 0
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
78 0
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
48 2
|
1月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
49 2