day5

1.读入数据

from sklearn.model_selection import GridSearchCV, KFold, train_test_split
import pandas as pd
import numpy as np
from sklearn.metrics import precision_score,roc_auc_score
from sklearn.metrics import accuracy_score,make_scorer
from sklearn.metrics import precision_score#这个就可以用评分函数了
from sklearn.metrics import recall_score
from sklearn.metrics import f1_score
from sklearn.metrics import roc_curve, auc
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
data_all=pd.read_csv(r'C:\Users\lxy\Desktop\data.csv',encoding='gbk')

2.对于每一行都相同的一组特征是没有用的.名字.顾客编号之类的也没有用,将他们删除

data_all.drop(['id','custid', 'trade_no', 'bank_card_no', 'id_name'], axis=1, inplace=True)

3.查看缺失值处理缺失值

#看下哪些缺失值多
data_all.isnull().sum().sort_values(ascending=False)

结果如下

student_feature                               2998
cross_consume_count_last_1_month               426
latest_one_month_apply                         304
query_finance_count                            304
latest_six_month_apply                         304
latest_three_month_apply                       304
query_sum_count                                304
query_cash_count                               304
latest_query_time                              304
query_org_count                                304
apply_credibility                              304
apply_score                                    304
latest_query_day                               304
latest_one_month_loan                          297
loans_score                                    297
loans_credibility_behavior                     297
loans_count                                    297
loans_settle_count                             297
loans_overdue_count                            297
loans_org_count_behavior                       297
consfin_org_count_behavior                     297
loans_cash_count                               297
loans_latest_day                               297
latest_three_month_loan                        297
loans_org_count_current                        297
latest_six_month_loan                          297
consfin_max_limit                              297
consfin_product_count                          297
consfin_org_count_current                      297
consfin_credibility                            297
                                              ... 
trans_top_time_last_6_month                      8
trans_amount_increase_rate_lately                3
trans_activity_month                             2
trans_activity_day                               2
transd_mcc                                       2
trans_days_interval                              2
middle_volume_percent                            2
regional_mobility                                2
rank_trad_1_month                                2
number_of_trans_from_2011                        2
first_transaction_time                           2
historical_trans_day                             2
first_transaction_day                            2
reg_preference_for_trad                          2
top_trans_count_last_1_month                     2
trans_day_last_12_month                          2
low_volume_percent                               2
avg_consume_less_12_valid_month                  2
is_high_user                                     0
repayment_capability                             0
abs                                              0
avg_price_last_12_month                          0
historical_trans_amount                          0
max_cumulative_consume_later_1_month             0
pawns_auctions_trusts_consume_last_1_month       0
pawns_auctions_trusts_consume_last_6_month       0
status                                           0
source                                           0
take_amount_in_later_12_month_highest            0
trans_amount_3_month                             0
Length: 85, dtype: int64

对student_featurea单独处理,看下他的值

data_all['student_feature'].value_counts()

结果如下,可以看出这是一个分类的特征。由于这里不清楚具体代表什么。我试试用1替代好了。然后我会再尝试用0替代表示另一个分类,最后对于其余的缺失值大多数是数值型数据,用平均数填充.

1.0    1754
2.0       2
Name: student_feature, dtype: int64
data_all['student_feature'].fillna(0,inplace=True)
data_all.fillna(data_all.mean(),inplace=True)

4.对数据类型处理

#对房名进行one-hot编码
data_all['reg_preference_for_trad'] = data_all['reg_preference_for_trad'].map({'境外':0,'一线城市':1, '二线城市':2, '三线城市':3})
#对日期loans_latest_time,latest_query_time细分为时间和日期
temp1=pd.DatetimeIndex(data_all['loans_latest_time'])
data_all['date1']=temp.date
data_all['time1']=temp1.time
temp2=pd.DatetimeIndex(data_all['latest_query_time'])
data_all['date2']=temp2.date
data_all['time2']=temp2.time

5.划分数据集得出结果

x = data_all.drop(columns=['status'])
y = data_all['status']
x_train,x_test,y_train,y_test = train_test_split(train_x,train_y,test_size=0.3,random_state=2018)
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(random_state=2018)
lr_model=lr.fit(x_train,y_train)
lr_model.score(x_test,y_test)

时间有点赶做的不好请见谅,后续会更改

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值