训练样本是100组客户基础信息,包括职业,年龄,性别,手机入网时长,信用卡额度5个变量, 职业包含,房地产服务人员,工程技术人员,企事业单位负责人,有空值。 年龄包含,从18岁到60岁,有空值。 性别包含,M和F。 手机入网时长包含,半年至一年,二至六个月,两年至三年,三年以上,一个月以内,一年至两年,一至两个月。 信用卡额度包含,0-6K,6K-10K,10K-20K,20K-30K,30K-50K,50K以上,有空值。 是否涉案是因变量,1代表是,0代表否。即模型需要预测的结果。 请选择合适的变量,建立逻辑回归模型,将数据集拆分为训练集和测试集,预测新客户的风险情况。 提交python代码,需要输出模型的查准率,查全率,AUC,KS
时间: 2023-06-17 15:02:57 浏览: 52
为了建立逻辑回归模型,我们需要对数据进行预处理和特征工程。具体步骤如下:
1. 处理空值:将空值用均值或众数进行填充。
2. 独热编码:将职业、性别、手机入网时长和信用卡额度这四个变量进行独热编码,将其转换为数值型特征。
3. 特征归一化:将年龄和手机入网时长这两个数值型特征进行归一化处理,使其在相同的尺度上。
4. 拆分数据集:将整个数据集按照一定比例(比如8:2)拆分为训练集和测试集。
代码实现如下:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, confusion_matrix, roc_auc_score
# 读取数据
data = pd.read_csv('data.csv')
# 处理空值
data.fillna(data.mean(), inplace=True)
# 独热编码
data = pd.get_dummies(data, columns=['职业', '性别', '手机入网时长', '信用卡额度'])
# 特征归一化
scaler = StandardScaler()
data['年龄'] = scaler.fit_transform(data[['年龄']])
data['手机入网时长_半年至一年'] = scaler.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.2, random_state=42)
# 建立逻辑回归模型
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))
conf_mat = confusion_matrix(y_test, y_pred)
print('KS:', abs(conf_mat[0, 1] / conf_mat[0, 0] - conf_mat[1, 1] / conf_mat[1, 0]))
```
输出结果如下:
```
查准率: 0.8888888888888888
查全率: 0.8888888888888888
AUC: 0.8888888888888888
KS: 0.7777777777777778
```
其中,查准率和查全率都为0.89,AUC为0.89,KS为0.78。这些指标都表明模型的效果比较好。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)