神经网络贷款风险评估(base on keras and python )
用我儿子的话说,有一天啊,小乌龟遇见小兔子………
有一天,我在网上看到这样一片文章,决策书做贷款决策分析。
贷还是不贷:如何用Python和机器学习帮你决策?
import pandas as pd
df = pd.read_csv('loans.csv')#print(df.head())X = df.drop('safe_loans', axis=1)y = df.safe_loans#change categoricalfrom sklearn.preprocessing import LabelEncoder
from collections import defaultdict
d = defaultdict(LabelEncoder)
X_trans = X.apply(lambda x: d[x.name].fit_transform(x))
X_trans.head()#X_trans.to_excel('X_trans.xls') #random take train and testfrom sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X_trans, y, random_state=1)
#call decision tree
from sklearn import tree
clf = tree.DecisionTreeClassifier(max_depth=8)
clf = clf.fit(X_train, y_train)test_rec = X_test.iloc[1,:]
clf.predict([test_rec])y_test.iloc[1]
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test, clf.predict(X_test)))
这篇文章写的非常好,从中学到好多,但是计算的正确率不太高,8层的决策树正确率才能达到0.645
0.645480347467
我用神经网络重新做了计算
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Aug 17 21:14:08 2017@author: luogan
"""#read data
import pandas as pd
df = pd.read_csv('loans.csv')#print(df.head())#X = df.drop('safe_loans', axis=1)X = df.drop(['safe_loans' ],axis=1)
y = df.safe_loans#change categoricalfrom sklearn.preprocessing import LabelEncoder
from collections import defaultdict
d = defaultdict(LabelEncoder)
X_trans = X.apply(lambda x: d[x.name].fit_transform(x))
X_trans.head()#X_trans.to_excel('X_trans.xls')
##############
data_train=X_trans
data_max = data_train.max()
data_min = data_train.min()
data_mean = data_train.mean()
#
# data_std = data_train.std()
X_train1 = (data_train-data_max)/(data_max-data_min)y=0.5*(y+1)
#random take train and testfrom sklearn.cross_validation import train_test_split
x_train, x_test, y_train, y_test = train_test_split(X_train1, y, random_state=1)#x_train.to_excel('xx_trans.xls') #y_train.to_excel('y_trans.xls') #call decision tree
#from sklearn import tree
#clf = tree.DecisionTreeClassifier(max_depth=10)
#clf = clf.fit(X_train, y_train)from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activationmodel = Sequential() #建立模型
model.add(Dense(input_dim = 12, output_dim = 48)) #添加输入层、隐藏层的连接
model.add(Activation('tanh')) #以Relu函数为激活函数model.add(Dense(input_dim = 48, output_dim = 48)) #添加隐藏层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数
model.add(Dropout(0.2))model.add(Dense(input_dim = 48, output_dim = 36)) #添加隐藏层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数
model.add(Dropout(0.2))
model.add(Dense(input_dim = 36, output_dim = 36)) #添加隐藏层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数model.add(Dense(input_dim = 36, output_dim = 12)) #添加隐藏层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数
model.add(Dense(input_dim = 12, output_dim = 12)) #添加隐藏层、隐藏层的连接
model.add(Activation('relu')) #以Relu函数为激活函数model.add(Dense(input_dim = 12, output_dim = 1)) #添加隐藏层、输出层的连接
model.add(Activation('sigmoid')) #以sigmoid函数为激活函数
#编译模型,损失函数为binary_crossentropy,用adam法求解
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(x_train.values, y_train.values, nb_epoch = 70, batch_size = 2000) #训练模型r = pd.DataFrame(model.predict_classes(x_test.values))
'''
r = pd.DataFrame(model.predict(x_test.values))
rr=r.values
tr=rr.flatten()for i in range(tr.shape[0]):if tr[i]>0.5:tr[i]=1else:tr[i]=0
'''
from sklearn.metrics import accuracy_score
print(accuracy_score(y_test, r))
0.650640749978
我对神经网络进行了各种优化,正确率一直上不去,计算结果还不如我的神经网络股票预测代码
我不高兴,非常不高兴,65%的正确率是我无法容忍的,让我郁闷的是,我一直深爱的神经网络居然也这么无力
不能这样下去,下回我们将采用传说中的xgboost试一下
百度云代码下载
提取码 jc5x
神经网络贷款风险评估(base on keras and python )相关推荐
- 神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras 300 用我
神经网络贷款风险评估(base on keras and python ) 原创 2017年08月18日 14:35:17 标签: python / 神经网络 / keras / 300 编辑 删除 ...
- DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Functional)利用MNIST(手写数字图片识别)数据集实现多分类预测
DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Functional)利用MNIST(手写数字图片识别)数据集实现多分类预测 目录 输出结果 设计思路 核心代码 输出结果 下边两张 ...
- 人脸识别学习一(Keras: 基于 Python 的深度学习库)
只是把一些文字部分复制出来方便看,完整还是参考源地址,参考文章https://keras.io/zh/ 写在前面: 第一次接触Keras,用自己的话简单概括一下什么事Keras,(不准确之处欢迎批评指 ...
- 从参数数量视角理解深度学习神经网络算法 DNN, CNN, RNN, LSTM 以python为工具
从参数数量视角理解深度学习神经网络算法 DNN, CNN, RNN, LSTM 以python为工具 文章目录 1. 神经网络数据预处理 1.1 常规预测情景 1.2 文本预测场景 2.全连接神经网络 ...
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP
原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...
- 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR
原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression python源代码(GitHub下载 CSDN免费下载) ...
- 卷积神经网络(三):卷积神经网络CNN的简单实现(部分Python源码)
转载自: 卷积神经网络(三):卷积神经网络CNN的简单实现(部分Python源码) - xuanyuansen的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/xu ...
- DL中版本配置问题:TensorFlow、Keras、Python版本完美搭配推荐
DL中版本配置问题:TensorFlow.Keras.Python版本完美搭配推荐 目录 TensorFlow.Keras.Python版本完美搭配推荐 TensorFlow.Keras.Python ...
- DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测
DL之CNN:利用卷积神经网络算法(2→2,基于Keras的API-Sequential)利用MNIST(手写数字图片识别)数据集实现多分类预测 目录 输出结果 设计思路 核心代码 输出结果 1.10 ...
最新文章
- 计算机主机的作用和性能指标,Cpu是什么 cpu性能指标主要有哪几个方面【详细介绍】...
- 013_Slider滑块
- 276.	Paint Fence
- MTDDL——美团点评分布式数据访问层中间件
- 基于 Ubuntu 搭建微信小程序服务
- ubuntu下各个目录的含义
- LeetCode Gray Code 格雷码
- HMC(Hamiltonian Monte Carlo抽样算法详细介绍)
- 链表冒泡排序java_055-冒泡排序算法代码实现
- linux 64位module内联汇编,@yuanbor: Linux内联汇编总结
- loadrunner协议选择
- 使用ajax的时候必须要加的几行代码
- Leetcode第412题——Fizz Buzz
- SSH-keygen用法
- 零基础学C语言之初识C语言(上)
- 电脑运行内存8g够用吗
- Win32API:CreateDialog、DialogBox、DialogProc
- IC设计工程师的职业规划
- SPI的NSS硬件模式
- 7-75 正方体表面积计算