算法实践DAT1:模型构建
任务:
将金融数据集三七分,随机种子2018,调用sklearn包,简单构建逻辑回归、SVM和决策树3个模型并对每一个模型进行评分,评分方式任意,例如准确度和auc值。
4个关键点: 数据集三七分,随机种子2018,3个模型和对应的评分结果
分析: 通过已有的数据,预测贷款对象是否会逾期。status是结果,0代表未逾期,1代表逾期。
ps:ptyhon入门小白一枚,实在来不及做完的话请原谅,希望之后能跟上。今天第一次用Scikit-learn的库搭建模型,刚下载了Anaconda—(conda 是开源包(packages)和虚拟环境(environment)的管理系统。)看到一个很好的Anaconda学习教程
。
1.【读取数据集和三七划分测试和训练集】
import pandas as pd
data_all = pd.read_csv('./data_all.csv')
X = data_all.drop(['status'],axis = 1) #drop函数删除'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)
2.【逻辑回归】
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression((random_state=0,solver='lbfgs').fit(X_train, y_train)
lr.score(X_test,y_test)
# 0.7484232655921513
3.【支持向量机svm】
支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
svm = SVC(gamma='auto').fit(x_train,y_train)
y_test_pred = svm.predict(x_test)
svm_accuracy = accuracy_score(y_test, y_test_pred)
# 0.7484232655921513
4.【决策树】
clf_tree = DecisionTreeClassifier().fit(X_train, y_train)
y_test_pred=clf_tree.predict(X_test)
Tree_acc=accuracy_score(y_test,y_test_pred)
# 0.6629292221443588