训练样本是100组客户基础信息,包括职业,年龄,性别,手机入网时长,信用卡额度5个变量,是否涉案是因变量,即模型需要预测的结果。请选择合适的变量,建立逻辑回归模型,预测新客户的风险情况。请提交python代码,需要输出模型的KS值
时间: 2023-06-18 17:02:51 浏览: 100
构建信用卡客户风险识别模型 python 代码 加 报告加PPT
5星 · 资源好评率100%
根据问题描述,我们可以将职业、年龄、性别、手机入网时长、信用卡额度作为自变量,是否涉案作为因变量,建立逻辑回归模型。以下是代码实现:
```python
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score
# 读取数据
data = pd.read_csv('data.csv')
# 将性别变量转换为0和1
data['性别'] = data['性别'].map({'男': 0, '女': 1})
# 将职业变量转换为虚拟变量
data = pd.get_dummies(data, columns=['职业'])
# 将数据分为训练集和测试集
train = data.sample(frac=0.8, random_state=1)
test = data.drop(train.index)
# 将自变量和因变量分开
X_train = train[['年龄', '性别', '手机入网时长', '信用卡额度', '职业_医生', '职业_教师']]
y_train = train['是否涉案']
X_test = test[['年龄', '性别', '手机入网时长', '信用卡额度', '职业_医生', '职业_教师']]
y_test = test['是否涉案']
# 建立逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测测试集的结果
y_pred = model.predict_proba(X_test)[:, 1]
# 计算模型的KS值
ks = roc_auc_score(y_test, y_pred)
print('模型的KS值为:', ks)
```
其中,数据文件为`data.csv`,包含100组客户基础信息,示例数据如下:
```
职业,年龄,性别,手机入网时长,信用卡额度,是否涉案
医生,35,男,24,50000,0
教师,28,女,36,20000,0
...
```
代码中,我们首先对数据进行预处理,将职业变量转换为虚拟变量,将性别变量转换为0和1。然后将数据分为训练集和测试集,建立逻辑回归模型,并预测测试集的结果。最后,计算模型的KS值并输出。
阅读全文