Keras 多输入和混合数据

一、简介

这一节将学习如何定义能够接受多个输入的Keras架构,包括数字,分类和图像数据。 然后,我们将在此混合数据上训练单个端到端网络。

二、从视觉和文本特征估算房价

论文地址:House price estimation from visual and textual features

数据集下载:Dataset

大多数现有的自动房价估算系统仅依赖于一些文本数据,例如其邻近区域和房间数量。最终价格由访问房屋并在视觉上评估房屋的人员估算。在此论文中,他们建议从房屋照片中提取视觉特征,并将它们与房屋的文本信息相结合。这些组合特征被馈送到完全连接的多层神经网络(NN),该网络将房价估算为单一输出。为了训练和评估网络,收集了第一个房屋数据集,它结合了图像和文本属性。该数据集由来自美国加利福尼亚州的535个样本房组成。实验表明,与仅文本特征相比,添加视觉特征使R值增加了3倍,并将均方误差(MSE)降低了一个数量级。此外,在对仅有文本功能的房屋数据集进行培训时,提出的NN仍然优于现有的模型公布结果。这篇论文就是将图像特征和文本特征组合起来,作为网络的输入以提高预测的准确度。

文中采用的方法如图所示:

提取图像的SURF特征,将文本特征与之混合,经过归一化处理,最终通过SVR或者NN模型进行预测。

文中的提到的两种模型好坏的评估:

1、均方差损失

均方误差是衡量估计相对于实际数据的接近程度的度量。它测量估计值相对于实际值的误差偏差的平方的平均值。公式如下:

均方差越小,代表模型的可靠度越高。

2、确定系数

确定系数是预测模型相对于实际模型的接近程度的度量。公式如下:

SSE是误差平方和,SST是平方和的总和。确定系数的计算如下:

确定系数值越大,表示模型预测的准确性越高。

三、基于CNN与MLP实现数据的混合与多输入

数据准备:

# import the necessary packages
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import MinMaxScaler
import pandas as pd
import numpy as np
import glob
import cv2
import os

def load_house_attributes(inputPath):
	# initialize the list of column names in the CSV file and then
	# load it using Pandas
	cols = ["bedrooms", "bathrooms", "area", "zipcode", "price"]
	df = pd.read_csv(inputPath, sep=" ", header=None, names=cols)

	# determine (1) the unique zip codes and (2) the number of data
	# points with each zip
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值