"""

房价预测数据集 使用sklearn执行超参数搜索

"""

import matplotlib as mpl

import matplotlib.pyplot as plt

import numpy as np

import sklearn

import pandas as pd

import os

import sys

import tensorflow as tf

from tensorflow_core.python.keras.api._v2 import keras # 不能使用 python

from sklearn.preprocessing import StandardScaler

from sklearn.datasets import fetch_california_housing

from sklearn.model_selection import train_test_split, RandomizedSearchCV

from scipy.stats import reciprocal

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

assert tf.__version__.startswith('2.')

# 0.打印导入模块的版本

print(tf.__version__)

print(sys.version_info)

for module in mpl, np, sklearn, pd, tf, keras:

print("%s version:%s" % (module.__name__, module.__version__))

# 显示学习曲线

def plot_learning_curves(his):

pd.DataFrame(his.history).plot(figsize=(8, 5))

plt.grid(True)

plt.gca().set_ylim(0, 1)

plt.show()

# 1.加载数据集 california 房价

housing = fetch_california_housing()

print(housing.DESCR)

print(housing.data.shape)

print(housing.target.shape)

# 2.拆分数据集 训练集 验证集 测试集

x_train_all, x_test, y_train_all, y_test = train_test_split(

housing.data, housing.target, random_state=7)

x_train, x_valid, y_train, y_valid = train_test_split(

x_train_all, y_train_all, random_state=11)

print(x_train.shape, y_train.shape)

print(x_valid.shape, y_valid.shape)

print(x_test.shape, y_test.shape)

# 3.数据集归一化

scaler = StandardScaler()

x_train_scaled = scaler.fit_transform(x_train)

x_valid_scaled = scaler.fit_transform(x_valid)

x_test_scaled = scaler.fit_transform(x_test)

# 创建keras模型

def build_model(hidden_layers=1, # 中间层的参数

layer_size=30,

learning_rate=3e-3):

# 创建网络层

model = keras.models.Sequential()

model.add(keras.layers.Dense(layer_size, activation="relu",

input_shape=x_train.shape[1:]))

# 隐藏层设置

for _ in range(hidden_layers - 1):

model.add(keras.layers.Dense(layer_size,

activation="relu"))

model.add(keras.layers.Dense(1))

# 优化器学习率

optimizer = keras.optimizers.SGD(lr=learning_rate)

model.compile(loss="mse", optimizer=optimizer)

return model

def main():

# RandomizedSearchCV

# 1.转化为sklearn的model

sk_learn_model = keras.wrappers.scikit_learn.KerasRegressor(build_model)

callbacks = [keras.callbacks.EarlyStopping(patience=5, min_delta=1e-2)]

history = sk_learn_model.fit(x_train_scaled, y_train, epochs=100,

validation_data=(x_valid_scaled, y_valid),

callbacks=callbacks)

# 2.定义超参数集合

# f(x) = 1/(x*log(b/a)) a <= x <= b

param_distribution = {

"hidden_layers": [1, 2, 3, 4],

"layer_size": np.arange(1, 100),

"learning_rate": reciprocal(1e-4, 1e-2),

}

# 3.执行超搜索参数

# cross_validation:训练集分成n份, n-1训练, 最后一份验证.

random_search_cv = RandomizedSearchCV(sk_learn_model, param_distribution,

n_iter=10,

cv=3,

n_jobs=1)

random_search_cv.fit(x_train_scaled, y_train, epochs=100,

validation_data=(x_valid_scaled, y_valid),

callbacks=callbacks)

# 4.显示超参数

print(random_search_cv.best_params_)

print(random_search_cv.best_score_)

print(random_search_cv.best_estimator_)

model = random_search_cv.best_estimator_.model

print(model.evaluate(x_test_scaled, y_test))

# 5.打印模型训练过程

plot_learning_curves(history)

if __name__ == '__main__':

main()

python 超参数_OpenCV python sklearn随机超参数搜索的实现相关推荐

  1. python绘制汉字_OpenCV Python 绘制中文字

    By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 通过使用PLI在图片上添加中文字符. PIL(Pyt ...

  2. python opencv保存图片_OpenCV Python 保存图片

    By 凌顺 2019年9月12日 本示例使用的OpenCV版本是:4.1.1 运行Python的编辑器:Jupyter notebook 示例目的 通过无损和有损的方式进行图片保存. 实现代码 1,加 ...

  3. python 创建画板_OpenCV +Python 制作画板

    首先声明一下,本例思路不是博主原创,博主在前人的代码上进行了个性化的修改,制作了一个简单的画图工具.下面附上自己的理解,与君共勉. 效果图 画图工具实现 代码 # coding:utf-8 impor ...

  4. python opencv 摄像头_opencv python中摄像头参数的设置

    我正在使用Windows7 64位操作系统以及Python3和OpenCV.我的电脑连接到以下型号的两个罗技网络摄像头: 1)罗技高清网络摄像头C615 2) 罗技QuickCam Pro 9000 ...

  5. python制作礼物_opencv+python制作硬核七夕礼物

    点击上方"蓝色小字"关注我呀 明天就是七夕了! 如果有对象,祝早生贵子!没有对象,祝早结连理! (搞笑一下,祝大家幸福美满吧,嘿嘿嘿) 给大家准备了一份已经写好的代码,利用pyth ...

  6. python均值滤波_opencv+python实现均值滤波

    本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下 原理 均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是 ...

  7. python 椭圆检测_opencv python中的椭圆检测

    我的图片在这里: 我正在寻找更好的解决方案或算法来检测这张照片中的椭圆形部分(盘),并在Opencv中的另一张照片中对其进行遮罩. 你能给我一些建议或解决方案吗? 我的代码是: circles = c ...

  8. python椭圆拟合_opencv python 轮廓特征/凸包/外接矩形/外接圆/拟合矩形/拟合直线/拟合圆...

    Contour Features 1 图像的矩 cv2.moments() 图像的矩可以帮助计算物体的某些特征,如对象的质心,对象的区域等. 代码: import cv2 import numpy a ...

  9. python直线检测_opencv+python 开操作进行直线检测

    参考文章:https://blog.csdn.net/qq_25343557/article/details/78691828 原理: 行矩阵用来检测水平直线,列矩阵用来检测竖直直线. 代码如下: i ...

最新文章

  1. 对tomcat服务的***演示与安全分析
  2. [论文浅析]ICLR2017 跨语言,跨任务,跨领域序列标注
  3. 陈曦:超低延迟下的实时合唱体验升级
  4. [渝粤教育] 西南科技大学 机械专业外语 在线考试复习资料2021版
  5. SyntaxError: Non-ASCII character '\xe7
  6. 小林求职记(五)上来就一连串的分布式缓存提问,我有点上头....
  7. 数据库基础:MySQL必备的三个工具
  8. 核PCA与PCA的精髓和核函数的映射实质
  9. LeetCode刷题(简单)笔记C++
  10. IIS出现server application error的解决办法
  11. 光储充一体化充电站,新能源汽车充电桩节能解决方案
  12. 肥学献礼——自动写诗
  13. [大学物理实验-0]修约规则和常见的实验数据的处理
  14. 网店推广之百度百科推广
  15. 大数据的学习需要预先了解哪些基础知识?
  16. 使用vue编写登录页面详细过程
  17. LA 4394 刷字符串(区间dp)
  18. 基于动态阈值、灰色世界、镜面法的自动白平衡
  19. 数据结构1800关于图的代码精选(二)
  20. 程序员未来的出路与如何转型

热门文章

  1. 【tool】firewall防火墙
  2. 2运行内存多大_电脑有没有必要升到16GB内存?今年内存这么便宜?要不要抄底升级到16GB?...
  3. 使用计算机教学的意义,信息技术对教学的意义
  4. #pragma pack(push,1)与#pragma pack(1)的区别(转)
  5. 数据导入导出、备份恢复
  6. python笔记之强制函数以关键字参数传参
  7. layui流加载及传参
  8. 利用递归级联删除的代码
  9. poj 2001 Shortest Prefixes(特里)
  10. administrator