逻辑回归实战-股票客户流失预警模型(Python代码)


逻辑回归和多项逻辑回归理论看这篇博客

一、逻辑回归

sigmoid函数绘制

# sigmoid函数绘制
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(-6, 6)  # 通过linspace()函数生成-6到6的等差数列,默认50个数
y = 1.0 / (1.0 + np.exp(-x))  # Sigmoid函数计算公式
plt.grid()
plt.plot(x,y)
plt.annotate('$sigmoid(x)=\\frac{1}{1+e^{-x}}$'
             ,xy=(2,0.5)
             ,xytext=(0.2, 0.5)
             ,size = 15
            )
plt.show()

逻辑回归模型

# 构造数据
X = [[1, 0], [5, 1], [6, 4], [4, 2], [3, 2]]
y = [0, 1, 1, 0, 0]

# 模型训练
from sklearn.linear_model import LogisticRegression
model = LogisticRegression().fit(X, y)

# 打印系数和截距项
print(model.coef_)  # 系数w1与w2
print(model.intercept_)  # 截距项b
# 模型预测 - 预测单个数据
print(model.predict([[2,2]]))
# 模型预测 - 预测多个数据1
print(model.predict([[1,1], [2,2], [5, 5]]))

# 预测概率:左列是分类为0的概率,右列是分类为1的概率
y_pred_proba = model.predict_proba(X)
print(y_pred_proba)

# 通过DataFrame展示
import pandas as pd
pd.DataFrame(y_pred_proba, columns=['分类为0的概率', '分类为1的概率'])  
分类为0的概率分类为1的概率
00.9734490.026551
10.3907200.609280
20.1799100.820090
30.6316790.368321
40.8242450.175755

二、逻辑回归模型案例

股票客户流失预警模型

不知道怎么上传Excel,有需要可以私信

# 逻辑回归模型案例 - 股票客户流失预警模型
# 1.读取数据
import pandas as pd
df = pd.read_excel('股票客户流失.xlsx')

# 2.划分特征变量和目标变量
X = df.drop(columns='是否流失') 
y = df['是否流失']

# 3.划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=90)

# 4.模型搭建
from sklearn.linear_model import LogisticRegression
model = LogisticRegression().fit(X_train, y_train)

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

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

# 预测准确率
score = model.score(X_test, y_test)
print(score)  

# 6.预测概率
y_pred_proba = model.predict_proba(X_test)  
print(y_pred_proba[0:5])  # 打印前5个客户的分类概率

股票客户流失预警模型评估

# 评估股票客户流失预警模型
# 1.计算ROC曲线需要的假警报率(fpr)、命中率(tpr)及阈值(thres)
from sklearn.metrics import roc_curve
fpr, tpr, thres = roc_curve(y_test, y_pred_proba[:,1])

# 2.查看假警报率(fpr)、命中率(tpr)及阈值(thres)
a = pd.DataFrame()  # 创建一个空DataFrame 
a['阈值'] = list(thres)
a['假警报率'] = list(fpr)
a['命中率'] = list(tpr)
a.head()

# 3.绘制ROC曲线
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] #显示中文标签,Mac用这个显示中文
#plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文
plt.plot(fpr, tpr)   # 绘制折线图
plt.title('ROC曲线') # 添加标题
plt.xlabel('FPR')   # 添加X轴标签
plt.ylabel('TPR')  # 添加Y轴标
plt.show()

# 4.求出模型的AUC值
from sklearn.metrics import roc_auc_score
AUC = roc_auc_score(y_test, y_pred_proba[:,1])
AUC

三、多项逻辑回归(多分类回归)

# 构造数据,此时y有多个分类
X = [[1, 0], [5, 1], [6, 4], [4, 2], [3, 2]]
y = [-1, 0, 1, 1, 1]  # 这里有三个分类-1、0、1

# 模型训练
from sklearn.linear_model import LogisticRegression
model = LogisticRegression().fit(X, y) 

print(model.predict([[0, 0]]))
print(model.predict(X))
print(model.predict_proba([[0, 0]]))
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
《基于数据挖掘技术的客户流失预警模型.pdf》是一篇关于客户流失预警模型的研究论文。客户流失对企业运营具有重要影响,因此如何准确预测客户流失,及早采取措施进行挽留,成为企业管理者需要面对的挑战。本论文基于数据挖掘技术,研究如何构建客户流失预警模型。 论文首先介绍了客户流失的概念和影响因素,明确了研究目标和意义。接着,对数据挖掘技术进行了简要概述,包括数据预处理、特征选择、分类模型等常用方法。然后,论文详细阐述了构建客户流失预警模型的方法和步骤。 在数据预处理方面,研究者采用了数据清洗、缺失值处理、异常值检测等技术,以确保数据的质量和准确性。特征选择是构建预警模型的关键步骤,研究者通过统计分析和特征评估方法,筛选出与客户流失相关性强的特征。最后,利用机器学习算法建立了预警模型,并进行模型评估和优化。 通过实验验证,本论文提出的基于数据挖掘技术的客户流失预警模型在预测客户流失方面具有较高准确性和预测能力。该模型可以帮助企业及时识别潜在的客户流失风险,提供决策支持,制定针对性的挽留策略,降低客户流失率并提升企业竞争力。 总之,《基于数据挖掘技术的客户流失预警模型.pdf》论文通过研究和应用数据挖掘技术,提出了一种有效的客户流失预警模型,并对其进行了实证验证。该论文在客户关系管理和企业运营方面具有一定的实际应用价值,对相关研究和实践具有一定的启示作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

葫芦娃啊啊啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值