【Keras】学习笔记6:回归问题实例:波士顿房价预测
2020-07-31 17:05
239 查看
因为这是一个回归问题,不需要将预测结果进行分类转换,所以输出层不设置激活函数,直接输出数值。
下例为14个特征输入,最后一个特征是自住房屋价中位数(应该算目标)。
用了数据标准化,调参隐含层和神经元
from sklearn import datasets import numpy as np from keras.models import Sequential from keras.layers import Dense from keras.wrappers.scikit_learn import KerasRegressor from sklearn.model_selection import cross_val_score from sklearn.model_selection import KFold from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline from sklearn.model_selection import GridSearchCV # 导入数据 dataset = datasets.load_boston() x = dataset.data Y = dataset.target # 设定随机种子 seed = 7 np.random.seed(seed) # 构建模型函数 **具有与输入维度相同数量的神经元的单层完全连接的隐藏层(具有13个神经元)** def create_model(units_list=[13],optimizer='adam', init='normal'): # 构建模型 model = Sequential() # 构建第一个隐藏层和输入层 units = units_list[0] model.add(Dense(units=units, activation='relu', input_dim=13, kernel_initializer=init)) # 构建更多隐藏层 for units in units_list[1:]: model.add(Dense(units=units, activation='relu', kernel_initializer=init)) model.add(Dense(units=1, kernel_initializer=init)) # 编译模型 model.compile(loss='mean_squared_error', optimizer=optimizer) return model model = KerasRegressor(build_fn=create_model, epochs=200, batch_size=5, verbose=0) # 设置算法评估基准 kfold = KFold(n_splits=10, shuffle=True, random_state=seed) results = cross_val_score(model, x, Y, cv=kfold) print('Baseline: %.2f (%.2f) MSE' % (results.mean(), results.std())) # 数据正态化,改进算法 steps = [] steps.append(('standardize', StandardScaler())) steps.append(('mlp', model)) pipeline = Pipeline(steps) kfold = KFold(n_splits=10, shuffle=True, random_state=seed) results = cross_val_score(pipeline, x, Y, cv=kfold) print('Standardize: %.2f (%.2f) MSE' % (results.mean(), results.std())) # 调参选择最优模型 param_grid = {} param_grid['units_list'] = [[20], [13, 6]] param_grid['optimizer'] = ['rmsprop', 'adam'] param_grid['init'] = ['glorot_uniform', 'normal'] param_grid['epochs'] = [100, 200] param_grid['batch_size'] = [5, 20] # 调参 scaler = StandardScaler() scaler_x = scaler.fit_transform(x) grid = GridSearchCV(estimator=model, param_grid=param_grid) results = grid.fit(scaler_x, Y) # 输出结果 print('Best: %f using %s' % (results.best_score_, results.best_params_)) means = results.cv_results_['mean_test_score'] stds = results.cv_results_['std_test_score'] params = results.cv_results_['params'] for mean, std, param in zip(means, stds, params): print('%f (%f) with: %r' % (mean, std, param))
相关文章推荐
- 回归问题实例:波士顿房价预测-基于keras的python学习笔记(六)
- [Python][Scikit-learn][学习笔记01]线性回归之波士顿房价实例分析
- 使用回归树对美国波士顿房价训练数据进行学习,并对测试数据进行预测
- 使用三种继承回归模型对美国波士顿房价训练数据进行学习,并对测试数据进行预测
- (DecisionTreeRegressor)决策树回归实例-加州房价数据 学习笔记
- 2使用Python语言和Numpy库来构建神经网络模型-波士顿房价预测任务实战案例(百度架构师手把手带你零基础实践深度学习原版笔记系列)
- Tensorflow2.0学习(5):基于加利福尼亚房价预测的回归问题基本步骤
- 【Keras】学习笔记18:LSTM时间序列问题预测:国际旅行人数预测
- keras探索:regression-波士顿房价预测实例(小样本K折验证)
- (DecisionTreeRegressor)决策树回归预测实例-max_depth 学习笔记
- 房价预测回归模型--tensorflow2.0学习笔记--tf.keras使用实例
- 深度学习回归问题--预测房价
- 学习笔记(4):视觉应用--机器学习&深度学习基础-线性回归的Keras实现04-模型设置、模型验证、模型预测
- 使用Python和Numpy进行波士顿房价预测任务(一)【深度学习入门_学习笔记】
- 飞桨 百度架构师手把手带你零基础实践深度学习21天 学习笔记——使用飞桨重写波士顿房价预测模型
- 小牛的学习笔记--波士顿房价数据回归分析
- 使用Python和Numpy进行波士顿房价预测任务(二)【深度学习入门_学习笔记】
- python机器学习预测学习笔记(有点问题)
- 使用两种不同配置的K近邻回归模型对美国波士顿房价数据进行回归预测
- ML之XGBR:利用xgboost算法对Boston(波士顿房价)数据集【特征列分段→独热编码】进行回归预测(房价预测)++预测新数据得分