0.数据介绍
数据的下载地址 https://pan.baidu.com/s/1dtHJiV6zMbf_fWPi-dZ95g
注:这份数据集是金融数据(非原始数据,已经处理过了),我们要做的是预测贷款用户是否会逾期。表格中 "status" 是结果标签:0表示未逾期,1表示逾期。
1.模型构建
1.0任务说明
将金融数据集三七分,随机种子2018,调用sklearn包,简单构建逻辑回归、SVM和决策树3个模型并对每一个模型进行评分。
1.1 数据划分和标准化
(1)读取数据,首先将数据中的标签和其他数据抽取出来,数据中"status"栏为标签。
(2)然后将金融数据集划分为训练集和测试集,训练集占0.7.测试集占0.3,随机种子数为2018。
这里利用train_test_split函数,train_test_split()是sklearn.cross_validation模块中用来随机划分训练集和测试集,功能是从样本中随机的按比例选取train data和test data,形式为:
X_train,X_test, y_train, y_test = cross_validation.train_test_split(train_data,train_target,test_size=0.4, random_state=0)
参数代表含义:
train_data:所要划分的样本特征集
train_target:所要划分的样本结果
test_size:样本占比,如果是整数的话就是样本的数量
random_state:是随机数的种子。
(3)划分数据后,因为各个数据分布不一,所以我们将其标准化,利用StandardScaler函数
代码如图:
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
data = pd.read_csv('F:/competition/一周实践/data_all.csv') #读取数据
data1=data.copy()
y=data1.loc[:,['status']] #数据标签
del data1['status']
x = data1 #数据
x_train, x_test,y_train,y_test= train_test_split(x, y, test_size=0.3,random_state=2018) #数据集三七分,随机种子2018
ss = StandardScaler()
x_train = ss.fit_transform(x_train) #数据标准化
x_test = ss.fit_transform(x_test) #数据标准化
1.2 构建逻辑回归模型以及模型评估
(1)利用sklearn包里的LogisticRegressionCV()函数构建模型:
lr = LogisticRegressionCV()
re = lr.fit(x_train,y_train)
模型构建完后保存模型:
from sklearn.externals import joblib
joblib.dump(ss,"logistic_ss.model") #将标准化模型保存
joblib.dump(lr