LogisticRegression用户流失预测模型初探【推荐】

2023-11-16

什么是逻辑回归?

Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。

这一家族中的模型形式基本上都差不多,不同的就是因变量不同。

  • 如果是连续的,就是多重线性回归;
  • 如果是二项分布,就是Logistic回归;
  • 如果是Poisson分布,就是Poisson回归;
  • 如果是负二项分布,就是负二项回归。

Logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最常用的就是二分类的Logistic回归。

Logistic回归的主要用途:

  • 寻找危险因素:寻找某一疾病的危险因素等;
  • 预测:根据模型,预测在不同的自变量情况下,发生某病或某种情况的概率有多大;
  • 判别:实际上跟预测有些类似,也是根据模型,判断某人属于某病或属于某种情况的概率有多大,也就是看一下这个人有多大的可能性是属于某病。

Logistic回归主要在流行病学中应用较多,比较常用的情形是探索某疾病的危险因素,根据危险因素预测某疾病发生的概率,等等。例如,想探讨胃癌发生的危险因素,可以选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群肯定有不同的体征和生活方式等。这里的因变量就是是否胃癌,即“是”或“否”,自变量就可以包括很多了,例如年龄、性别、饮食习惯、幽门螺杆菌感染等。自变量既可以是连续的,也可以是分类的。

分析主题?分析目的?分析结论?

最近学了Python的sklearn,结合实际用户,想建立用户流失预测模型。网上查了很多资料,针对用户流失预警模型采用决策树,逻辑回归算法比较多,当然也有使用SVM,贝叶斯算法。下面就是我根据自己工作中的一个产品作为主题,预测其用户流失与留存。流失=上个月有消费,本月无消费表流失(其实也是消费流失啦)。数据周期使用的是一两个月来做分析,什么情况下用户会消费流失?于是挑选了一些指标特征来做分析,比如上个月的消费次数、最近的消费时间(可量化),消费金额,rmf这个原理还是有一个分析依据的。当然还有其他特征如,用户观看总时长、用户活跃天数、停留时长、启动次数、等。

import pandas as pd
df=pd.read_csv('DL135667_RESULT.csv')
df_data=df.loc[:,['pay_times','pay_r','pay','all_dr','all_ndt']]
df_target=df.loc[:,['is_lost']]
X= df_data.as_matrix()
Y=df_target.as_matrix()
特征工程:代码忽略,这个在数据收集和清理后已做了些分析。

针对上面选择的指标,利用决策树模型查下看看特征在分类中起到的作用大

from sklearn.ensemble import ExtraTreesClassifier
x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2) 
#利用信息熵作为划分标准,对决策树进行训练,这里做了些测试,深度设置为7效果比较好。 
clf=tree.DecisionTreeClassifier(criterion='entropy',max_depth=7)   
clf.fit(x_train,y_train)
#把决策树写入文件  
	if os.path.isdir(u'D:\\sklearn测试库'):  
		pass  
	else:  
		os.makedirs(u'D:\\sklearn测试库')  
	with open(u'D:\\sklearn测试库\\决策结果.txt','w') as  f:  
		f=tree.export_graphviz(clf,out_file=f)  
	print(u'打印出特征') 
expected = y_test
predicted = clf.predict(x_test)
#预测情况,精确率,召回率,f1分数等
print(metrics.classification_report(expected, predicted))
	print(metrics.confusion_matrix(expected, predicted)) 


from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import ExtraTreesClassifier
#logisticrgression逻辑回归
lg_model = LogisticRegression(penalty='l2',C=1000)
a_normalized = normalize(scale(X), norm='l2')  #数据标准化正则化
#特征对模型分类重要程度
	model = ExtraTreesClassifier()
	model.fit(a_normalized,Y)
	print('feature_importances:')
	print(model.feature_importances_)
#pca降维,该方法是测试下降维的效果
pca = decomposition.PCA(n_components=2)
a_pca = pca.fit_transform(a_normalized)
lx_train,lx_test,ly_train,ly_test=train_test_split(a_pca,Y,test_size=0.2) 
lg_model.fit(lx_train, ly_train)
lexpected = ly_test
predicted = lg_model.predict(lx_test)
print(metrics.classification_report(lexpected, predicted))
print(metrics.confusion_matrix(lexpected, predicted))	

交叉认证分#scores = cross_validation.cross_val_score(clf, raw data, raw target, cv=5, score_func=None).clf是不同的分类器,可以是任何的分类器。比如支持向量机分类器。clf = svm.SVC(kernel='linear', C=1)cv参数就是代表不同的cross validation的方法了。如果cv是一个int数字的话,并且如果提供了raw target参数,那么就代表使用StratifiedKFold分类方式,如果没有提供raw target参数,那么就代表使用KFold分类方式。cross_val_score函数的返回值就是对于每次不同的的划分raw data时,在test data上得到的分类的准确率。至于准确率的算法可以通过score_func参数指定,如果不指定的话,是用clf默认自带的准确率算法。

#交叉验证
scores = cross_validation.cross_val_score(lg_model, a_pca, Y,cv=5)#score_func=metrics.f1_score 可选择指标参数,默认自带的准确率算法。
print scores
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LogisticRegression用户流失预测模型初探【推荐】 的相关文章

  • Python的人工智能模拟框架

    1 ai描述图片 OpenCV Pillow Scikit image 2 ai模拟键盘操作 PyAutoGUI Keyboard PyKeyboard 3 ai模拟触屏操作 PyUserInput uiautomator Appium 4
  • python机器学习——图像内容分析

    计算机视觉 计算机视觉是一门研究如何使机器 看 的科学 更进一步的说 就是是指用摄影机和电脑代替人眼对目标进行识别 跟踪和测量等机器视觉 并进一步做图形处理 使电脑处理成为更适合人眼观察或传送给仪器检测的图像 计算机视觉包括多个级别的分析
  • 【yolo】makesense操作

    https www makesense ai 成功
  • 【机器学习】为何要归一化和归一化,标准化的处理方法

    为何要归一化 如何归一化和标准化 为何要归一化 提升模型的收敛速度 提升模型的精度 总结 如何归一化和标准化 min max 0 1 标准化 z score 标准差 标准化 nonlinearity 非线性 归一化 为何要归一化 提升模型的
  • Python机器学习预测算法

    Python机器学习核心预测算法 Python机器学习核心预测算法 第2章 通过理解数据来了解问题 2 1 解剖一个新问题 2 1 1 属性和标签的不同类型决定模型的选择 2 1 2 新数据集的注意事项 2 2 分类问题 用声呐发现未爆炸的
  • 转:SKLearn中预测准确率函数介绍

    SKLearn中预测准确率函数介绍 1 在使用Sklearn进行机器学习算法预测测试数据时 常用到classification report函数来进行测试的准确率的计算输 开始预测 y pred clf predict X test pri
  • 《机器学习(周志华)》 西瓜数据集3.0(含规范化以后数据)

    书上的一个常用数据集 plain view plain copy 编号 色泽 根蒂 敲声 纹理 脐部 触感 密度 含糖率 好瓜 1 青绿 蜷缩 浊响 清晰 凹陷 硬滑 0 697 0 46 是 2 乌黑 蜷缩 沉闷 清晰 凹陷 硬滑 0 7
  • Python机器学习:concat()合并训练集和测试集

    如果训练集和测试集分开 要合并放在一起进行特征工程 axis的意思是 轴 决定了两个数据集是纵向的合并 还是横向的合并 axis 0是纵向的合并 把很多行合并在一起 由于默认是纵向的合并 axis 0写不写都可以 axis 1是横向的合并
  • pyspark结合hive使用 spark on hive方式开发代码附上代码实例

    1 在CDH中已经添加了hive 2 配置hive中的hive site xml参数 opt cloudera parcels CDH lib hive conf hive site xml 3 配置spark中的hive site xml
  • python机器学习——NLTK及分析文本数据(自然语言处理基础)

    NLTK NLTK Natural Language Toolkit 自然语言处理工具包 在NLP 自然语言处理 领域中 最常使用的一个Python库 自带语料库 词性分类库 自带分类 分词功能 NLTK安装 安装 pip install
  • python机器学习----模型选择1(方法、指标)

    一 模型选择的方法及相关指标 1 损失函数通常有0 1损失 平方损失 绝对值损失和对数损失 2 通常用测试集对模型评估 评估的方法有留出法 交叉验证法 留一法 自助法 留出法 直接将数据分为对立的三部分 也可以是两部分 此时训练集也是验证集
  • AnacondaNavigator安装keras亲身详细步骤

    废话不多说直接上过程 1 在开始菜单搜索anaconda 这很简单直接上图 然后我们的打开conda命令行 就是那个Prompt 2我们先知道一下要下载keras库不光是一个keras 所以 我们的下载顺序是 libpython mingw
  • 【机器学习】CART决策树原理及python实现

    本文为博主学习机器学习决策树部分的一些笔记和思考 以及python编程实现算法的具体步骤 决策树 decision tree 是一类常见的机器学习方法 在已知各种情况发生概率的基础上 通过构成决策树来求取净现值的期望值大于等于零的概率 评价
  • 机器学习——sklearn转换器和预估器(估计器)

    这里写目录标题 学习目标 1 转换器 特征工程的父类 2 预估器 估计器 estimator 学习目标 目标 知道sklearn的转换器和预估器的执行流程 内容预览 转化器 预估器 估计器 sklearn机器学习算法的实现 1 转换器 特征
  • 转:基于 Python 和 Scikit-Learn 的机器学习介绍

    我叫Alex 我在机器学习和网络图分析 主要是理论 有所涉猎 我同时在为一家俄罗斯移动运营商开发大数据产品 这是我第一次在网上写文章 不喜勿喷 现在 很多人想开发高效的算法以及参加机器学习的竞赛 所以他们过来问我 该如何开始 一段时间以前
  • 锚框损失论文下载 Iou-Loss【IoU Loss、GIoU Loss、 DIoU Loss 、CIoU Loss、 CDIoU Loss、 F-EIoU Loss、α-IoU Loss】

    锚框损失 Iou Loss IoU Loss GIoU Loss DIoU Loss CIoU Loss CDIoU Loss F EIoU Loss IoU Loss 论文打包下载 yolo系列论文https download csdn
  • LogisticRegression用户流失预测模型初探【推荐】

    什么是逻辑回归 Logistic回归与多重线性回归实际上有很多相同之处 最大的区别就在于它们的因变量不同 其他的基本都差不多 正是因为如此 这两种回归可以归于同一个家族 即广义线性模型 generalizedlinear model 这一家
  • 西电机器学习简答题核心考点汇总(期末真题,教材西瓜书)

    文章目录 前言 一 机器学习和深度学习区别以及原因 二 卷积核 池化层作用 三 SVM转化为对偶问题的优点 四 核函数的作用 五 特征的相似度定义 性质 六 预剪枝与后剪枝优缺点 七 密度直接可达 密度可达 密度相连定义 八 DBSCAN相
  • 机器学习——朴素贝叶斯算法

    朴素贝叶斯算法 1 引言 2 朴素贝叶斯分类方法 3 概率基础 4 朴素贝叶斯特征提取 5 朴素贝叶斯分类的sklearn实现 6 垃圾短息分类 补充 1 引言 贝叶斯方法是一个历史悠久 有着坚实的理论基础的方法 同时处理很多问题时直接而又
  • python实现广义线性模型

    广义线性模型 核心就是最小二乘法 最小二乘法简而言之就是求较小值 在极小值的时候值最小 一阶导数为0 import matplotlib pyplot as plt import numpy as np from sklearn impor

随机推荐

  • swiper实现无限滚动轮播、左右切换

    废话不多说 直接上代码 const mySwiper ref
  • 经典C语言程序设计100例,部分有个人注解

    经典C语言程序设计100例 程序1 题目 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 1 程序分析 可填在百位 十位 个位的数字都是1 2 3 4 组成所有的排列后再去 掉不满足条件的排列 当然这里的去掉并不
  • QT之读取文本文件中的GPS数据,并解析出经纬度

    include
  • Win10以管理员身份运行CMD命令提示符的四种方法

    方法一 1 我们可以在Windows10系统的开始菜单上 单击鼠标右键 这时候出现的菜单中 我们选择命令提示符 管理员 点击打开这样即可 方法二 1 点击开始菜单 然后界面中我们这里选择所有应用打开进入 如图所示 2 所有应用中 我们在Wi
  • QT中的库类

    目录 QFile详解 文件如果不存在则创建 判断文件是否存在 获得文件的各种详细信息 读写文件 1 QFile文件如果不存在则创建的方法 2 QFileInfo的方法获得文件的各种详细信息 3 QFile读写文件的内容 QTextStrea
  • redis集群拓扑结构自动更新:使用Lettuce连接Cluster集群实例时异常处理

    问题 使用lettuce连接Cluster集群实例 实例执行规格变更后 分片数有变化时 部分槽位 Slot 会迁移到新分片上 当客户端连接到新分片时会出现以下异常问题 java lang IllegalArgumentException C
  • Mybatis学习笔记

    文章目录 前言 1 Mybatis简介 1 1 什么是Mybatis 1 2 持久化 1 3 持久层 1 4 为什么需要Mybatis 2 第一个Mybatis程序 2 1 创建测试数据库 2 2 新建maven项目 2 2 1 新建项目
  • 计算机语句的简单练习

    1 求1000以内的水鲜花数 用while循环的方法 i 100 while i lt 1000 b int i 100 10 s int i 10 10 g int i 10 if b 3 s 3 g 3 i print i i 1 co
  • ubuntu14.04中java卸载_ubuntu如何完全卸载Java

    1 移除所有 Java相关包 Sun Oracle OpenJDK IcedTea plugins GIJ 1 apt get update 2 apt cache search java awk print 1 grep E e ia32
  • 前端响应式

    文章目录 什么是响应式 响应式web交互设计 怎么实现响应式布局 1 百分比布局 2 媒体查询 3 rem响应式布局 4 vw vh响应式布局 5 flex弹性布局 什么是响应式 总所周知 我们前端也被称为响应式web交互设计 那么什么是响
  • 搭建个人静态blog

    前言 也是无意间看到一个写个人博客的 看着非常的好看 于是乎一个牛逼而又der想法就产生了 我也要搞一个人的blog 就显摆一下 就是玩 于是这个blog就产生了 写完之后的也是非常的激动 赶紧发给朋友 显摆显摆 后来朋友也都很惊讶 确实还
  • 机器学习-k-近邻算法

    k 近邻算法 一 k 近邻算法概述 1 1 使用python导入数据 1 2 从文本文件中解析数据 二 使用k 近邻算法改进约会网站的配对效果 2 1 准备数据 2 2 数据预处理 2 3 分析数据 2 4 测试算法 2 5使用算法 三 手
  • [docker]笔记-基础配置

    1 docker启动和设置开机启动 root localhost systemctl start docker root localhost systemctl enable docker 2 更换docker镜像网站 默认docker镜像
  • SpringSecurity学习笔记一

    SpringSecurity学习笔记 一 Java配置 Web安全 创建Security过滤器 通过springSecurityFilterChain负责所有安全过滤请求 基本例子 EnableWebSecurity public clas
  • Android 中SharedPreferences的详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 SharedPreferences 首选项 介绍 存储软件的配置信息 存储的信息 很小 简单的数据 比如 自动登录 记住密码 小说a
  • 入门级详细USB移植教程——致正在为USB烦恼的朋友

    同上一篇MPU6050一样 我还是写一篇关于USB的帖子 在圈圈等玩USB的大神面前 我掌握的USB知识实在是九牛一毛 所以这篇帖子加上了入门级的修饰语 写这篇帖子主要是为了那些想快速开发USB的人 至于想深入了解USB协议 可以先学完我这
  • 游戏开发unity编辑器扩展知识系列:AssetDatabase.SaveAssets

    插眼 总结 在Editor运行c 脚本时 可以修改资源 这时如果想要保存修改 可以调用AssetDatabase SaveAssets 参考 官方文档 https docs unity3d com ScriptReference Asset
  • 记一次ES线上异常

    记一次ES线上异常解决过程 周六线上es报警es not green 由于没有带笔记本回家并且考虑到集群容量本身就很紧张以及最近的读写压力确实很大 并没有多余的机器可以加入集群 觉得应该不会是什么大问题 就没有太多在意 周末去上班打开电脑一
  • 如何调用百度接口来实现全国的撒点效果(在这里把百度接口的文档荡到本地了)

  • LogisticRegression用户流失预测模型初探【推荐】

    什么是逻辑回归 Logistic回归与多重线性回归实际上有很多相同之处 最大的区别就在于它们的因变量不同 其他的基本都差不多 正是因为如此 这两种回归可以归于同一个家族 即广义线性模型 generalizedlinear model 这一家