任务一:数据预处理

首先我们导入需要的包

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 
import os
import seaborn as sns

from sklearn.model_selection import train_test_split

其次我们看看数据长啥样

data = pd.read_csv('data.csv',encoding='gbk')
data.head()

# 首先看下整个测试数据集的样本分布
data.groupby(['status']).count()

#大概3:1,预期是未逾期的三分之一左右,那我们就遇到了第一个问题,样本分布不均衡

# 查看数据整体概况
data.info()
data.shape
# 特征太多了,这样看好像也看不出啥,换个方式,只看缺失值的情况

 

# 查看每个特征缺失值的数量
pd.set_option('display.max_rows',999) #这里查看数据的数量首先,所以修改默认的查看数量
data.isnull().sum()
#可以看到student_feature 特征缺失的数据较多

 

# 看下数值变量与status之间是否存在相关性
numerical_columns = []
for column_dtype in zip(data.columns,data.dtypes):
    #print(column_dtype[1])
    if column_dtype[1] != 'object':
        numerical_columns.append(column_dtype[0]) 

numerical_columns

 

%matplotlib auto
plt.figure(figsize=(20,16))
sns.heatmap(data[numerical_columns].corr(),annot=True,fmt = '.2f',cmap = 'coolwarm')
#我想我应该太天真了,啥都看不到,真的,太密集了

此处图略去,放了也看不清

# 不知道怎么分析哪些是无用特征
# 先把异常值删除,对缺失数据进行补充
# 但是这里也不好判断异常值啊,因为部分异常值他可能就是逾期用户的数据
# 所以这里有一个思路,针对逾期和非逾期用户分开处理特征值,此次先不处理,先处理缺失值
# 缺失值的处理有多种填充方式,但是由于我对数据集还不是很了解,所以我先不做处理

直接划分数据集:

y = data['status']
X = data.drop(columns=['status'])
x_train,x_test,y_train,y_test = train_test_split(X,y,test_size = 0.3,random_state = 2018)

反思:做的很差,面对如此多的特征完全不知道如何下手,怎么判断哪些特征是无用特征,对于逾期用户本身就是异常用户该如何删除缺失值不知道如何处理,缺失值的填充方式,如何快速了解数据集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值