利用LM神经网络和决策树去分类

# -*- coding: utf-8 -*-
import pandas as pd
from scipy.interpolate import lagrange
from matplotlib import pyplot as plt
from random import shuffle
from keras.models import Sequential #导入神经网络初始化函数
from keras.layers.core import Dense, Activation #导入神经网络层函数、激活函数
# inputfile=‘F:\\python数据挖掘\\chapter6\\chapter6\\demo\\data\\missing_data.xls‘
# outputfile=‘F:\\python数据挖掘\\chapter6\\chapter6\\demo\\tmp\\missing_data_sale.xls‘
# data=pd.read_excel(inputfile,header=None)

datafile = ‘F:\\python数据挖掘\\chapter6\\chapter6\\demo\\data\\model.xls‘
data = pd.read_excel(datafile)
#print(data)
#print(type(data))
data = data.as_matrix()#转换成矩阵或者是数组型,对数据进行操作。
shuffle(data)#随机扰乱数据
#print(data)

p = 0.8 #设置训练数据比例
train = data[:int(len(data)*p),:]
test = data[int(len(data)*p):,:]
#
#
netfile = ‘F:\\python数据挖掘\\chapter6\\chapter6\\demo\\tmp\\net.model1‘ #构建的神经网络模型存储路径
#
net = Sequential() #建立神经网络
net.add(Dense(input_dim=3,output_dim=10)) #添加输入层(3节点)到隐藏层(10节点)的连接
#net.add(Dense(32, input_dim=16))
net.add(Activation(‘relu‘)) #隐藏层使用relu激活函数
net.add(Dense(input_dim=10, output_dim=1)) #添加隐藏层(10节点)到输出层(1节点)的连接
net.add(Activation(‘sigmoid‘)) #输出层使用sigmoid激活函数
net.compile(loss = ‘binary_crossentropy‘, optimizer = ‘adam‘, class_mode = "binary") #编译模型,使用adam方法求解

net.fit(train[:,:3], train[:,3], nb_epoch=2, batch_size=1) #训练模型,循环1000次,Keras模块中的batch_size指的就是小批量梯度下降法。
net.save_weights(netfile) #保存模型

#predict_result = net.predict_classes(train[:,:3]).reshape(len(train)) #预测结果变形
‘‘‘这里要提醒的是,keras用predict给出预测概率,predict_classes才是给出预测类别,而且两者的预测结果都是n x 1维数组,而不是通常的 1 x n‘‘‘
#
# from cm_plot import * #导入自行编写的混淆矩阵可视化函数
# cm_plot(train[:,3], predict_result).show() #显示混淆矩阵可视化结果
#
from sklearn.metrics import roc_curve #导入ROC曲线函数
#
predict_result = net.predict(test[:,:3]).reshape(len(test))
fpr, tpr, thresholds = roc_curve(test[:,3], predict_result, pos_label=1)
print(fpr,tpr)
plt.plot(fpr, tpr, linewidth=2, label = ‘ROC of LM‘) #作出ROC曲线
plt.xlabel(‘False Positive Rate‘) #坐标轴标签
plt.ylabel(‘True Positive Rate‘) #坐标轴标签
plt.ylim(0,1.05) #边界范围
plt.xlim(0,1.05) #边界范围
plt.legend(loc=4) #图例
plt.show() #显示作图结果

结果画出的图如上面所示。

主要步骤为:

第一:从原始数据中随机性的抽取数据,然后进行数据探索分析数据,数据探索分析包括:

1.数据清洗

2.缺失值处理

3.数据变换

第二:建模样本数据

1.模型训练

2.模型评价

第三:预处理后诊断数据

第四:自动诊断

第五:根据诊断结果进行模型的优化与重构

最后,再进行模型的训练和评价。

时间: 2024-08-05 06:25:15

利用LM神经网络和决策树去分类的相关文章

javascript实现朴素贝叶斯分类与决策树ID3分类

今年毕业时的毕设是有关大数据及机器学习的题目.因为那个时间已经步入前端的行业自然选择使用JavaScript来实现其中具体的算法.虽然JavaScript不是做大数据处理的最佳语言,相比还没有优势,但是这提升了自己对与js的理解以及弥补了一点点关于数据结构的弱点.对机器学习感兴趣的朋友还是去用 python,最终还是在学校的死板论文格式要求之外,记录一下实现的过程和我自己对于算法的理解.源码在github:https://github.com/abzerolee/ID3_Bayes_JS开始学习

Neuromation新研究:利用卷积神经网络进行儿童骨龄评估

近日,Neuromation 团队在 Medium 上撰文介绍其最新研究成果:利用卷积神经网络(CNN)评估儿童骨龄,这一自动骨龄评估系统可以得到与放射科专家相似或更好的结果.该团队评估了手骨不同区域,发现仅对掌骨和近端指骨进行评估,得到的结果与对整个手骨进行评估的结果相差无几.为了克服放射图像的质量和多样性问题,该团队引入了严格的清理和标准化过程,以增强模型的鲁棒性和准确率,提升骨龄评估的准确率.提高结果的可复现性以及临床医生的效率. Alexander 的论文<Pediatric Bone

利用深度学习(Keras)进行癫痫分类-Python案例

目录 癫痫介绍 数据集 Keras深度学习案例 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区(微信号:Brain_Computer).QQ交流群:903290195 癫痫介绍 癫痫,即俗称"羊癫风",是由多种病因引起的慢性脑功能障碍综合症,是仅次于脑血管病的第二大脑部疾病.癫痫发作的直接原因是脑部神经元反复地突发性过度放电所导致的间歇性中枢神经系统功能失调.临床上常表现为突然意识丧失.全身抽搐以及精神异常等.癫痫给患者带来巨大的痛苦和身心伤害,严重时甚至危及生命,儿童患者会

02-26 决策树(鸢尾花分类)

目录 决策树(鸢尾花分类) 一.导入模块 二.获取数据 三.构建决策边界 四.训练模型 五.可视化 六.可视化决策树 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ 决策树(鸢尾花分类) 一.导入模块 import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import Lis

利用CNN神经网络实现手写数字mnist分类

题目: 1)In the first step, apply the Convolution Neural Network method to perform the training on one single CPU and testing 2)In the second step, try the distributed training on at least two CPU/GPUs and evaluate the training time. 一.单机单卡实现mnist_CNN 1

利用卷积神经网络对大规模可穿戴传感器数据进行运动分类

Exercise Motion Classification from Large-scale Wearable Sensor Data Using Convolutional Neural Networks 本文使用CNN来对可穿戴传感器收集的大规模运动数据进行分类,同时对传感器数据转换为不同的图像格式输入做出了比较.最佳性能配置以92.1%的准确率将50种健身房运动分类. 作者在这里使用的是CNN而不是RNN(常用来处理时序数据),是因为每次的重复运动练习(如举哑铃)是花费的时间是非常短的少

卷积神经网络_(2)_分类与回归_几类经典网络简介

1.经典神经网络有:2012年提出的AlexNet和2014年提出的VGGNet,结构图分别如下: 2.分类与回归: (1)分类(classfication):就是经过经过一系列的卷积层和池化层之后,再经过全连接层得到样本属于每个类的得分,再用比如softmax分类其对其进行分类: (2)回归(regression):相当于用一个矩形框来框住要识别的物体,即localization; 如下: 这里,回归用了拟合的方法,即给定输入中物体的位置(x,yw,h),再用卷积网络的输出(x',y',w',

02. 基本分类(1):基于决策树的分类

分类技术 主要的分类技术 ? 基于决策树的方法 ? 基于规则的方法 ? 基于实例的方法 ? 贝叶斯信念网络 ? 神经网络 ? 支持向量机 分类的两个主要过程 训练/学习过程 预测/应用过程 决策树归纳 构建决策树的主要算法 - Hunt  (最早的决策树归纳算法之一) - CART  (较为复杂,只适用于小规模数据的拟合) - ID3   (无法处理数值属性,需要将数值属性进行离散化预处理) - C4.5  (ID3的升级版本,基本算法同ID3,可以处理数值属性) - SLIQ,SPRINT(主

机器学习:利用卷积神经网络实现图像风格迁移 (一)

相信很多人都对之前大名鼎鼎的 Prisma 早有耳闻,Prisma 能够将一张普通的图像转换成各种艺术风格的图像,今天,我们将要介绍一下Prisma 这款软件背后的算法原理.就是发表于 2016 CVPR 一篇文章, " Image Style Transfer Using Convolutional Neural Networks" 算法的流程图主要如下: 总得来说,就是利用一个训练好的卷积神经网络 VGG-19,这个网络在ImageNet 上已经训练过了. 给定一张风格图像 a 和