预测分析·民宿价格预测【和鲸社区】
预测分析·民宿价格预测
赛题&数据
赛题
民宿这一名词,是日语中“Minshuku”的音译。我国第一部关于民宿的旅游行业标准《旅游民宿基本要求与评价》已从2017年10月1日起开始实施,该标准定义:民宿是利用当地闲置资源,民宿主人参与接待,为游客提供体验当地自然、文化与生产生活方式的小型住宿设施。
2019年4月,Trustdata公布了《2019年中国在线民宿预订行业发展研究报告》,报告中公布的数据显示,2016-2019年,受旅游消费人数的增加及需求的拉动,在线民宿房源数和房东数同比增加,其中至2018年我国在线民宿的房源数达到107.2万个,而房东数达到32.5万个,初步核算,平均一个房东拥有3.3个民宿房源,较2016年每人约2个民宿房源数实现了明显的增加。
近年来,用于房东或者户主将闲置房产变为私人住宿服务已变得流行。在私人住宿中,业主根据房间的大小和位置来决定住宿价格,但要设定合理的价格并不容易。因此,在本次练习赛旨在引导我们尝试建立一个模型,该模型使用某私人住宿在线服务平台上发布的房地产数据来预测住宿价格。
数据说明
本次练习赛所使用数据集基于民宿价格数据集,并且针对部分字段做出了一定的调整,所有的字段信息请以本练习赛提供的字段信息为准
字段信息内容参考如下:
字段名 | 数据类型 | 字段描述 |
---|---|---|
数据ID | string | 数据的唯一ID,比如test_0,train_1024 |
容纳人数 | int | 房间可以允许住几个人 |
便利设施 | string | 房间提供的便利设施描述,如是否有电视空调 |
洗手间数量 | float | 洗手间的数量 |
床的数量 | int | 房间内床的个数 |
床的类型 | int | 床的类型编码 |
卧室数量 | int | 卧室的个数 |
取消条款 | int | 取消条款的类型编码 |
所在城市 | int | 民宿所在的城市编码 |
清洁费 | int | 是否需要清洁费的0/1编码 |
首次评论日期 | string | 民宿的首次评论日期 |
房主是否有个人资料图片 | string | 民宿介绍中是否有房主个人资料照片 |
房主身份是否验证 | int | 民宿房主身份是否验证过的0/1编码 |
房主回复率 | string | 民宿房主消息回复率 |
何时成为房主 | string | 房东何时成为该民宿的房主 |
是否支持随即预订 | string | 是否支持随即预定 |
最近评论日期 | string | 最近评论日期 |
维度 | float | 民宿所在的维度 |
经度 | float | 民宿所在的经度 |
民宿周边 | string | 民宿周边的景区 |
评论个数 | int | 民宿的历史评论个数 |
房产类型 | int | 民宿的房产类型编码,如个人住宅、公寓等 |
民宿评分 | float | 民宿的用户评分 |
房型 | int | 房子类型编码,比如单间还是整间等 |
邮编 | int | 民宿的邮编号码 |
价格 | float | 民宿价格 |
数据下载
报名 -> 进入组织 -> 首页可查看数据
提交&评审
提交方式
直接在赛事提交页面「上传」结果文件即可。
结果文件要求
提交文件必须为 csv 格式的文件,文件的字段信息如下:
字段名 | 数据类型 | 字段描述 |
---|---|---|
id | Int | 数据的id |
price | Float | 民宿价格 |
客观评审
评测方法:
- 为了进行精度评估,使用了评估指标“ RMSE”。
- 评估指标大于等于0,预测精度越高,该值越小。
评审说明
每支队伍拥有每天 5 次提交与测评排名的机会,排行榜实时更新,从高到低排序,若队伍一天内多次提交结果,新结果版本将覆盖原版本。
免费算力
本次比赛提供免费版 2核 8G CPU 供参赛选手使用,报名后进入组织即可使用。
【参考代码】回归
import pandas as pd
from sklearn.model_selection import train_test_split
#from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LinearRegression #线性回归
import time
import numpy as npfrom sklearn.preprocessing import MinMaxScalert_start = time.time()#1.加载样本数据
data = pd.read_csv('训练集.csv')
data1 = pd.read_csv('测试集.csv')
#data.info() #可以用 .info()查看各列数据的缺失情况data['民宿评分'] = data['民宿评分'].fillna(data['民宿评分'].mean())
data['床的数量'] = data['床的数量'].fillna(data['床的数量'].mean())#卧室数量
data['卧室数量'] = data['卧室数量'].fillna(data['卧室数量'].mean())data1['民宿评分'] = data1['民宿评分'].fillna(data1['民宿评分'].mean())
data1['床的数量'] = data1['床的数量'].fillna(data1['床的数量'].mean())#卧室数量
data1['卧室数量'] = data1['卧室数量'].fillna(data1['卧室数量'].mean())
#2.样本数据特征提取
feature = data[['容纳人数','床的数量','卧室数量','所在城市',"是否支持随即预订","维度","经度","民宿评分"]]#feature.shape = (59288, 8)
target = data['价格']#target.shape = (59288,)feature1 = data1[['容纳人数','床的数量','卧室数量','所在城市',"是否支持随即预订","维度","经度","民宿评分"]]#feature.shape = (59288, 8)#3.样本数据集拆分 训练数据集train_data 测试数据集test_data
x_train = feature
y_train = targetx_test = feature1
#4.观察特征数据看是否需要进行特征工程 #feature数据全为数值型;不需要one_hot
#训练集的特征数据进行归一化操作
#Mm = MinMaxScaler()
#m_x_train = Mm.fit_transform(x_train)#5.实例化模型对象
#knn = KNeighborsClassifier(n_neighbors=3).fit(m_x_train,y_train)
linreg = LinearRegression().fit(x_train, y_train)#6.测试模型:使用测试数据
print('开始对测试集评分...')
score = linreg.score(x_train,y_train)
t_end = time.time()print("共计耗时:",(t_end-t_start),'秒')y_test = linreg.predict(x_test)#print('linreg测试集评分:',score)df = pd.read_csv( '.\\提交样例.csv')
df["价格"] =y_testdf.to_csv("提交样例1.csv",index=0)
【knn参考代码】 误差太大
#KNN
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier#KNN
import time
import numpy as np
from sklearn.preprocessing import MinMaxScalert_start = time.time()#1.加载样本数据
data = pd.read_csv('训练集.csv')
data1 = pd.read_csv('测试集.csv')
#data.info() #可以用 .info()查看各列数据的缺失情况data['民宿评分'] = data['民宿评分'].fillna(data['民宿评分'].mean())
data['床的数量'] = data['床的数量'].fillna(data['床的数量'].mean())#卧室数量
data['卧室数量'] = data['卧室数量'].fillna(data['卧室数量'].mean())data1['民宿评分'] = data1['民宿评分'].fillna(data1['民宿评分'].mean())
data1['床的数量'] = data1['床的数量'].fillna(data1['床的数量'].mean())#卧室数量
data1['卧室数量'] = data1['卧室数量'].fillna(data1['卧室数量'].mean())#2.样本数据特征提取
feature = data[['容纳人数','床的数量','卧室数量','所在城市',"是否支持随即预订","维度","经度","民宿评分"]]#feature.shape = (59288, 8)
target = data['价格']#target.shape = (59288,)feature1 = data1[['容纳人数','床的数量','卧室数量','所在城市',"是否支持随即预订","维度","经度","民宿评分"]]#feature.shape = (59288, 8)#3.样本数据集拆分 训练数据集train_data 测试数据集test_data
x_train = feature
y_train = targetx_test = feature1
#4.观察特征数据看是否需要进行特征工程 #feature数据全为数值型;不需要one_hot
#训练集的特征数据进行归一化操作
Mm = MinMaxScaler()
m_x_train = Mm.fit_transform(x_train)m_x_test = Mm.transform(x_test)#5.实例化模型对象
knn = KNeighborsClassifier(n_neighbors=3).fit(m_x_train,(1000*y_train).astype('int'))#6.测试模型:使用测试数据
print('开始对测试集评分...')
score = knn.score(m_x_test,y_test*1000)
t_end = time.time()
print('knn测试集评分:',score)
print("共计耗时:",(t_end-t_start),'秒')y_test = knn.predict(x_test).astype('float')/1000df = pd.read_csv( '.\\提交样例.csv')
df["价格"] =y_testdf.to_csv("提交样例knn.csv",index=0)
预测分析·民宿价格预测【和鲸社区】相关推荐
- 预测分析·民宿价格预测baseline
大家好,我是小泽 预测分析·民宿价格预测比赛是和鲸社区与ChallengeHub联合举办的一场新手赛,本文旨在多角度构建特征工程来帮助选手快速比赛上手. 比赛链接 话不多说,直接开! 导入相关库 im ...
- 民宿价格预测分析(和鲸社区)
比赛介绍 关于新人赛比赛介绍见链接:https://www.heywhale.com/home/competition/605c426d21e3f6003b56a920 处理过程 导入需要的包 imp ...
- 预测分析·商品评论情感预测-基于PaddleNLP的京东商品评论情感分析竞赛
一.预测分析·商品评论情感预测 竞赛地址: https://www.heywhale.com/home/competition/609cc718ca31cd0017835fdc/content/1 希 ...
- 第三届山东大数据-威海赛区-民宿空置预测-排行榜
- 预测分析 Python ARIMA模型预测(学习笔记)
import numpy as np import pandas as pd import matplotlib.pyplot as plt import statsmodels.api as sm# ...
- 8大预测分析工具比较
什么是预测分析工具? 预测分析工具融合了人工智能和业务报告.这些工具包括用于从整个企业收集数据的复杂管道,添加统计分析和机器学习层以对未来进行预测,并将这些见解提炼成有用的摘要,以便业务用户可以对此采 ...
- BP神经网络南瓜价格相关性研究与价格预测模型设计
随着全国脱贫攻坚战的全面胜利, "三农"工作重心已转移到全面推进乡村振兴上来.2021年作为巩固脱贫攻坚成果同乡村振兴有效衔接的第一年,自治区有关部门正在积极谋划与开展乡村振兴战略 ...
- 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理
本次笔记内容: 4-4 FIRST集和FOLLOW集 4-5 递归的预测分析法 4-6 非递归的预测分析法 4-7 预测分析法中的错误处理 本节课幻灯片,见于我的 GitHub 仓库:第5讲 语法分析 ...
- 4.2.5 预测分析法与预测分析表的构造
4.2.5 预测分析法与预测分析表的构造 预测分析法也称为 LL ( 1 )分析法.这种分析法是确定的自上而下分析的另一种方法,采用这种方法进行语法分析要求描述语言的文法是 LL ( 1 )文法. 一 ...
最新文章
- python爬虫实战,requests模块,Python实现抓取头条街拍美图
- centos7下安装mariadb
- vba查找数据并返回单元格地址_VBA积木代码中实现反向多值查找、LIKE模糊查找...
- java 整数 字节数组_将整数转换为字节数组(Java)
- Supervisord进程管家
- 二分检索函数lower_bound()和upper_bound()
- 增强学习--蒙特卡洛方法
- css 查看更多_在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(上篇)...
- java 实现jpg、png、tif、gif 任意图像格式转换
- DPMM的理解、公式推导及抽样
- go excel换行符替换_微软Excel与WPS Excel哪个好玩?
- vsftp pam mysql_实验记录:vsftp整合mysql-pam管理虚拟账号
- Makefile:跟我一起学makefile
- 解决webStorm没有cesium代码自动提示的方法
- 程序员提升编码技能的秘密
- CRM原型、协同办公APP高保真原型/审批管理、办公申请、工单管理、任务管理、日程管理、工作报告、签到考勤、客户管理、销售线索、商机管理、订单管理、账务管理、统计报表、回款管理、发票管理、报销管理
- 在线计算机进制换算,进制转换计算器
- Something‘s wrong--perhaps a missing \item. \begin{thebibliography}{1}
- 理解LSTM网络(Understanding LSTM Networks)原文与翻译
- 浅谈选择示波器时的“5倍法则”