
创始词:本帖简要介绍了在Python中应用Scikit-learn建立神经网络的方法,其最新版本已经嵌入了适用的神经网络模型。创建者何塞·波尔蒂利亚是一名计算机科学顾问和培训讲师。目前,他在Udemy上教授在线课程。他也是雷锋网编译器PierianDataInc.的计算机科学部门的负责人。com(微信微信官方账号:雷锋网。com)未经批准不能被截断。
对于Python来说,深度学习最流行的公共库是SciKitLearn。最新版本(0.18)于日前发布,现在已经嵌入了适用的神经网络模型。理解这篇文章需要对Python有一个基本的了解,应用Sci-KitLearn的一些经验也很有帮助(但不是必须的)。
另外,作为一个速成,我写了一篇有详解版的妹子文章,不过是用R语言写的(点此查询)。
|神经网络神经网络是一种深度学习框架,试图模仿微生物神经网络的学习风格。微生物网络连接了神经细胞,神经细胞包含接收输入数据信号的树突。然后,根据这个输入,它们根据轴突向另一个神经细胞产生输出数据信号。我们将尝试基于人工神经网络(ANN)的应用来模拟整个过程,现在称之为神经网络。构建神经网络的整个过程从最基本的方式开始:单个感知器。
|感知器我们就按照讨论感知器开始讨论吧。感知器有一个或几个键、参考点、激活功能和单独的输出。感知器接受打字,将它们乘以一些权重,然后发送到激活函数引起输出。激活函数有很多,比如逻辑函数、三角函数、阶跃函数等。大家也答应给感知器加误差,防止了所有打字很可能等于零的问题(也就是说没有加权就会有危害)。检查以下数据图传感器的数据可视化:
一旦有了输出,我们就可以将其与已知的徽标进行比较,并相对调整权重(权重通常以任何重置值开始)。每个人再次重复整个过程,直到他们达到更大的允许迭代更新总数或可接受的错误率。
为了更好地建立神经网络,可以从累积感知器层开始建立神经网络的多层感知器模型。将导致立即接受系数被键入的键入层,以及将建立结果输出的输出层。中间的所有涂层都称为隐藏层,因为它们不会立即“查询”输入或输出因素。对于数据可视化,可以查询以下数据图表(来自维基百科)。
下面,我们就开始实际 *** 作,用python搭建一个神经网络!
|scikit-学习
为了跟上本示例教程的节奏,您必须安装最新版本的SciKitLearn。虽然按照pip或者conda安装非常容易,但是可以参考官网的安装文本文档来掌握详细的要点。
|数据信息每个人都会使用SciKitLearn中嵌入的乳腺癌数据。如果具有恶性肿瘤特征的样本将被标记,并且恶性肿瘤是恶性还是良好的信息将被显示。我们将尝试建立一个神经网络模型,它可以了解恶性肿瘤的特征,并尝试对其进行预测和分析。让我们重新开始,从现在读取数据开始!
这个目标就像一本字典,包括叙述性信息的内容、特征和数据信息的总体目标:
|训炼检测瓦解让我们把数据信息分成训练集和测试集,根据SciKitLearn的in模式选择的训练和测试,我们很容易保证这一点。
|数据预处理如果数据信息没有被标准化,神经网络将可能无法在授予更大的迭代更新频率之前收集。多层感知器对特征缩放非常敏感,所以强烈要求你缩放数据信息。必须注意,必须对测试集应用相同的缩放,以获得更有意义的结果。目前有很多不同的归一化方法,我们将使用嵌入式StandardScaler来进行归一化。
|训炼模型现在是时候训练大家的模型了。根据可能的目标,SciKitLearn让这一切变得非常非常简单。在这种情况下,我们将从SciKit-Learn的神经网络库中导入我们的可能性机器(多层感知器支持向量机模型)。
接下来,您将构建一个模型案例。您可以定义许多主要参数并进行自定义。您将只定义hidden_layer_sizes。对于该参数,您发送一个元组,该元组包括您想要在每层中的神经细胞总数,并且元组中的第n个内容指示MLP模型的第n层中的神经细胞总数。这类数据的选取方法有很多种,但为了更容易考虑,你会选取三层总数量相同的神经细胞作为数据中心化的特征:
既然已经创建了模型,我们可以将训练数据信息放入其中,并且记住该数据信息已经被求解并按比例缩小:
MLPClassifier(activation='relu',alpha=0.0001,batch_size='auto',beta_1=0.9,beta_2=0.999,early_stopping=False,epsilon=1e-08,hidden_layer_size=(30,30,30),learning_rate='constant',learning_rate_init=0.001,max_iter=200,momentum=0.9,nesterovs_momentum=True,power_t=0.5,random_
这里可以看到显示信息模型中其他主要参数的初始值输出。用不同的标准值试着 *** 作几次,就能看出数据信息对模型的危害。
|预测分析与评定现在你有了一个模型,是时候应用它来获得预测分析了!我们可以简单地在每个人的线性拟合模型中应用predict()方法:
如今,我们可以使用SciKit-Learn中嵌入的指标值,如分类报告和混淆矩阵,来评估每个人的模型实现得有多好:
似乎只有三个例子被错误分类,准确率为98%(其准确率和召回率为98%)。考虑到大家只写了那么少的代码,实际效果还是非常非常好的。众所周知,应用多层感知器模型的缺陷在于模型本身的表达有很多困难,特征的权重和误差很难随便表达。
众所周知,如果我们希望在训练模型后得到MLP的权重和误差,我们必须应用它的共同特征coefs_和intercepts_。
Coefs_是权重排水矩阵的目录,其中数据库索引I处的权重排水矩阵代表层I和层i1之间的权重。
Intercepts_是errors空之间的向量目录,其中数据库索引I处的向量表示添加到层i1的错误值。
|结果希望大家喜欢这个关于神经网络的简洁讨论。在我们的研究中,我们可以尝试轻松地玩隐藏层和神经细胞的总数,看看它们如何损害结果。
想掌握很多?你可以在Udemy上查看我的Python计算机科学与深度学习频道。
通过python
注:阅读相关网站基本建设方法的文章,请移至网站建设教程频道栏目。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)