神经网络——基于sklearn的参数介绍及应用
一、MLPClassifier&MLPRegressor参数和方法
参数说明(分类和回归参数一致):
hidden_layer_sizes :例如hidden_layer_sizes=(50, 50),表示有两层隐藏层,第一层隐藏层有50个神经元,第二层也有50个神经元。
activation :激活函数,{‘identity’, ‘logistic’, ‘tanh’, ‘relu’}, 默认relu
identity:f(x) = x
logistic:其实就是sigmod,f(x) = 1 / (1 + exp(-x)).
tanh:f(x) = tanh(x).
relu:f(x) = max(0, x)
solver: 权重优化器,{‘lbfgs’, ‘sgd’, ‘adam’}, 默认adam
lbfgs:quasi-Newton方法的优化器
sgd:随机梯度下降
adam: Kingma, Diederik, and Jimmy Ba提出的机遇随机梯度的优化器
注意:默认solver ‘adam’在相对较大的数据集上效果比较好(几千个样本或者更多),对小数据集来说,lbfgs收敛更快效果也更好。
alpha :float,可选的,默认0.0001,正则化项参数
batch_size : int , 可选的,默认’auto’,随机优化的minibatches的大小batch_size=min(200,n_samples),如果solver是’lbfgs’,分类器将不使用minibatch
learning_rate :学习率,用于权重更新,只有当solver为’sgd’时使用,{‘constant’,’invscaling’, ‘adaptive’},默认constant
‘constant’: 有’learning_rate_init’给定的恒定学习率
‘incscaling’:随着时间t使用’power_t’的逆标度指数不断降低学习率learning_rate_ ,effective_learning_rate = learning_rate_init / pow(t, power_t)
‘adaptive’:只要训练损耗在下降,就保持学习率为’learning_rate_init’不变,当连续两次不能降低训练损耗或验证分数停止升高至少tol时,将当前学习率除以5.
power_t: double, 可选, default 0.5,只有solver=’sgd’时使用,是逆扩展学习率的指数.当learning_rate=’invscaling’,用来更新有效学习率。
max_iter: int,可选,默认200,最大迭代次数。
random_state:int 或RandomState,可选,默认None,随机数生成器的状态或种子。
shuffle: bool,可选,默认True,只有当solver=’sgd’或者‘adam’时使用,判断是否在每次迭代时对样本进行清洗。
tol:float, 可选,默认1e-4,优化的容忍度
learning_rate_int:double,可选,默认0.001,初始学习率,控制更新权重的补偿,只有当solver=’sgd’ 或’adam’时使用。
属性说明:
coefs_包含w的矩阵,可以通过迭代获得每一层神经网络的权重矩阵
classes_:每个输出的类标签
loss_:损失函数计算出来的当前损失值
coefs_:列表中的第i个元素表示i层的权重矩阵
intercepts_:列表中第i个元素代表i+1层的偏差向量
n_iter_ :迭代次数
n_layers_:层数
n_outputs_:输出的个数
out_activation_:输出激活函数的名称
二、使用MLPClassifier进行分类
- import numpy as np
- import pandas as pd
- from sklearn.neural_network import MLPClassifier
- from sklearn.datasets import load_iris
- from sklearn.model_selection import train_test_split
- from sklearn import metrics
- data=load_iris()
- feature=data.data
- target=data.target
- print(np.unique(target))
- xtrain,xtest,ytrain,ytest=train_test_split(feature,target,train_size=0.7,random_state=421)
- nn=MLPClassifier(hidden_layer_sizes=(3,5),activation="tanh",shuffle=False,solver="lbfgs",alpha=0.001)
- model=nn.fit(xtrain,ytrain)
- pre=model.predict(xtest)
- print(pre)
- print(ytest)
- print(model.coefs_)
- print(model.n_layers_)
- print(model.n_outputs_)
- print(model.predict_proba(xtest))
- print(model.score(xtest,ytest))
- print(model.classes_)
- print(model.loss_)
- print(model.activation)
- print(model.intercepts_)
- print(model.n_iter_)
- print(metrics.confusion_matrix(ytest,pre))
- print("分类报告:", metrics.classification_report(ytest,pre))
- print("W权重:",model.coefs_[:1])
- print("损失值:",model.loss_)
- index=0
- for w in model.coefs_:
- index += 1
- print('第{}层网络层:'.format(index))
- print('权重矩阵:', w.shape)
- print('系数矩阵:', w)
三、使用MLPRegressor进行回归
- import numpy as np
- import pandas as pd
- from sklearn.neural_network import MLPRegressor
- from sklearn.datasets import load_boston
- from sklearn.model_selection import train_test_split
- import matplotlib.pyplot as plt
- from sklearn.model_selection import train_test_split
- data=load_boston()
- feature=data.data
- target=data.target
- xtrain,xtest,ytrain,ytest=train_test_split(feature,target,train_size=0.7,random_state=421)
- nn=MLPRegressor(hidden_layer_sizes=(100,100),activation="identity",shuffle=False,solver="lbfgs",alpha=0.001)
- model=nn.fit(xtrain,ytrain)
- pre=model.predict(xtest)
- print(pre)
- print(ytest)
- print(model.coefs_)
- print(model.n_layers_)
- print(model.n_outputs_)
- print(model.score(xtest,ytest))
- index=0
- for w in model.coefs_:
- index += 1
- print('第{}层网络层:'.format(index))
- print('仅重矩阵:', w.shape)
- print('系数矩阵:', w)
- plt.plot(range(152),pre,color='red')
- plt.plot(range(152),ytest,color='blue')
- plt.show()
神经网络——基于sklearn的参数介绍及应用的更多相关文章
- 【集成学习】lightgbm参数介绍(sklearn)
# XGBoost和LightGBM部分参数对比表: lightgbm.sklearn参数介绍(官网)
- 数据挖掘入门系列教程(九)之基于sklearn的SVM使用
目录 介绍 基于SVM对MINIST数据集进行分类 使用SVM SVM分析垃圾邮件 加载数据集 分词 构建词云 构建数据集 进行训练 交叉验证 炼丹术 总结 参考 介绍 在上一篇博客:数据挖掘入门系列 ...
- 循环神经网络(RNN, Recurrent Neural Networks)介绍(转载)
循环神经网络(RNN, Recurrent Neural Networks)介绍 这篇文章很多内容是参考:http://www.wildml.com/2015/09/recurrent-neur ...
- 基于sklearn的分类器实战
已迁移到我新博客,阅读体验更佳基于sklearn的分类器实战 完整代码实现见github:click me 一.实验说明 1.1 任务描述 1.2 数据说明 一共有十个数据集,数据集中的数据属性有全部 ...
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
原文地址: http://blog.csdn.net/heyongluoyao8/article/details/48636251# 循环神经网络(RNN, Recurrent Neural Netw ...
- SQLMAP参数介绍
转自:http://zhan.renren.com/bugpower?gid=3602888498044629629&checked=true SQLMAP参数介绍 sqlmap的使用方式:p ...
- Bootstrap Paginator 分页插件参数介绍及使用
Bootstrap Paginator是一款基于Bootstrap的js分页插件,功能很丰富,个人觉得这款插件已经无可挑剔了.它提供了一系列的参数用来支持用户的定制,提供了公共的方法可随时获得插件状态 ...
- Apache中 RewriteRule 规则参数介绍
Apache中 RewriteRule 规则参数介绍 摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量 ...
- Python 基于python操纵zookeeper介绍
基于python操纵zookeeper介绍 by:授客 QQ:1033553122 测试环境 Win7 64位 Python 3.3.4 kazoo-2.6.1-py2.py3-none-any.w ...
- Python3学习之路~8.1 socket概念及参数介绍
一 socket介绍 TCP/IP 基于TCP/IP协议栈的网络编程是最基本的网络编程方式,主要是使用各种编程语言,利用操作系统提供的套接字网络编程接口,直接开发各种网络应用程序. socket概念 ...
随机推荐
- JS Leetcode 74. 搜索二维矩阵题解分析,二分法与坐标轴法
壹 ❀ 引 本题来自Leetcode74. 搜索二维矩阵,虽然难度是中等,但如果站在做出来的角度,你会发现其实并不难,题目描述如下: 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值. ...
- Linux进程与线程的基本概念及区别
前言 假设你正在玩一款在线多人游戏,在游戏中,有多个角色需要进行不同的操作,例如攻击.移动.释放技能等等. 接下来,我们用玩游戏的例子,来解释进程和和线程的概念,以及进程和线程的区别. 进程的基本概念 ...
- MySQL日志:slow query log
ySQL的慢查询日志可以用来找出执行时间过长的查询语句,并进行针对性的优化. 一.slow log相关参数 以下参数都是动态参数,可以在实例运行时修改. slow_query_log=1 #是否启 ...
- ORACLE查询优化及gather_plan_statistics hint
查询优化手段和gather_plan_statistics hint: 在10g以后我们可以通过利用gather_plan_statistics提示来了解更多的SQL执行统计信息,具体使用方法如下: ...
- python selenium list index out of range
常见错误原因 常见错误原因 其他错误原因 场景 使用selenium循环打开并跳转到新的网页,然后关闭新的窗口,然后回到原来窗口,这时候获取list中的值,报错: list index out of ...
- 【LeetCode回溯算法#12】二叉树的直径,树形dp的前置内容(使用dfs)
二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 . 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 .这条路径可能经过也可能不经过根节点 root . 两节点之间路径的 长度 由它们 ...
- 【Azure Redis 缓存】遇见Azure Redis不能创建成功的问题:至少一个资源部署操作失败,因为 Microsoft.Cache 资源提供程序未注册。
问题描述 在中国区微软云上创建Redis失败.收到的错误消息为: { "code": "DeploymentFailed", "message&quo ...
- chatGPT初体验
chatGPT NLP技术,通过统计的手段模拟出更正确的答案. 他与以前的NLP不一样,他有上下文语义,他能够模拟场景,能够总结很多文章信息. 因此对于谷歌等搜索引擎就很有攻击性了,因为chatGPT ...
- 学习ASP.NET Core Blazor编程系列文章之目录
学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...
- 适用于AbpBoilerplate的RocketChat Api库
RocketChat 适用于AbpBoilerplate的RocketChat Api库 Rocket.Chat 是一个免费.开源.可扩展.高度可定制且安全的平台,可让您与团队进行交流和协作.共享文件 ...