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协议接口脚本
随机推荐
- php 给对象动态增加属性 及子类继承父类的构造方法
<?php error_reporting(-1); ini_set('display_errors','on'); class A { public $a = 'hello'; public ...
- Linux更改中国时区
执行tzselect命令-->选择Asia-->选择China-->选择east China - Beijing, ->然后输入1 再执行 ln -sf /usr/share/ ...
- ModuleNotFoundError: No module named '_tkinter'
https://blog.csdn.net/blueheart20/article/details/78763208 apt search python3-tk apt install python3 ...
- Android Mokoid Open Source Project hacking
/***************************************************************************** * Android Mokoid Open ...
- FZU OJ 1075 :分解素因子
Problem 1075 分解素因子 Accept: 2161 Submit: 4126Time Limit: 1000 mSec Memory Limit : 32768 KB Pro ...
- 放苹果问题 DP计数 m个苹果放在n个盘子里,苹果,盘子相同,盘子可为空
详细的解释放苹果问题的链接:苹果可相同可不同,盘子可相同可不同,盘子可空和不可空,都有详细的说明··· http://www.cnblogs.com/celia01/archive/2012/02/1 ...
- 字符串匹配--AC自动机模板
AC自动机果断是神一样的东西,我赶在比赛前学习还是有用的,AC自动机最基本的是可以解决多个模式串在一个长字符串中出现的种类数或次数: 我暂时还是修改大神们的模板的昂 满满个人注释版帮助自己理解版: / ...
- WIFI_认证加密学习_STA_AP_WDS
2-1.1_15_使用卡1_准备工作及配置内核====================================1.无线网卡连接上路由或AP之后使用上是和有线网卡是一样的,都是socket编程. ...
- C条件编译
#include <stdio.h> void main() { #ifdef AAA printf("find AAA defined\n"); #else prin ...
- AQS源码分析
AQS全程为AbstractQueuedSynchronizer,其定义了一套多线程访问共享资源的同步框架,大部分的同步类的实现都依赖于他,比如ReentrantLock,ReentrantReadW ...