训练样本是166组客户基础信息,包括职业,年龄,性别,手机入网时长,信用卡额度5个变量, 职业包含,房地产服务人员,工程技术人员,企事业单位负责人,有空值。 年龄包含,从18岁到60岁,有空值。 性别包含,M和F。 手机入网时长包含,半年至一年,二至六个月,两年至三年,三年以上,一个月以内,一年至两年,一至两个月。 信用卡额度包含,0-6K,6K-10K,10K-20K,20K-30K,30K-50K,50K以上,有空值。 是否涉案是因变量,1代表是,0代表否。即模型需要预测的结果。 请选择合适的变量,建立逻辑回归模型,将数据集拆分为训练集和测试集,预测新客户的风险情况。 提交python代码,需要输出模型的查准率,查全率,AUC,KS
时间: 2023-06-17 22:03:00 浏览: 95
首先,我们需要对数据进行预处理,包括空值的处理和类别变量的转换。我们可以使用pandas和sklearn进行处理。
```python
import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
# 读取数据
data = pd.read_csv('data.csv')
# 处理空值
data = data.dropna()
# 类别变量转换
le = LabelEncoder()
data['职业'] = le.fit_transform(data['职业'])
data['性别'] = le.fit_transform(data['性别'])
data['手机入网时长'] = le.fit_transform(data['手机入网时长'])
data['信用卡额度'] = le.fit_transform(data['信用卡额度'])
# 拆分训练集和测试集
X = data.drop('是否涉案', axis=1)
y = data['是否涉案']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)
```
接下来,我们可以使用sklearn中的逻辑回归模型进行建模,并进行训练。
```python
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score, roc_curve
# 建立逻辑回归模型
lr = LogisticRegression()
# 模型训练
lr.fit(X_train, y_train)
# 模型预测
y_pred = lr.predict(X_test)
# 输出模型评估指标
print('查准率:', precision_score(y_test, y_pred))
print('查全率:', recall_score(y_test, y_pred))
print('AUC:', roc_auc_score(y_test, y_pred))
fpr, tpr, thresholds = roc_curve(y_test, y_pred)
print('KS:', max(tpr - fpr))
```
最后,我们可以得到模型的查准率、查全率、AUC和KS等评估指标,用于评估模型的表现。
阅读全文