一周算法实践day1:模型构建

数据说明

这份数据集是金融数据(非原始数据,已经处理过了),我们要做的是预测贷款用户是否会逾期。表格中 “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的处理也有困惑。

猜你喜欢

转载自blog.csdn.net/qq_30006749/article/details/85063112
今日推荐