keras开发成sklearn接口
我们可以通过包装器将Sequential模型(仅有一个输入)作为Scikit-Learn工作流的一部分,相关的包装器定义在keras.wrappers.scikit_learn.py中:
这里有两个包装器可用:
分类器接口:keras.wrappers.scikit_learn.KerasClassifier(build_fn=None, **sk_params)
回归器接口:keras.wrappers.scikit_learn.KerasRegressor(build_fn=None, **sk_params)
参考文献:https://keras-cn.readthedocs.io/en/latest/scikit-learn_API/
"""
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
def model(optimizer="adam"):
#create model
model = Sequential()
model.add(Dense(input_dim=4,units=12,activation="relu"))
model.add(Dense(units=8,activation="relu"))
model.add(Dense(units=1,activation="sigmoid"))
#compile model
model.compile(loss="mse",optimizer=optimizer,metrics=["accuracy"],)
return model
#######################################################################################
#create data
np.random.seed(seed=10)
X = np.random.randn(100,4)
y = np.random.randn(100) #split data in train dataset and test dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) #using wrappers to create sklearn interface model = KerasRegressor(build_fn=model,epochs=10,batch_size=5) #training
model.fit(X_train,y_train)
#predicting
y_pred = model.predict(X_test)
#evalution
print("mse:"+str(mean_squared_error(y_test,y_pred))) #cross_validation
from sklearn.model_selection import cross_val_score
mse = cross_val_score(estimator=model,X=X,y=y,cv=5,n_jobs=1,scoring="neg_mean_squared_error")
print("average value of mse:"+str(mse))
#########################################################################################
#adjust parameters of model
#gridSearchCV
from sklearn.model_selection import GridSearchCV
params = {"optimizer":['rmsprop','adam'],
"epochs": [5,10],
"batch_size":[5,10],
} gridSearchCV = GridSearchCV(estimator=model,param_grid=params,cv=5)
result = gridSearchCV.fit(X,y) result.best_params_
result.best_score_
#########################################################################################
#skopt
from skopt.space import Real,Integer,Categorical
from skopt.utils import use_named_args
from skopt import gp_minimize space = [Categorical(categories=['rmsprop','adam'],name="optimizer"),
Categorical(categories=[1,2,3],name="epochs")] @use_named_args(space)
def objective(**params):
model.set_params(**params)
return -np.mean(cross_val_score(model,X,y,cv=5,n_jobs=1,scoring="neg_mean_squared_error")) result = gp_minimize(objective, space, n_calls=50, random_state=0)
print("best score:%.4f"%(result.fun))
print("best parameters:",result.x)
keras开发成sklearn接口的更多相关文章
- JAVAEE——Mybatis第一天:入门、jdbc存在的问题、架构介绍、入门程序、Dao的开发方法、接口的动态代理方式、SqlMapConfig.xml文件说明
1. 学习计划 第一天: 1.Mybatis的介绍 2.Mybatis的入门 a) 使用jdbc操作数据库存在的问题 b) Mybatis的架构 c) Mybatis的入门程序 3.Dao的开发方法 ...
- Spring Boot入门(四):开发Web Api接口常用注解总结
本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 在程序员的日常工作中,Web开发应该是占比很重的一部分,至少我工作以来,开发的系统基本都是Web端访问的 ...
- FastAPI(六十七)实战开发《在线课程学习系统》接口开发--用户登陆接口开发
接上一篇文章FastAPI(六十六)实战开发<在线课程学习系统>接口开发--用户注册接口开发.这次我们分享实际开发--用户登陆接口开发. 我们先来梳理下逻辑 1.查询用户是否存在2.校验密 ...
- 使用Thinkphp框架开发移动端接口
本文给大家分享的是使用thinkphp框架开发移动端接口的2种方法,一种是开发API,另外一种是实现移动端访问自动切换移动主题模板,从而实现伪app访问,下面我们就来详细看下如何实现吧. 方案一:给 ...
- Openfire开发广播服务接口,支持离线广播消息
Openfire开发广播服务接口,支持离线广播消息 概要 最近公司要求做一个web端向所有移动端发送公告,所以考虑到即时性就用openfire做服务.不过为了减轻web端的工作量,我们开发一个简单的插 ...
- django2_开发web系统接口
1.单独创建.../sign/views_if.py文件,开发添加发布会接口 from django.http import JsonResponse from cmdb.models import ...
- 准备开发开放API接口
准备开发APP开放接口,允许JQUERY直接调用http://blog.csdn.net/wuxiangege/article/details/52238968 SIGN的设计与实现http://bl ...
- Vue-cli 本地开发请求https 接口 DEPTH_ZERO_SELF_SIGNED_CERT
环境:npm run dev 本地开发连接后台的开发环境的接口. 贴上proxyTable 的转发(代理?反向?这个具体叫什么不明白...) proxyTable: { "/api" ...
- JMeter5.1开发Java协议接口脚本【待完成】
JMeter5.1开发Java协议接口脚本
随机推荐
- vue-cli 添加到生产环境问题总结
1. 路径问题 部署到生产环境后的实际链接为: 服务器项目路径 + serviceUrl的路径 创建 GlobalConstant.js 分别配置 开发环境和生产环境的 路径 (注:此处生 ...
- HDU 4970
http://acm.hdu.edu.cn/showproblem.php?pid=4970 比赛的时候线段树水过的,比赛后线段树一直T,看了下正解真的是智商压制 题意:走直线,长度1-N,还有一些人 ...
- Linux Framebuffer save as picture
/********************************************************************************* * Linux Framebuff ...
- Unity打安卓包 Android 所有错误解决方案大全(几乎囊括所有打包错误 )
Unity打包出错解决方案 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
- HDU 2094:产生冠军(拓扑排序)
产生冠军 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- C#对文件I/O的一些基本操作
System.IO命名空间包含允许在数据流和文件上进行同步,异步及写入的类型,下面是关于c#文件的I/O基本操作讲解,需要的朋友可以参考下 文件是一些永久存储及具有特定顺序的字节组成的一个有序的,具有 ...
- python之concurrent.futures模块
一.concurrent.futures模块简介 concurrent.futures 模块提供了并发执行调用的高级接口 并发可以使用threads执行,使用ThreadPoolExecutor 或 ...
- Hadoop之HDFS
摘要:HDFS是Hadoop的核心模块之一,围绕HDFS是什么.HDFS的设计思想和HDFS的体系结构三方面来介绍. 关键词:Hadoop HDFS 分布式存储系统 HDFS是Hadoop的核心 ...
- smarty学习——编写扩展
在进行了以上的开发环境的配置之后就是,进行进一步的学习,为了开发的方便我们一般会使用oop的编程思想,进行方便的处理 如下: 1.smartyUser 的创建 <?php require_onc ...
- TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点
TensorFlow笔记-08-过拟合,正则化,matplotlib 区分红蓝点 首先提醒一下,第7讲的最后滑动平均的代码已经更新了,代码要比理论重要 今天是过拟合,和正则化,本篇后面可能或更有兴趣, ...