数据说明
这份数据集是金融数据(非原始数据,已经处理过了),我们要做的是预测贷款用户是否会逾期。表格中 “status” 是结果标签:0表示未逾期,1表示逾期。
1任务
- 将金融数据集三七分,随机种子2018,调用sklearn的包,简单构建逻辑回归、SVM和决策树3个模型并对每一个模型进行评分,评分方式任意,例如准确度和auc值。(在任务1中不需要考虑数据预处理和模型调参)
2基本要点
- csv是常用的数据存储格式,pandas可以方便的读写csv文件
data_all = pd.read_csv('data_all.csv')
- 使用sklearn库中的train_test_split进行数据三七分,和设置随机种子
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=2018)
3完整代码及注释
#导入包
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.svm import LinearSVC
from sklearn import tree
#加载数据
data_all = pd.read_csv('data_all.csv')
print("数据行列数",data_all.shape)
#数据分析
print(data_all.head())#表头
print(data_all.describe())#基本统计量
#查看每列是否有缺失值
print(data_all.isnull().sum())
#划分数据集
#特征是除去“status”列的所有值
feature = [x for x in data_all.columns if x not in ['status']]
X = data_all[feature]
#'status'列是标签
y = data_all['status']
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=2018)
#构建模型
#1.逻辑回归
lr = LogisticRegression(random_state=2018)
lr.fit(X_train,y_train)
#2.SVM
svc = LinearSVC(random_state=2018)
svc.fit(X_train,y_train)
#3.tree
dt = tree.DecisionTreeClassifier(random_state=2018)
dt.fit(X_train,y_train)
#评价三种模型在测试集的表现
lr_acc = lr.score(X_test,y_test)
svc_acc = svc.score(X_test,y_test)
dt_acc = dt.score(X_test,y_test)
print("LogisticRegressiom Acc: %f, SVM Acc: %f, tree Acc: %f"%(lr_acc,svc_acc,dt_acc))
4运行结果展示
LogisticRegressiom Acc: 0.748423, SVM Acc: 0.748423, tree Acc: 0.684653
5遇到的问题
- 模型中参数并没有理解
- 在划分数据集时,X,y的处理也有困惑。