机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

这篇具有很好参考价值的文章主要介绍了机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

基于逻辑回归对股票客户流失预测分析

作者:i阿极

作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪


专栏案例:机器学习案例
机器学习(一):线性回归之最小二乘法
机器学习(二):线性回归之梯度下降法
机器学习(三):基于线性回归对波士顿房价预测
机器学习(四):基于KNN算法对鸢尾花类别进行分类预测
机器学习(五):基于KNN模型对高炉发电量进行回归预测分析
机器学习(六):基于高斯贝叶斯对面部皮肤进行预测分析
机器学习(七):基于多项式贝叶斯对蘑菇毒性分类预测分析
机器学习(十四):基于逻辑回归对超市销售活动预测分析
机器学习(十五):基于神经网络对用户评论情感分析预测
机器学习(十六):线性回归分析女性身高与体重之间的关系
机器学习(十七):基于支持向量机(SVM)进行人脸识别预测
机器学习(十八):基于逻辑回归对优惠券使用情况预测分析
机器学习(十九):基于逻辑回归对某银行客户违约预测分析
机器学习(二十):基于朴素贝叶斯对花瓣花萼的宽度和长度分类预测
机器学习(二十一):LightGBM算法原理(附案例实战)


1、逻辑回归模型原理

逻辑回归(Logistic Regression)是一种二分类的监督学习算法,用于预测样本的概率属于某一类别的概率。相比于线性回归,逻辑回归可以更好地处理分类问题。

逻辑回归的核心思想是,通过对样本特征进行线性组合,得到一个连续的预测值,然后通过一个函数将其映射到0和1之间的概率值。这个映射函数通常采用Sigmoid函数,其数学表达式为:
机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

其中 y y y为线性组合的结果, e e e为自然常数。机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

逻辑回归模型的数学表达式为:
机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

其中, θ \theta θ是需要学习的参数, x x x是输入的样本特征向量。

我们的目标是最大化训练样本的似然函数,即:
机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

其中, m m m是训练样本数, y ( i ) y^{(i)} y(i)为样本 i i i的真实标签。

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

我们的目标是最大化对数似然函数,即:
机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

可以使用梯度下降等优化算法来求解最优参数 θ \theta θ

逻辑回归的优点包括:

  • 简单易懂,容易解释
  • 计算量小,速度快
  • 适用于线性可分和线性不可分的二分类问题

逻辑回归的缺点包括:

  • 对异常值敏感
  • 对特征相关性敏感
  • 不能很好地处理多分类问题

2、实验环境

python 3.9

anaconda

jupyter notebook

3、模型LogisticRegression函数介绍

LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1,
                               class_weight=None, random_state=None, solver= 'liblinear',max_iter=100, 
                               multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)
  • penalty:为Logistic回归模型的目标函数添加正则化惩罚项,与线性回归模型类似,默认为l2正则

  • dual:bool类型参数,是否求解对偶形式,默认为False,只有当penalty参数为’l2’、solver参数为’liblinear’时,才可使用对偶形式

  • tol:用于指定模型跌倒收敛的阈值

  • C:用于指定惩罚项系数Lambda的倒数,值越小,正则化项越大

  • fit_intercept:bool类型参数,是否拟合模型的截距项,默认为True

  • intercept_scaling:当solver参数为’liblinear’时该参数有效,主要是为了降低X矩阵中人为设定的常数列1的影响

  • class_weight:用于指定因变量类别的权重,如果为字典,则通过字典的形式{class_label:weight}传递每个类别的权重;如果为字符串’balanced’,则每个分类的权重与实际样本中的比例成反比,当各分类存在严重不平衡时,设置为’balanced’会比较好;如果为None,则表示每个分类的权重相等

  • random_state:用于指定随机数生成器的种子

  • solver:用于指定求解目标函数最优化的算法,默认为’liblinear’,还有其他选项,如牛顿法’newton-cg’、L-BFGS拟牛顿法’lbfgs’

  • max_iter:指定模型求解过程中的最大迭代次数, 默认为100

  • multi_class:如果因变量不止两个分类,可以通过该参数指定多分类问题的解决办法,默认采用’ovr’,即one-vs-rest方法,还可以指定’multinomial’,表示直接使用多分类逻辑回归模型(Softmax分类)

  • verbose:bool类型参数,是否输出模型迭代过程的信息,默认为0,表示不输出

  • warm_start:bool类型参数,是否基于上一次的训练结果继续训练模型,默认为False,表示每次迭代都是从头开始

  • n_jobs:指定模型运算时使用的CPU数量,默认为1,如果为-1,表示使用所有可用的CPU

4、逻辑回归实战案例

4.1案例背景

在进行每一笔股票交易的时候,交易者(股民)都是要付给开户所在的证券公司一些手续费的,虽然单笔交易的手续费并不高,然而股票市场每日都有巨额的成交量,使得每一笔交易的手续费汇总起来的数目相当可观,而这一部分收入对于一些证券公司来说很重要,甚至可以占到所有营业收入50%以上,因此证券公司对于客户(也即交易者)的忠诚度和活跃度是很看重的。

如果一个客户不再通过该证券公司交易,也即该客户流失了,那么对于证券公司来说便损失了一个收入来源,因此证券公司会搭建一套客户流失预警模型来预测交易者是否会流失,从而对于流失概率较大的客户进行相应的挽回措施,因为通常情况下,获得新客户的成本比保留现有客户的成本要高的多。

4.2数据读取和数据集划分

读取数据并展示前五行数据

import pandas as pd
df = pd.read_excel('股票客户流失.xlsx')
df.head()

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

划分特征变量和目标变量

X = df.drop(columns='是否流失') 
y = df['是否流失']   

划分训练集和测试集

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)  # 设置random_state使得每次划分的数据一样

X_train.head()  # 显示训练集X_train的前5行

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

4.3模型建立与预测评价

模型搭建

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析
预测数据结果

y_pred = model.predict(X_test)
print(y_pred[0:100])  # 打印预测内容的前100个看看

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

放到一个DataFrame里进行查看比对

a = pd.DataFrame()  # 创建一个空DataFrame 
a['预测值'] = list(y_pred)
a['实际值'] = list(y_test)
a.head()  # 可以看到此时前5个预测准确度为80%

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

看全部的预测准确度

from sklearn.metrics import accuracy_score
score = accuracy_score(y_pred, y_test)
print(score)

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析
预测概率

y_pred_proba = model.predict_proba(X_test)  
y_pred_proba[0:5]

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析
查看概率的方式

a = pd.DataFrame(y_pred_proba, columns=['不流失概率', '流失概率'])
a.head()

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析
查看流失的概率

y_pred_proba[:,1]

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

4.4绘制ROC曲线

计算ROC曲线需要的假警报率(fpr)、命中率(tpr)及阈值(thres)

from sklearn.metrics import roc_curve
fpr, tpr, thres = roc_curve(y_test, y_pred_proba[:,1])
a = pd.DataFrame()  # 创建一个空DataFrame 
a['阈值'] = list(thres)
a['假警报率'] = list(fpr)
a['命中率'] = list(tpr)
a.head()

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

绘制ROC曲线

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文
plt.plot(fpr, tpr)  # 通过plot()函数绘制折线图
plt.title('ROC曲线')  # 添加标题,注意如果要写中文,需要在之前添加一行代码:plt.rcParams['font.sans-serif'] = ['SimHei']
plt.xlabel('FPR')  # 添加X轴标签
plt.ylabel('TPR')  # 添加Y轴标
plt.show()

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析

求出模型的AUC值

from sklearn.metrics import roc_auc_score
score = roc_auc_score(y_test, y_pred_proba[:,1])
score

机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗文章来源地址https://www.toymoban.com/news/detail-425799.html

到了这里,关于机器学习:基于逻辑回归(Logistic Regression)对股票客户流失预测分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 多元回归预测 | Matlab基于逻辑回归(Logistic Regression)的数据回归预测,多输入单输出模型

    效果一览 文章概述 多元回归预测 | Matlab基于逻辑回归(Logistic Regression)的数据回归预测,多输入单输出模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码

    2024年02月13日
    浏览(56)
  • 机器学习实战:Python基于Logistic逻辑回归进行分类预测(一)

    1.1 Logistic回归的介绍 逻辑回归( Logistic regression ,简称 LR )是一种经典的二分类算法,它将输入特征与一个sigmoid函数进行线性组合,从而预测输出标签的概率。该算法常被用于预测离散的二元结果,例如是/否、真/假等。 优点: 实现简单。Logistic回归的参数可以用极大似然

    2024年02月08日
    浏览(42)
  • 逻辑回归(Logistic Regression)

    入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。   目录 一、逻辑回归简介与用途 二、逻辑回归的理论推导 1、问题描述和转化 2、初步思路:找一个线性模型来由X预测Y 3、Sigmoid函数(逻辑函数) 4、刚刚的

    2023年04月18日
    浏览(37)
  • 逻辑回归(Logistic Regression)

    在分类问题中,你要预测的变量 y是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法。 在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是

    2024年02月09日
    浏览(36)
  • 二元逻辑回归(logistic regression)

    目录 一,原理 二,python代码 2.1 数据集的格式 2.2 代码 三,适用条件 回归 :          假设存在一些数据点,用一条直线或者曲线或折现去拟合这些点就叫做回归。也就是找出平面点上两个轴变量之间的函数关系,或者其他坐标系下的变量间关系。一句话就是:回归就是

    2024年02月06日
    浏览(51)
  • sklearn实现逻辑回归(Logistic Regression)

    💥 项目专栏:sklearn实现经典机器学习算法(附代码+原理介绍) 🌟 哈喽,亲爱的小伙伴们,你们知道吗?最近我们的粉丝群里有好多小可爱私信问我一些关于决策树、逻辑回归等机器学习的超级有趣的问题呢!🌈 为了让大家更轻松地理解,我决定开一个超可爱的专栏,叫做

    2024年02月21日
    浏览(50)
  • Python实现逻辑回归(Logistic Regression)

    💥 项目专栏:【Python实现经典机器学习算法】附代码+原理介绍 👑 最近粉丝群中很多朋友私信咨询一些决策树、逻辑回归等机器学习相关的编程问题,为了能更清晰的说明,所以建立了本专栏 专门记录基于原生Python实现一些入门必学的机器学习算法 ,帮助广大零基础用户

    2024年02月01日
    浏览(36)
  • 逻辑回归(Logistic Regression)和正则化

    案例: 在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们也谈到了肿瘤分类问题的例子,区别一个肿瘤是恶性的还是良性的。 二元分类问题: 将因

    2024年01月24日
    浏览(45)
  • 逻辑回归(Logistic Regression)原理(理论篇)

    目录 一、逻辑回归简介及应用 二、逻辑回归的原理 (1)sigmoid函数 (2)输入和输出形式  (3)基于目标函数求解参数w 三、逻辑回归代码复现         logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。例

    2024年02月13日
    浏览(48)
  • 【机器学习】Classification using Logistic Regression

    导入所需的库 分类问题的例子包括:将电子邮件识别为垃圾邮件或非垃圾邮件,或者确定肿瘤是恶性还是良性。这些都是二分类的例子,其中有两种可能的结果。结果可以用 ‘positive’/‘negative’ 成对描述,如’yes’/\\\'no, ‘true’/‘false’ 或者 ‘1’/‘0’. 分类数据集的绘图

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包