00原理
逻辑回归模型的主要用途是判断某物品属于A类、B类、C类...的概率,概率的取值范围是(0,1),因为线性回归方程的取值是(-∞,+∞),我们无法直接使用线性回归方程,所以我们需要利用Sigmoid函数进行转换,将(-∞,+∞)转化为(0,1)。Sigmoid函数图像,如下图所示。
Sigmoid函数图像绘制代码为:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(-10,10) y = 1.0 / (1.0+np.exp(-x)) ax = plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.spines['bottom'].set_position(('data', 0)) ax.spines['left'].set_position(('data', 0)) plt.plot(x,y) plt.show()
有了概率,就可以开始预测分类了,根据概率的大小,来判定物品属于哪个分类。下面用一个实际案例来跟大家演示一下。
01概述
大家知道,股民在股市中的每一笔交易,都需要给其账户所在的证券公司支付一笔手续费,这笔费用对于证券公司来说,是一笔非常可观的收入。
如果一个股民不在该证券公司进行交易,那么这个股民就流失了,证券公司也就失去了一个收入来源。因此,证券公司为了预防股民流失会搭建一套客户流失预警模型,来对股民流失概率进行预测,对流失概率大的客户采取相应的挽回措施。
本文以客户流失预警模型为例来跟大家分享逻辑回归模性在商业实战中的应用。
02数据预处理
我们先读取数据,并对其进行预处理。
01
读取数据
import pandas as pd df = pd.read_excel('股票客户流失.xlsx') df.head(10)
划分数据集
逻辑回归模型在搭建和使用前,需要将数据集分为训练集和测试集。前者用于对模型的搭建,后者是为了检验模型。
from sklearn.model_selection import train_test_split X = df.drop(columns='是否流失') Y = df['是否流失'] X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.2) # test_size可以调节测试集大小
03模型搭建和使用
上面我们已经将数据集划分好,接下来我们可以开始对模型进行搭建和使用了。
01 模型搭建
Python的Sklearn库已经将模型给集成了,我们只需要调用使用即可。
from sklearn.linear_model import LogisticRegression # 引入回归模型 model = LogisticRegression() model.fit(X_train,Y_train) # 进行训练
02
模型使用
逻辑回归模型是用来预测结果的方式为:
Y_predict = model.predict(X_test) # 预测结果
对前10个预测结果观察发现,预测准确度为90%。
查看模型的预测准确度可以使用score函数,代码如下:
model.score(X_test,Y_test) # 查看模型预测准确度
得到结果为:78.7%,看来该模型搭建的不错。
04小结
- 本文简单介绍了逻辑回归模型原理,并搭建客户流失预警模型来进行实战操作,有兴趣的读者可以自己复现一下。
- 模型搭建好后,还需要进行评估,下一篇文章教大家怎么用ROC曲线和KS曲线对模型进行评估。
- 本文仅供参考学习,不做它用。
- 有需要本文数据集和代码的,联系志斌获取~