> 文档中心 > 【神经网络模型】

【神经网络模型】


 工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计或近似。 

文章目录

  • 前言
  • 一、需要库的介绍
  • 二、使用步骤
    • 1.导入数据,并将数据分为训练集和测试集
    • 2.读入数据
  • 总结

导入所需要的库

pandas:pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Sklean:是针对Python编程语言的免费软件机器学习库。sklearn又称Scikit-learn,是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归、降维、分类、聚类等方法。是一项简单高效的数据挖掘和数据分析工具。

import pandas as pdimport numpy as npfrom sklearn import model_selectionfrom sklearn import metricsimport matplotlib.pyplot as pltfrom sklearn.metrics import roc_curve

导入数据,并将数据分为训练集和测试集

        数据集拆分,分为训练集、验证集和测试集。首先把所有数据集拆分为90%训练集和10%测试集;然后接着把90%的训练集再拆分为80%训练集和20%验证集。关键代码如下:

# 参数初始化df=pd.read_excel('D:\数据挖掘\财务项目\规范化.xlsx')x=df.iloc[:11300,[31,34,45,46,52,57,66,83,96,101]]y=df.iloc[:11300,104]x_train,x_test,y_train,y_test = model_selection.train_test_split(x,y,test_size = 0.25,random_state =0)

将数据进行训练

from keras.models import Sequentialfrom keras.layers.core import Dense, Activationmodel = Sequential()  # 建立模型model.add(Dense(input_dim=10, units=10))model.add(Activation('relu')) # 用relu函数作为激活函数,能够大幅提供准确度model.add(Dense(input_dim=10, units=1))model.add(Activation('sigmoid'))  # 由于是0-1输出,用sigmoid函数作为激活函数model.compile(loss='binary_crossentropy', optimizer='adam')# 编译模型。由于我们做的是二元分类,所以我们指定损失函数为binary_crossentropy,以及模式为binary# 另外常见的损失函数还有mean_squared_error、categorical_crossentropy等,请阅读帮助文件。# 求解方法我们指定用adam,还有sgd、rmsprop等可选model.fit(x_train,y_train, epochs=10, batch_size=10)  # 训练模型,学习一千次

预测并进行分析

# yp = model.predict_classes(x).reshape(len(y))  # 分类预测predict_x=model.predict(x_test)yp=np.argmax(predict_x,axis=1)print(yp)print(metrics.confusion_matrix(y_test,yp))#查看混淆矩阵print(metrics.classification_report(y_test,yp))#评估报告

混淆矩阵可视化 

from cm_plot import *  # 导入自行编写的混淆矩阵可视化函数cm_plot(y_test, yp).show()  # 显示混淆矩阵可视化结果

绘制出ROC曲线 并计算AUC 

#注意到Scikit-Learn使用predict方法直接给出预测结果。fpr, tpr, thresholds = roc_curve(y_test, model.predict(x_test),pos_label=1)auc=metrics.roc_auc_score(y_test, model.predict(x_test))plt.plot(fpr, tpr, linewidth=2,label = 'ROC curve(area=%0.2f)'%auc, color ='green')plt.plot([0,1],[0,1],color='navy',lw=2,linestyle='--')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() #显示作图结果


总结

深度学习作为人工智能最热的研究,正被广泛用于语音、图像、文本的识别并取得了惊人的效果;语音识别作为未来人机接口的主要接口,直接影响着智能系统的用户体验。将两种技术有机结合,一方面语音识别系统收集的大量训练数据有助于训练鲁棒性更强、泛化能力更强的深度网络,另一方面更好更强的深度网络更能有效语音识别系统的识别精度,降低语音识别系统受噪音的影响。。

开发者涨薪指南 【神经网络模型】 48位大咖的思考法则、工作方式、逻辑体系Job256网站商业源码