用TensorFlow2.0将波士顿房价数据集分为训练集,验证集和测试集(6:2:2),进行Tensorflow2.0的数据加载、线性回归模型的搭建、线性回归模型的交叉验证、模型保持和新数据预测

时间: 2023-06-10 19:06:12 浏览: 65
首先,我们需要导入相关的库:tensorflow、numpy、pandas、sklearn。 ```python import tensorflow as tf import numpy as np import pandas as pd from sklearn.model_selection import train_test_split ``` 然后,我们需要加载波士顿房价数据集,并将其分为训练集、验证集和测试集。此处我们使用pandas来读取数据集,然后使用train_test_split函数将数据集分为训练集、验证集和测试集。 ```python # 读取数据集 boston_housing = pd.read_csv('https://storage.googleapis.com/tf-datasets/titanic/train.csv') # 分离X和y X = boston_housing.iloc[:, :-1].values y = boston_housing.iloc[:, -1].values.reshape(-1, 1) # 分割数据集,将其分为训练集、验证集和测试集(6:2:2) X_trainval, X_test, y_trainval, y_test = train_test_split(X, y, test_size=0.2, random_state=42) X_train, X_val, y_train, y_val = train_test_split(X_trainval, y_trainval, test_size=0.25, random_state=42) ``` 接下来,我们需要对数据进行标准化处理。我们使用StandardScaler类来实现标准化。 ```python from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train_scaled = scaler.fit_transform(X_train) X_val_scaled = scaler.transform(X_val) X_test_scaled = scaler.transform(X_test) ``` 接着,我们可以构建线性回归模型。在tensorflow2.0中,我们可以使用keras.Sequential类来构建模型。 ```python from tensorflow.keras import layers model = tf.keras.Sequential([ layers.Dense(units=1, input_shape=[X_train_scaled.shape[1]]) ]) ``` 然后,我们可以定义损失函数和优化器,并编译模型。 ```python model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.1), loss='mse') ``` 接下来,我们可以对模型进行交叉验证。在tensorflow2.0中,我们可以使用keras.wrappers.scikit_learn模块下的KerasRegressor类来实现交叉验证。 ```python from sklearn.model_selection import cross_val_score, KFold from tensorflow.keras.wrappers.scikit_learn import KerasRegressor def build_model(): model = tf.keras.Sequential([ layers.Dense(units=1, input_shape=[X_train_scaled.shape[1]]) ]) model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.1), loss='mse') return model estimator = KerasRegressor(build_fn=build_model, epochs=50, batch_size=32, verbose=0) kfold = KFold(n_splits=5) results = cross_val_score(estimator, X_trainval_scaled, y_trainval, cv=kfold) print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std())) ``` 最后,我们可以使用训练集和验证集来训练模型,并使用测试集来测试模型的性能。 ```python model.fit(X_train_scaled, y_train, validation_data=(X_val_scaled, y_val), epochs=50, batch_size=32) test_loss = model.evaluate(X_test_scaled, y_test) print("Test loss:", test_loss) ``` 预测新数据的方法如下: ```python # 假设有一组新数据 new_data = np.array([[0.00632, 18.00, 2.310, 0, 0.5380, 6.5750, 65.20, 4.0900, 1, 296.0, 15.30, 396.90, 4.98]]) # 对新数据进行标准化处理 new_data_scaled = scaler.transform(new_data) # 预测房价 model.predict(new_data_scaled) ```

相关推荐

最新推荐

recommend-type

详解tensorflow训练自己的数据集实现CNN图像分类

本篇文章了tensorflow训练自己的数据集实现CNN图像分类,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

使用tensorflow实现VGG网络,训练mnist数据集方式

主要介绍了使用tensorflow实现VGG网络,训练mnist数据集方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

tensorflow实现残差网络方式(mnist数据集)

主要介绍了tensorflow实现残差网络方式(mnist数据集),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例

升级到tf 2.0后, 训练的模型想转成1.x版本的.pb模型, 但之前提供的通过ckpt转pb模型的方法都不可用(因为保存的ckpt不再有.meta)文件, 尝试了好久, 终于找到了一个方法可以迂回转到1.x版本的pb模型. Note: 本方法首先...
recommend-type

日月光华tensorflow2.0实战教程全部课件

1.日月光华tensorflow2.0实战教程全部课件 2.仅供交流学习
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SQL怎么实现 数据透视表

SQL可以通过使用聚合函数和GROUP BY子句来实现数据透视表。 例如,假设有一个销售记录表,其中包含产品名称、销售日期、销售数量和销售额等信息。要创建一个按照产品名称、销售日期和销售额进行汇总的数据透视表,可以使用以下SQL语句: ``` SELECT ProductName, SaleDate, SUM(SaleQuantity) AS TotalQuantity, SUM(SaleAmount) AS TotalAmount FROM Sales GROUP BY ProductName, SaleDate; ``` 该语句将Sales表按照ProductName和SaleDat
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。